import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/controller/auth/captin/register_captin_controller.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import 'package:ride/views/widgets/my_scafold.dart';
import 'package:ride/views/widgets/mycircular.dart';

import '../../../constant/colors.dart';

class RegisterCaptin extends StatelessWidget {
  const RegisterCaptin({super.key});

  @override
  Widget build(BuildContext context) {
    Get.put(RegisterCaptinController());
    return MyScafolld(
        title: 'Register Captin'.tr,
        body: [
          GetBuilder<RegisterCaptinController>(
            builder: (controller) => Form(
              key: controller.formKey,
              child: Padding(
                padding: const EdgeInsets.all(16.0),
                child: SingleChildScrollView(
                  child: Container(
                    decoration: const BoxDecoration(
                      boxShadow: [
                        BoxShadow(
                            offset: Offset(3, 3),
                            color: AppColor.accentColor,
                            blurRadius: 3)
                      ],
                      color: AppColor.secondaryColor,
                    ),
                    child: Padding(
                      padding: const EdgeInsets.all(16),
                      child: Column(children: [
                        Row(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: [
                            SizedBox(
                              width: Get.width * .4,
                              child: TextFormField(
                                keyboardType: TextInputType.text,
                                controller: controller.firstNameController,
                                decoration: InputDecoration(
                                  focusedBorder: OutlineInputBorder(
                                    borderSide: const BorderSide(
                                      color: AppColor.primaryColor,
                                      width: 2.0,
                                    ),
                                    borderRadius: BorderRadius.circular(10),
                                  ),
                                  fillColor: AppColor.accentColor,
                                  hoverColor: AppColor.accentColor,
                                  focusColor: AppColor.accentColor,
                                  border: const OutlineInputBorder(
                                      borderRadius: BorderRadius.all(
                                          Radius.circular(12))),
                                  labelText: 'First name'.tr,
                                  hintText: 'Enter your first name'.tr,
                                ),
                                validator: (value) {
                                  if (value!.isEmpty) {
                                    return 'Please enter your first name.'.tr;
                                  }
                                  return null;
                                },
                              ),
                            ),
                            SizedBox(
                              width: Get.width * .4,
                              child: TextFormField(
                                keyboardType: TextInputType.text,
                                controller: controller.lastNameController,
                                decoration: InputDecoration(
                                  focusedBorder: OutlineInputBorder(
                                    borderSide: const BorderSide(
                                      color: AppColor.primaryColor,
                                      width: 2.0,
                                    ),
                                    borderRadius: BorderRadius.circular(10),
                                  ),
                                  focusColor: AppColor.accentColor,
                                  fillColor: AppColor.accentColor,
                                  border: const OutlineInputBorder(
                                      borderRadius: BorderRadius.all(
                                          Radius.circular(12))),
                                  labelText: 'Last name'.tr,
                                  hintText: 'Enter your last name'.tr,
                                ),
                                validator: (value) {
                                  if (value!.isEmpty) {
                                    return 'Please enter your last name.'.tr;
                                  }
                                  return null;
                                },
                              ),
                            ),
                          ],
                        ),
                        const SizedBox(
                          height: 15,
                        ),
                        TextFormField(
                          keyboardType: TextInputType.emailAddress,
                          controller: controller.emailController,
                          decoration: InputDecoration(
                            focusedBorder: OutlineInputBorder(
                              borderSide: const BorderSide(
                                color: AppColor.primaryColor,
                                width: 2.0,
                              ),
                              borderRadius: BorderRadius.circular(10),
                            ),
                            fillColor: AppColor.accentColor,
                            hoverColor: AppColor.accentColor,
                            focusColor: AppColor.accentColor,
                            border: const OutlineInputBorder(
                                borderRadius:
                                    BorderRadius.all(Radius.circular(12))),
                            labelText: 'Email'.tr,
                            hintText: 'Enter your email address'.tr,
                          ),
                          validator: (value) {
                            if (value!.isEmpty ||
                                (!value.contains('@') ||
                                    !value.contains('.'))) {
                              return 'Please enter Your Email.'.tr;
                            }
                            return null;
                          },
                        ),
                        const SizedBox(
                          height: 15,
                        ),
                        TextFormField(
                          obscureText: true,
                          keyboardType: TextInputType.emailAddress,
                          controller: controller.passwordController,
                          decoration: InputDecoration(
                            focusedBorder: OutlineInputBorder(
                              borderSide: const BorderSide(
                                color: AppColor.primaryColor,
                                width: 2.0,
                              ),
                              borderRadius: BorderRadius.circular(10),
                            ),
                            fillColor: AppColor.accentColor,
                            hoverColor: AppColor.accentColor,
                            focusColor: AppColor.accentColor,
                            border: const OutlineInputBorder(
                                borderRadius:
                                    BorderRadius.all(Radius.circular(12))),
                            labelText: 'Password'.tr,
                            hintText: 'Enter your Password'.tr,
                          ),
                          validator: (value) {
                            if (value!.isEmpty || (value.length > 6)) {
                              return 'Please enter Your Password.'.tr;
                            }
                            return null;
                          },
                        ),
                        const SizedBox(
                          height: 15,
                        ),
                        Row(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: [
                            SizedBox(
                              width: Get.width * .4,
                              child: TextFormField(
                                keyboardType: TextInputType.phone,
                                cursorColor: AppColor.accentColor,
                                controller: controller.phoneController,
                                decoration: InputDecoration(
                                  focusedBorder: OutlineInputBorder(
                                    borderSide: const BorderSide(
                                      color: AppColor.primaryColor,
                                      width: 2.0,
                                    ),
                                    borderRadius: BorderRadius.circular(10),
                                  ),
                                  focusColor: AppColor.accentColor,
                                  fillColor: AppColor.accentColor,
                                  border: const OutlineInputBorder(
                                      borderRadius: BorderRadius.all(
                                          Radius.circular(12))),
                                  labelText: 'Phone'.tr,
                                  hintText: 'Enter your phone number'.tr,
                                ),
                                validator: (value) {
                                  if (value!.isEmpty || value.length != 10) {
                                    return 'Please enter your phone number.'.tr;
                                  }
                                  return null;
                                },
                              ),
                            ),
                            SizedBox(
                              width: Get.width * .4,
                              child: TextFormField(
                                keyboardType: TextInputType.text,
                                controller: controller.siteController,
                                decoration: InputDecoration(
                                  focusedBorder: OutlineInputBorder(
                                    borderSide: const BorderSide(
                                      color: AppColor.primaryColor,
                                      width: 2.0,
                                    ),
                                    borderRadius: BorderRadius.circular(10),
                                  ),
                                  focusColor: AppColor.accentColor,
                                  fillColor: AppColor.accentColor,
                                  border: const OutlineInputBorder(
                                      borderRadius: BorderRadius.all(
                                          Radius.circular(12))),
                                  labelText: 'City'.tr,
                                  hintText: 'Enter your City'.tr,
                                ),
                                validator: (value) {
                                  if (value!.isEmpty) {
                                    return 'Please enter your City.'.tr;
                                  }
                                  return null;
                                },
                              ),
                            ),
                          ],
                        ),
                        const SizedBox(
                          height: 15,
                        ),
                        Row(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: [
                            InkWell(
                              onTap: () => controller.getBirthDate(),
                              child: Container(
                                height: 50,
                                width: Get.width * .4,
                                decoration: BoxDecoration(
                                    border: Border.all(),
                                    borderRadius: BorderRadius.circular(13)),
                                child: Padding(
                                  padding: const EdgeInsets.symmetric(
                                      horizontal: 20),
                                  child: Text(
                                    controller.birthDate,
                                    style: AppStyle.title,
                                  ),
                                ),
                              ),
                            ),
                            DropdownButton(
                              value: controller.gender,
                              items: [
                                DropdownMenuItem(
                                  value: 'Male',
                                  child: Text('Male'.tr),
                                ),
                                DropdownMenuItem(
                                  value: 'Female',
                                  child: Text('Female'.tr),
                                ),
                              ],
                              onChanged: (value) {
                                controller.changeGender(value!);
                              },
                            )
                          ],
                        ),
                        controller.isloading
                            ? const MyCircularProgressIndicator()
                            : MyElevatedButton(
                                title: 'Register Captin'.tr,
                                onPressed: () => controller.register())
                      ]),
                    ),
                  ),
                ),
              ),
            ),
          )
        ],
        isleading: true);
  }
}
