Files
flux/lib/features/operations/models/fin_operation_model.dart

64 lines
1.6 KiB
Dart
Raw Normal View History

import 'package:equatable/equatable.dart';
2026-05-01 10:11:44 +02:00
class FinOperationModel extends Equatable {
final String? id;
final DateTime? createdAt;
final DateTime expiration;
2026-05-01 10:11:44 +02:00
final String? operationId;
final String? modelId; // FK verso model (es. iPhone, Samsung, ecc.)
final String? providerId;
2026-05-01 10:11:44 +02:00
const FinOperationModel({
this.id,
this.createdAt,
required this.expiration,
2026-05-01 10:11:44 +02:00
this.operationId,
this.modelId,
this.providerId,
});
2026-05-01 10:11:44 +02:00
FinOperationModel copyWith({
String? id,
DateTime? createdAt,
DateTime? expiration,
2026-05-01 10:11:44 +02:00
String? operationId,
String? modelId,
String? providerId,
}) {
2026-05-01 10:11:44 +02:00
return FinOperationModel(
id: id ?? this.id,
createdAt: createdAt ?? this.createdAt,
expiration: expiration ?? this.expiration,
2026-05-01 10:11:44 +02:00
operationId: operationId ?? this.operationId,
modelId: modelId ?? this.modelId,
providerId: providerId ?? this.providerId,
);
}
@override
2026-05-01 10:11:44 +02:00
List<Object?> get props => [id, createdAt, expiration, operationId, modelId];
2026-05-01 10:11:44 +02:00
factory FinOperationModel.fromMap(Map<String, dynamic> map) {
return FinOperationModel(
id: map['id'],
createdAt: map['created_at'] != null
? DateTime.parse(map['created_at'])
: null,
expiration: DateTime.parse(map['expiration']),
2026-05-01 10:11:44 +02:00
operationId: map['operation_id'],
modelId: map['model_id'],
providerId: map['provider_id'],
);
}
Map<String, dynamic> toMap() {
return {
if (id != null) 'id': id,
'expiration': expiration.toIso8601String(),
2026-05-01 10:11:44 +02:00
'operation_id': operationId,
'model_id': modelId,
'provider_id': providerId,
};
}
}