import 'package:ef/ef.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';

part 'register_controller.g.dart';

@JsonSerializable()
class RegisterModel {
  String? register_phone; //注册手机号
  String? register_pd; //注册密码
  String? register_confirm_pd; //注册确认密码
  String? register_code; //注册验证码

  bool? register_agree = false; //注册协议

  bool? pdshow = true; //是否显示密码
  bool? cpdshow = true; //是否显示密码

  RegisterModel();
  static RegisterModel fromJson(Map<String, dynamic> json) =>
      _$RegisterModelFromJson(json);
  Map<String, dynamic> toJson() => _$RegisterModelToJson(this);
}

class RegisterController extends GetControllerEx<RegisterModel> {
  // final UserRepository repository = UserRepository();
  RegisterController() {
    attr = GetModel(RegisterModel()).obs;
  }

  Future<String> registerUser(BuildContext context) async {
    String message = "";
    // if (model.register_phone == null || model.register_phone!.isEmpty) {
    //   message = "请输入手机号".tr;
    //   TopSlideNotification.show(context,message);
    //   return message;
    // }
    // if (!MyUtils.isValidPhoneNumber(model.register_phone!)) {
    //   message = '请输入正确的手机号';
    //   showToast(message);
    //   return message;
    // }
    // if (model.register_pd == null || model.register_pd!.isEmpty) {
    //   message = "请输入密码";
    //   showToast(message);
    //   return message;
    // }
    // String passwordMsg = "1.密码长度必须至少8位\n2.密码需要字母加数字\n3.特殊字符和大写字母至少包含一个";
    // bool hasUppercase = model.register_pd!.contains(RegExp(r'[A-Z]'));
    // bool hasDigit = model.register_pd!.contains(RegExp(r'[0-9]'));
    // bool hasSpecialCharacters =
    //     model.register_pd!.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'));
    // bool hasLetter = model.register_pd!.contains(RegExp(r'[a-zA-Z]'));

    // if (model.register_pd!.length < 8) {
    //   message = passwordMsg;
    //   showToast(message);
    //   return message;
    // }

    // if (!hasLetter || !hasDigit) {
    //   message = passwordMsg;
    //   showToast(message);
    //   return message;
    // }

    // if (!(hasSpecialCharacters || hasUppercase)) {
    //   message = passwordMsg;
    //   showToast(message);
    //   return message;
    // }
    // if (model.register_confirm_pd == null ||
    //     model.register_confirm_pd!.isEmpty) {
    //   message = "请输入确认密码";
    //   showToast(message);
    //   return message;
    // }
    // if (model.register_pd != model.register_confirm_pd) {
    //   message = "两次密码不一致";
    //   showToast(message);
    //   return message;
    // }
    // if (model.register_code == null || model.register_code!.isEmpty) {
    //   message = "请输入验证码";
    //   showToast(message);
    //   return message;
    // }
    // if (model.register_agree == null || model.register_agree != true) {
    //   message = "需要同意协议";
    //   showToast(message);
    //   return message;
    // }
    // message = await repository.createUser(
    //     model.register_pd!, model.register_phone!, model.register_code!);
    // if (message.isNotEmpty) {
    //   showToast(message);
    //   return message;
    // }

    return "";
  }

  // Future<String> getCode(BuildContext context) async {
  //   String message = "";
  //   final MyDialogController myDialogController =
  //       Get.find<MyDialogController>();
  //   if (model.register_phone == null || model.register_phone!.isEmpty) {
  //     message = "请输入手机号";
  //     showToast(message);
  //     return message;
  //   }
  //   if (!MyUtils.isValidPhoneNumber(model.register_phone!)) {
  //     message = '请输入正确的手机号';
  //     showToast(message);
  //     return message;
  //   }
  //   message = await repository.sendRegisterCode(model.register_phone!);
  //   if (message.isNotEmpty) {
  //     showToast("发送失败，请稍后再试！");
  //     return "发送失败，请稍后再试！";
  //   } else {
  //     showToast("发送验证码成功！", color: color_success);
  //   }
  //   return '';
  // }
}
