This commit is contained in:
2026-04-11 12:40:03 +02:00
parent a485d79460
commit 9f154afe9e
15 changed files with 522 additions and 12 deletions

View File

@@ -0,0 +1,45 @@
import 'package:equatable/equatable.dart';
class CustomerFileModel extends Equatable {
final int? id;
final String customerId; // Riferimento UUID
final String name;
final String url;
final String extension;
final DateTime? createdAt;
const CustomerFileModel({
this.id,
required this.customerId,
required this.name,
required this.url,
required this.extension,
this.createdAt,
});
factory CustomerFileModel.fromJson(Map<String, dynamic> json) {
return CustomerFileModel(
id: json['id'],
customerId: json['customer_id'],
name: json['name'],
url: json['url'],
extension: json['extension'] ?? '',
createdAt: json['created_at'] != null
? DateTime.parse(json['created_at'])
: null,
);
}
Map<String, dynamic> toJson() {
return {
if (id != null) 'id': id,
'customer_id': customerId,
'name': name,
'url': url,
'extension': extension,
};
}
@override
List<Object?> get props => [id, customerId, name, url, extension, createdAt];
}

View File

@@ -1,7 +1,7 @@
import 'package:equatable/equatable.dart';
class CustomerModel extends Equatable {
final int? id; // Bigint in SQL
final String? id; // Bigint in SQL
final DateTime? createdAt;
final String nome;
final String telefono;
@@ -11,6 +11,7 @@ class CustomerModel extends Equatable {
final bool nonDisturbare;
final String companyId; // UUID
final bool isActive;
final int fileCount;
const CustomerModel({
this.id,
@@ -23,6 +24,7 @@ class CustomerModel extends Equatable {
this.nonDisturbare = false,
required this.companyId,
this.isActive = true,
this.fileCount = 0,
});
@override
@@ -37,10 +39,11 @@ class CustomerModel extends Equatable {
nonDisturbare,
companyId,
isActive,
fileCount,
];
CustomerModel copyWith({
int? id,
String? id,
DateTime? createdAt,
String? nome,
String? telefono,
@@ -50,6 +53,7 @@ class CustomerModel extends Equatable {
bool? nonDisturbare,
String? companyId,
bool? isActive,
int? fileCount,
}) {
return CustomerModel(
id: id ?? this.id,
@@ -62,12 +66,18 @@ class CustomerModel extends Equatable {
nonDisturbare: nonDisturbare ?? this.nonDisturbare,
companyId: companyId ?? this.companyId,
isActive: isActive ?? this.isActive,
fileCount: fileCount ?? this.fileCount,
);
}
factory CustomerModel.fromJson(Map<String, dynamic> json) {
int count = 0;
if (json['customer_file'] != null &&
(json['customer_file'] as List).isNotEmpty) {
count = json['customer_file'][0]['count'] ?? 0;
}
return CustomerModel(
id: json['id'],
id: json['id'] as String,
createdAt: json['created_at'] != null
? DateTime.parse(json['created_at'])
: null,
@@ -79,8 +89,9 @@ class CustomerModel extends Equatable {
? DateTime.parse(json['data_ultimo_contatto'])
: null,
nonDisturbare: json['non_disturbare'] ?? false,
companyId: json['company_id'],
companyId: json['company_id'] as String,
isActive: json['is_active'] ?? true,
fileCount: count,
);
}