feat - Service - Providers

This commit is contained in:
2026-04-16 11:48:11 +02:00
parent 29790a7a36
commit 787873a26f
11 changed files with 758 additions and 55 deletions

View File

@@ -0,0 +1,96 @@
import 'package:equatable/equatable.dart';
class ProviderModel extends Equatable {
final String id;
final String nome;
final bool telefoniaFissa;
final bool telefoniaMobile;
final bool energia;
final bool assicurazioni;
final bool intrattenimento;
final bool altro;
final bool isActive;
final String companyId;
const ProviderModel({
required this.id,
required this.nome,
required this.telefoniaFissa,
required this.telefoniaMobile,
required this.energia,
required this.assicurazioni,
required this.intrattenimento,
required this.altro,
required this.isActive,
required this.companyId,
});
factory ProviderModel.fromMap(Map<String, dynamic> map) {
return ProviderModel(
id: map['id'],
nome: map['nome'],
telefoniaFissa: map['telefonia_fissa'] ?? false,
telefoniaMobile: map['telefonia_mobile'] ?? false,
energia: map['energia'] ?? false,
assicurazioni: map['assicurazioni'] ?? false,
intrattenimento: map['intrattenimento'] ?? false,
altro: map['altro'] ?? false,
isActive: map['is_active'] ?? true,
companyId: map['company_id'],
);
}
Map<String, dynamic> toMap() {
return {
'nome': nome,
'telefonia_fissa': telefoniaFissa,
'telefonia_mobile': telefoniaMobile,
'energia': energia,
'assicurazioni': assicurazioni,
'intrattenimento': intrattenimento,
'altro': altro,
'is_active': isActive,
'company_id': companyId,
};
}
@override
List<Object?> get props => [
id,
nome,
telefoniaFissa,
telefoniaMobile,
energia,
assicurazioni,
intrattenimento,
altro,
isActive,
companyId,
];
ProviderModel copyWith({
String? id,
String? nome,
bool? telefoniaFissa,
bool? telefoniaMobile,
bool? energia,
bool? assicurazioni,
bool? intrattenimento,
bool? altro,
bool? isActive,
String? companyId,
}) {
return ProviderModel(
id: id ?? this.id,
nome: nome ?? this.nome,
telefoniaFissa: telefoniaFissa ?? this.telefoniaFissa,
telefoniaMobile: telefoniaMobile ?? this.telefoniaMobile,
energia: energia ?? this.energia,
assicurazioni: assicurazioni ?? this.assicurazioni,
intrattenimento: intrattenimento ?? this.intrattenimento,
altro: altro ?? this.altro,
isActive: isActive ?? this.isActive,
companyId: companyId ?? this.companyId,
);
}
}