Skip to content

Instantly share code, notes, and snippets.

@brasizza
Created December 15, 2023 03:05
Show Gist options
  • Select an option

  • Save brasizza/604b40c056000d10429201eb3d451387 to your computer and use it in GitHub Desktop.

Select an option

Save brasizza/604b40c056000d10429201eb3d451387 to your computer and use it in GitHub Desktop.
// ignore_for_file: public_member_api_docs, sort_constructors_first
import 'dart:convert';
import 'package:epocpdv/src/data/model/cargas/funcionario_model.dart';
import 'package:isar/isar.dart';
part 'user_model.g.dart';
class UserModel {
final int id;
final int codUsu;
final int codEmp;
final String? codPerfilOpacess;
final int? codFunc;
final String nomeUsu;
final String senhaUsu;
final String? ultAcsUsu;
final String? cartaoUsu;
final String? nivelUsu;
final int? codCli;
final String? statusUsu;
final String? acessoIniUsu;
final String? acessoFimUsu;
final String? origem;
final FuncionarioModel? funcionario;
UserModel({
required this.id,
required this.codUsu,
required this.codEmp,
this.codPerfilOpacess,
required this.codFunc,
required this.nomeUsu,
required this.senhaUsu,
required this.ultAcsUsu,
required this.cartaoUsu,
required this.nivelUsu,
required this.codCli,
required this.statusUsu,
required this.acessoIniUsu,
required this.acessoFimUsu,
required this.origem,
this.funcionario,
});
// Hive fields go here
UserModel copyWith({
int? id,
int? codUsu,
int? codEmp,
String? codPerfilOpacess,
int? codFunc,
String? nomeUsu,
String? senhaUsu,
String? ultAcsUsu,
String? cartaoUsu,
String? nivelUsu,
int? codCli,
String? statusUsu,
String? acessoIniUsu,
String? acessoFimUsu,
String? origem,
FuncionarioModel? funcionario,
}) {
return UserModel(
id: id ?? this.id,
codUsu: codUsu ?? this.codUsu,
codEmp: codEmp ?? this.codEmp,
codPerfilOpacess: codPerfilOpacess ?? this.codPerfilOpacess,
codFunc: codFunc ?? this.codFunc,
nomeUsu: nomeUsu ?? this.nomeUsu,
senhaUsu: senhaUsu ?? this.senhaUsu,
ultAcsUsu: ultAcsUsu ?? this.ultAcsUsu,
cartaoUsu: cartaoUsu ?? this.cartaoUsu,
nivelUsu: nivelUsu ?? this.nivelUsu,
codCli: codCli ?? this.codCli,
statusUsu: statusUsu ?? this.statusUsu,
acessoIniUsu: acessoIniUsu ?? this.acessoIniUsu,
acessoFimUsu: acessoFimUsu ?? this.acessoFimUsu,
origem: origem ?? this.origem,
funcionario: funcionario ?? this.funcionario,
);
}
String toJson() => json.encode(toMap());
factory UserModel.fromJson(String source) =>
UserModel.fromMap(json.decode(source) as Map<String, dynamic>);
@override
String toString() {
return 'UsuarioModel(id: $id, codUsu: $codUsu, codEmp: $codEmp, codPerfilOpacess: $codPerfilOpacess, codFunc: $codFunc, nomeUsu: $nomeUsu, senhaUsu: $senhaUsu, ultAcsUsu: $ultAcsUsu, cartaoUsu: $cartaoUsu, nivelUsu: $nivelUsu, codCli: $codCli, statusUsu: $statusUsu, acessoIniUsu: $acessoIniUsu, acessoFimUsu: $acessoFimUsu, origem: $origem)';
}
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is UserModel &&
other.codUsu == codUsu &&
other.codEmp == codEmp &&
other.codPerfilOpacess == codPerfilOpacess &&
other.codFunc == codFunc &&
other.nomeUsu == nomeUsu &&
other.senhaUsu == senhaUsu &&
other.ultAcsUsu == ultAcsUsu &&
other.cartaoUsu == cartaoUsu &&
other.nivelUsu == nivelUsu &&
other.codCli == codCli &&
other.statusUsu == statusUsu &&
other.acessoIniUsu == acessoIniUsu &&
other.acessoFimUsu == acessoFimUsu &&
other.origem == origem;
}
@override
int get hashCode {
return codUsu.hashCode ^
codEmp.hashCode ^
codPerfilOpacess.hashCode ^
codFunc.hashCode ^
nomeUsu.hashCode ^
senhaUsu.hashCode ^
ultAcsUsu.hashCode ^
cartaoUsu.hashCode ^
nivelUsu.hashCode ^
codCli.hashCode ^
statusUsu.hashCode ^
acessoIniUsu.hashCode ^
acessoFimUsu.hashCode ^
origem.hashCode;
}
Map<String, dynamic> toMap() {
return <String, dynamic>{
'cod_usu': codUsu,
'cod_emp': codEmp,
'cod_perfil_opacess': codPerfilOpacess,
'cod_func': codFunc,
'nome_usu': nomeUsu,
'senha_usu': senhaUsu,
'ultacs_usu': ultAcsUsu,
'cartao_usu': cartaoUsu,
'nivel_usu': nivelUsu,
'cod_cli': codCli,
'status_usu': statusUsu,
'acesso_ini_usu': acessoIniUsu,
'acesso_fim_usu': acessoFimUsu,
'origem': origem,
};
}
factory UserModel.fromMap(Map<String, dynamic> map) {
return UserModel(
id: 0,
codUsu: int.parse(map['cod_usu'].toString()),
codEmp: int.parse(map['cod_emp']),
codPerfilOpacess: map['cod_perfil_opacess'] != null
? map['cod_perfil_opacess'] as String
: null,
codFunc: map['cod_func'] != null
? int.parse(map['cod_func'].toString())
: null,
nomeUsu: map['nome_usu'] as String,
senhaUsu: map['senha_usu'] as String,
ultAcsUsu: map['ultacs_usu'] != null ? map['ultacs_usu'] as String : null,
cartaoUsu: map['cartao_usu'] != null ? map['cartao_usu'] as String : null,
nivelUsu: map['nivel_usu'] != null ? map['nivel_usu'] as String : null,
codCli:
map['cod_cli'] != null ? int.parse(map['cod_cli'].toString()) : null,
statusUsu: map['status_usu'] != null ? map['status_usu'] as String : null,
acessoIniUsu: map['acesso_ini_usu'] != null
? map['acesso_ini_usu'] as String
: null,
acessoFimUsu: map['acesso_fim_usu'] != null
? map['acesso_fim_usu'] as String
: null,
origem: map['origem'] != null ? map['origem'] as String : null,
);
}
}
@Name('current_user')
@Collection()
class CurrentUser extends UserModel {
CurrentUser({
required super.id,
required super.codUsu,
required super.codEmp,
required super.codFunc,
required super.nomeUsu,
required super.senhaUsu,
required super.ultAcsUsu,
required super.cartaoUsu,
required super.nivelUsu,
required super.codCli,
required super.statusUsu,
required super.acessoIniUsu,
required super.acessoFimUsu,
required super.origem,
required super.codPerfilOpacess,
});
@override
String toJson() => json.encode(toMap());
factory CurrentUser.fromJson(String source) =>
CurrentUser.fromMap(json.decode(source) as Map<String, dynamic>);
@override
String toString() {
return 'UsuarioModel(id: $id, codUsu: $codUsu, codEmp: $codEmp, codPerfilOpacess: $codPerfilOpacess, codFunc: $codFunc, nomeUsu: $nomeUsu, senhaUsu: $senhaUsu, ultAcsUsu: $ultAcsUsu, cartaoUsu: $cartaoUsu, nivelUsu: $nivelUsu, codCli: $codCli, statusUsu: $statusUsu, acessoIniUsu: $acessoIniUsu, acessoFimUsu: $acessoFimUsu, origem: $origem)';
}
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is CurrentUser &&
other.codUsu == codUsu &&
other.codEmp == codEmp &&
other.codPerfilOpacess == codPerfilOpacess &&
other.codFunc == codFunc &&
other.nomeUsu == nomeUsu &&
other.senhaUsu == senhaUsu &&
other.ultAcsUsu == ultAcsUsu &&
other.cartaoUsu == cartaoUsu &&
other.nivelUsu == nivelUsu &&
other.codCli == codCli &&
other.statusUsu == statusUsu &&
other.acessoIniUsu == acessoIniUsu &&
other.acessoFimUsu == acessoFimUsu &&
other.origem == origem;
}
@override
int get hashCode {
return codUsu.hashCode ^
codEmp.hashCode ^
codPerfilOpacess.hashCode ^
codFunc.hashCode ^
nomeUsu.hashCode ^
senhaUsu.hashCode ^
ultAcsUsu.hashCode ^
cartaoUsu.hashCode ^
nivelUsu.hashCode ^
codCli.hashCode ^
statusUsu.hashCode ^
acessoIniUsu.hashCode ^
acessoFimUsu.hashCode ^
origem.hashCode;
}
@override
Map<String, dynamic> toMap() {
return <String, dynamic>{
'cod_usu': codUsu,
'cod_emp': codEmp,
'cod_perfil_opacess': codPerfilOpacess,
'cod_func': codFunc,
'nome_usu': nomeUsu,
'senha_usu': senhaUsu,
'ultacs_usu': ultAcsUsu,
'cartao_usu': cartaoUsu,
'nivel_usu': nivelUsu,
'cod_cli': codCli,
'status_usu': statusUsu,
'acesso_ini_usu': acessoIniUsu,
'acesso_fim_usu': acessoFimUsu,
'origem': origem,
};
}
factory CurrentUser.fromMap(Map<String, dynamic> map) {
return CurrentUser(
id: 0,
codUsu: int.parse(map['cod_usu'].toString()),
codEmp: int.parse(map['cod_emp'].toString()),
codFunc: map['cod_func'] != null
? int.parse(map['cod_func'].toString())
: null,
codPerfilOpacess: map['cod_perfil_opacess'] != null
? map['cod_perfil_opacess'] as String
: null,
nomeUsu: map['nome_usu'] as String,
senhaUsu: map['senha_usu'] as String,
ultAcsUsu: map['ultacs_usu'] != null ? map['ultacs_usu'] as String : null,
cartaoUsu: map['cartao_usu'] != null ? map['cartao_usu'] as String : null,
nivelUsu: map['nivel_usu'] != null ? map['nivel_usu'] as String : null,
codCli:
map['cod_cli'] != null ? int.parse(map['cod_cli'].toString()) : null,
statusUsu: map['status_usu'] != null ? map['status_usu'] as String : null,
acessoIniUsu: map['acesso_ini_usu'] != null
? map['acesso_ini_usu'] as String
: null,
acessoFimUsu: map['acesso_fim_usu'] != null
? map['acesso_fim_usu'] as String
: null,
origem: map['origem'] != null ? map['origem'] as String : null,
);
}
}
@Name('users_logged')
@Collection()
class UserLogged extends UserModel {
UserLogged({
super.id = 0,
required super.codUsu,
required super.codEmp,
required super.codFunc,
required super.nomeUsu,
required super.senhaUsu,
required super.ultAcsUsu,
required super.cartaoUsu,
required super.nivelUsu,
required super.codCli,
required super.statusUsu,
required super.acessoIniUsu,
required super.acessoFimUsu,
required super.origem,
required super.codPerfilOpacess,
super.funcionario,
});
@override
UserLogged copyWith({
int? id,
int? codUsu,
int? codEmp,
String? codPerfilOpacess,
int? codFunc,
String? nomeUsu,
String? senhaUsu,
String? ultAcsUsu,
String? cartaoUsu,
String? nivelUsu,
int? codCli,
String? statusUsu,
String? acessoIniUsu,
String? acessoFimUsu,
String? origem,
FuncionarioModel? funcionario,
}) {
return UserLogged(
id: id ?? this.id,
codUsu: codUsu ?? this.codUsu,
codEmp: codEmp ?? this.codEmp,
codPerfilOpacess: codPerfilOpacess ?? this.codPerfilOpacess,
codFunc: codFunc ?? this.codFunc,
nomeUsu: nomeUsu ?? this.nomeUsu,
senhaUsu: senhaUsu ?? this.senhaUsu,
ultAcsUsu: ultAcsUsu ?? this.ultAcsUsu,
cartaoUsu: cartaoUsu ?? this.cartaoUsu,
nivelUsu: nivelUsu ?? this.nivelUsu,
codCli: codCli ?? this.codCli,
statusUsu: statusUsu ?? this.statusUsu,
acessoIniUsu: acessoIniUsu ?? this.acessoIniUsu,
acessoFimUsu: acessoFimUsu ?? this.acessoFimUsu,
origem: origem ?? this.origem,
funcionario: funcionario ?? this.funcionario,
);
}
@override
String toJson() => json.encode(toMap());
factory UserLogged.fromJson(String source) =>
UserLogged.fromMap(json.decode(source) as Map<String, dynamic>);
@override
String toString() {
return 'UsuarioModel(id: $id, codUsu: $codUsu, codEmp: $codEmp, codPerfilOpacess: $codPerfilOpacess, codFunc: $codFunc, nomeUsu: $nomeUsu, senhaUsu: $senhaUsu, ultAcsUsu: $ultAcsUsu, cartaoUsu: $cartaoUsu, nivelUsu: $nivelUsu, codCli: $codCli, statusUsu: $statusUsu, acessoIniUsu: $acessoIniUsu, acessoFimUsu: $acessoFimUsu, origem: $origem)';
}
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is UserLogged &&
other.codUsu == codUsu &&
other.codEmp == codEmp &&
other.codPerfilOpacess == codPerfilOpacess &&
other.codFunc == codFunc &&
other.nomeUsu == nomeUsu &&
other.senhaUsu == senhaUsu &&
other.ultAcsUsu == ultAcsUsu &&
other.cartaoUsu == cartaoUsu &&
other.nivelUsu == nivelUsu &&
other.codCli == codCli &&
other.statusUsu == statusUsu &&
other.acessoIniUsu == acessoIniUsu &&
other.acessoFimUsu == acessoFimUsu &&
other.origem == origem;
}
@override
int get hashCode {
return codUsu.hashCode ^
codEmp.hashCode ^
codPerfilOpacess.hashCode ^
codFunc.hashCode ^
nomeUsu.hashCode ^
senhaUsu.hashCode ^
ultAcsUsu.hashCode ^
cartaoUsu.hashCode ^
nivelUsu.hashCode ^
codCli.hashCode ^
statusUsu.hashCode ^
acessoIniUsu.hashCode ^
acessoFimUsu.hashCode ^
origem.hashCode;
}
@override
Map<String, dynamic> toMap() {
return <String, dynamic>{
'cod_usu': codUsu,
'cod_emp': codEmp,
'cod_perfil_opacess': codPerfilOpacess,
'cod_func': codFunc,
'nome_usu': nomeUsu,
'senha_usu': senhaUsu,
'ultacs_usu': ultAcsUsu,
'cartao_usu': cartaoUsu,
'nivel_usu': nivelUsu,
'cod_cli': codCli,
'status_usu': statusUsu,
'acesso_ini_usu': acessoIniUsu,
'acesso_fim_usu': acessoFimUsu,
'origem': origem,
};
}
factory UserLogged.fromMap(Map<String, dynamic> map) {
return UserLogged(
id: 0,
codUsu: int.parse(map['cod_usu'].toString()),
codEmp: int.parse(map['cod_emp']),
codFunc: map['cod_func'] != null
? int.parse(map['cod_func'].toString())
: null,
codPerfilOpacess: map['cod_perfil_opacess'] != null
? map['cod_perfil_opacess'] as String
: null,
nomeUsu: map['nome_usu'] as String,
senhaUsu: map['senha_usu'] as String,
ultAcsUsu: map['ultacs_usu'] != null ? map['ultacs_usu'] as String : null,
cartaoUsu: map['cartao_usu'] != null ? map['cartao_usu'] as String : null,
nivelUsu: map['nivel_usu'] != null ? map['nivel_usu'] as String : null,
codCli:
map['cod_cli'] != null ? int.parse(map['cod_cli'].toString()) : null,
statusUsu: map['status_usu'] != null ? map['status_usu'] as String : null,
acessoIniUsu: map['acesso_ini_usu'] != null
? map['acesso_ini_usu'] as String
: null,
acessoFimUsu: map['acesso_fim_usu'] != null
? map['acesso_fim_usu'] as String
: null,
origem: map['origem'] != null ? map['origem'] as String : null,
);
}
}
@Name('usuarios')
@Collection()
class Users extends UserModel {
static const tableName = 'usuarios';
@override
Users copyWith({
int? id,
int? codUsu,
int? codEmp,
String? codPerfilOpacess,
int? codFunc,
String? nomeUsu,
String? senhaUsu,
String? ultAcsUsu,
String? cartaoUsu,
String? nivelUsu,
int? codCli,
String? statusUsu,
String? acessoIniUsu,
String? acessoFimUsu,
String? origem,
FuncionarioModel? funcionario,
}) {
return Users(
id: id ?? this.id,
codUsu: codUsu ?? this.codUsu,
codEmp: codEmp ?? this.codEmp,
codPerfilOpacess: codPerfilOpacess ?? this.codPerfilOpacess,
codFunc: codFunc ?? this.codFunc,
nomeUsu: nomeUsu ?? this.nomeUsu,
senhaUsu: senhaUsu ?? this.senhaUsu,
ultAcsUsu: ultAcsUsu ?? this.ultAcsUsu,
cartaoUsu: cartaoUsu ?? this.cartaoUsu,
nivelUsu: nivelUsu ?? this.nivelUsu,
codCli: codCli ?? this.codCli,
statusUsu: statusUsu ?? this.statusUsu,
acessoIniUsu: acessoIniUsu ?? this.acessoIniUsu,
acessoFimUsu: acessoFimUsu ?? this.acessoFimUsu,
origem: origem ?? this.origem,
funcionario: funcionario ?? this.funcionario,
);
}
Users({
required super.id,
required super.codUsu,
required super.codEmp,
required super.codFunc,
required super.nomeUsu,
required super.senhaUsu,
required super.ultAcsUsu,
required super.cartaoUsu,
required super.nivelUsu,
required super.codCli,
required super.statusUsu,
required super.acessoIniUsu,
required super.acessoFimUsu,
required super.origem,
required super.codPerfilOpacess,
super.funcionario,
});
@override
String toJson() => json.encode(toMap());
factory Users.fromJson(String source) =>
Users.fromMap(json.decode(source) as Map<String, dynamic>);
@override
String toString() {
return 'UsuarioModel(id: $id, codUsu: $codUsu, codEmp: $codEmp, codPerfilOpacess: $codPerfilOpacess, codFunc: $codFunc, nomeUsu: $nomeUsu, senhaUsu: $senhaUsu, ultAcsUsu: $ultAcsUsu, cartaoUsu: $cartaoUsu, nivelUsu: $nivelUsu, codCli: $codCli, statusUsu: $statusUsu, acessoIniUsu: $acessoIniUsu, acessoFimUsu: $acessoFimUsu, origem: $origem)';
}
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is Users &&
other.codUsu == codUsu &&
other.codEmp == codEmp &&
other.codPerfilOpacess == codPerfilOpacess &&
other.codFunc == codFunc &&
other.nomeUsu == nomeUsu &&
other.senhaUsu == senhaUsu &&
other.ultAcsUsu == ultAcsUsu &&
other.cartaoUsu == cartaoUsu &&
other.nivelUsu == nivelUsu &&
other.codCli == codCli &&
other.statusUsu == statusUsu &&
other.acessoIniUsu == acessoIniUsu &&
other.acessoFimUsu == acessoFimUsu &&
other.origem == origem;
}
@override
int get hashCode {
return codUsu.hashCode ^
codEmp.hashCode ^
codPerfilOpacess.hashCode ^
codFunc.hashCode ^
nomeUsu.hashCode ^
senhaUsu.hashCode ^
ultAcsUsu.hashCode ^
cartaoUsu.hashCode ^
nivelUsu.hashCode ^
codCli.hashCode ^
statusUsu.hashCode ^
acessoIniUsu.hashCode ^
acessoFimUsu.hashCode ^
origem.hashCode;
}
@override
Map<String, dynamic> toMap() {
return <String, dynamic>{
'cod_usu': codUsu,
'cod_emp': codEmp,
'cod_perfil_opacess': codPerfilOpacess,
'cod_func': codFunc,
'nome_usu': nomeUsu,
'senha_usu': senhaUsu,
'ultacs_usu': ultAcsUsu,
'cartao_usu': cartaoUsu,
'nivel_usu': nivelUsu,
'cod_cli': codCli,
'status_usu': statusUsu,
'acesso_ini_usu': acessoIniUsu,
'acesso_fim_usu': acessoFimUsu,
'origem': origem,
};
}
factory Users.fromMap(Map<String, dynamic> map) {
return Users(
id: 0,
codUsu: int.parse(map['cod_usu'].toString()),
codEmp: int.parse(map['cod_emp']),
codFunc: map['cod_func'] != null
? int.parse(map['cod_func'].toString())
: null,
codPerfilOpacess: map['cod_perfil_opacess'] != null
? map['cod_perfil_opacess'] as String
: null,
nomeUsu: map['nome_usu'] as String,
senhaUsu: map['senha_usu'] as String,
ultAcsUsu: map['ultacs_usu'] != null ? map['ultacs_usu'] as String : null,
cartaoUsu: map['cartao_usu'] != null ? map['cartao_usu'] as String : null,
nivelUsu: map['nivel_usu'] != null ? map['nivel_usu'] as String : null,
codCli:
map['cod_cli'] != null ? int.parse(map['cod_cli'].toString()) : null,
statusUsu: map['status_usu'] != null ? map['status_usu'] as String : null,
acessoIniUsu: map['acesso_ini_usu'] != null
? map['acesso_ini_usu'] as String
: null,
acessoFimUsu: map['acesso_fim_usu'] != null
? map['acesso_fim_usu'] as String
: null,
origem: map['origem'] != null ? map['origem'] as String : null,
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment