This commit is contained in:
2026-05-18 08:31:39 +02:00
parent 1a21b44bc8
commit 906265a0e3
8 changed files with 72 additions and 49 deletions

View File

@@ -1,6 +1,7 @@
import 'package:equatable/equatable.dart';
import 'package:flux/core/utils/extensions.dart';
import 'package:flux/features/customers/models/customer_model.dart';
import 'package:flux/features/tickets/models/shipment_document_model.dart';
/// Enum per il tipo di ticket
enum TicketType {
@@ -111,6 +112,7 @@ class TicketModel extends Equatable {
final DateTime? estimatedDeliveryAt;
final TicketResult? ticketResult;
final String? resolutionNotes;
final String? shippingDocumentId;
final CustomerModel? customer;
final String? targetModelName;
final String? sourceModelName;
@@ -119,6 +121,8 @@ class TicketModel extends Equatable {
final String? assignedToId;
final String? assignedToName;
final String? includedAccessories;
final ShipmentDocumentModel?
shippingDocument; // Per tenere in memoria i dati del DDT associato al ticket
const TicketModel({
this.id,
@@ -148,6 +152,7 @@ class TicketModel extends Equatable {
this.estimatedDeliveryAt,
this.ticketResult,
this.resolutionNotes,
this.shippingDocumentId,
this.customer,
this.targetModelName,
this.sourceModelName,
@@ -156,6 +161,7 @@ class TicketModel extends Equatable {
this.assignedToId,
this.assignedToName,
this.includedAccessories,
this.shippingDocument,
});
/// Factory per creare un ticket vuoto (utile per i form di creazione)
@@ -200,6 +206,7 @@ class TicketModel extends Equatable {
DateTime? estimatedDeliveryAt,
TicketResult? ticketResult,
String? resolutionNotes,
String? shippingDocumentId,
CustomerModel? customer,
String? targetModelName,
String? sourceModelName,
@@ -208,6 +215,7 @@ class TicketModel extends Equatable {
String? assignedToId,
String? assignedToName,
String? includedAccessories,
ShipmentDocumentModel? shippingDocument,
}) {
return TicketModel(
id: id ?? this.id,
@@ -238,6 +246,7 @@ class TicketModel extends Equatable {
estimatedDeliveryAt: estimatedDeliveryAt ?? this.estimatedDeliveryAt,
ticketResult: ticketResult ?? this.ticketResult,
resolutionNotes: resolutionNotes ?? this.resolutionNotes,
shippingDocumentId: shippingDocumentId ?? this.shippingDocumentId,
customer: customer ?? this.customer,
targetModelName: targetModelName ?? this.targetModelName,
sourceModelName: sourceModelName ?? this.sourceModelName,
@@ -246,6 +255,7 @@ class TicketModel extends Equatable {
assignedToId: assignedToId ?? this.assignedToId,
assignedToName: assignedToName ?? this.assignedToName,
includedAccessories: includedAccessories ?? this.includedAccessories,
shippingDocument: shippingDocument ?? this.shippingDocument,
);
}
@@ -288,6 +298,7 @@ class TicketModel extends Equatable {
: null,
ticketResult: TicketResult.fromString(map['ticket_result'] as String?),
resolutionNotes: map['resolution_notes'] as String?,
shippingDocumentId: map['shipping_document_id'] as String?,
customer: map['customer'] != null
? CustomerModel.fromMap(map['customer'] as Map<String, dynamic>)
: null,
@@ -300,6 +311,11 @@ class TicketModel extends Equatable {
assignedToId: map['assigned_to_id'] as String?,
assignedToName: (map['assigned_to']?['name'] as String?)?.myFormat(),
includedAccessories: map['included_accessories'] as String?,
shippingDocument: map['shipping_document'] != null
? ShipmentDocumentModel.fromMap(
map['shipping_document'] as Map<String, dynamic>,
)
: null,
);
}
@@ -337,6 +353,7 @@ class TicketModel extends Equatable {
if (ticketResult != null) 'ticket_result': ticketResult!.value,
'resolution_notes': resolutionNotes,
'included_accessories': includedAccessories,
'shipping_document_id': shippingDocumentId,
};
}
@@ -376,5 +393,7 @@ class TicketModel extends Equatable {
createdByName,
assignedToId,
assignedToName,
shippingDocumentId,
shippingDocument,
];
}