class LocalUserModel {
  String idUsuario;
  String primerNombre;
  String segundoNombre;
  String tipoUsuario;
  String apellidoPaterno;
  String apellidoMaterno;
  bool active;
  DateTime until;
  String secretKey;
  String publicKey;
  String grado;
  String nivel;
  String token;

  LocalUserModel({
    required this.idUsuario,
    required this.primerNombre,
    required this.segundoNombre,
    required this.tipoUsuario,
    required this.apellidoPaterno,
    required this.apellidoMaterno,
    required this.active,
    required this.until,
    required this.secretKey,
    required this.publicKey,
    required this.grado,
    required this.nivel,
    required this.token
  });

  factory LocalUserModel.fromJson(Map<String, dynamic> json) => LocalUserModel(
      idUsuario: json["idUsuario"],
      primerNombre: json["primerNombre"],
      segundoNombre: json["segundoNombre"],
      tipoUsuario: json["tipoUsuario"],
      apellidoPaterno: json["apellidoPaterno"],
      apellidoMaterno: json["apellidoMaterno"],
      active: json["active"] == 'true' ? true : false,
      until: DateTime.parse(json["until"]),
      secretKey: json["secretKey"],
      publicKey: json["publicKey"],
      grado: json["grado"],
      nivel: json["nivel"],
      token: json["token"]
  );

  Map<String, dynamic> toJson() => {
    "idUsuario": idUsuario,
    "primerNombre": primerNombre,
    "segundoNombre": segundoNombre,
    "tipoUsuario": tipoUsuario,
    "apellidoPaterno": apellidoPaterno,
    "apellidoMaterno": apellidoMaterno,
    "active": active,
    "until": until,
    "secretKey": secretKey,
    "publicKey": publicKey,
    "grado": grado,
    "nivel": nivel,
    "token": token
  };
}