import 'package:equatable/equatable.dart'; class EntertainmentOperationModel extends Equatable { final String? id; final DateTime? createdAt; final String type; // es. Sky, DAZN, ecc. final bool constrained; // Vincolato? final DateTime constrainExpiration; final String? operationId; final String? providerId; const EntertainmentOperationModel({ this.id, this.createdAt, required this.type, required this.constrained, required this.constrainExpiration, this.operationId, this.providerId, }); EntertainmentOperationModel copyWith({ String? id, DateTime? createdAt, String? type, bool? constrained, DateTime? constrainExpiration, String? operationId, String? providerId, }) { return EntertainmentOperationModel( id: id ?? this.id, createdAt: createdAt ?? this.createdAt, type: type ?? this.type, constrained: constrained ?? this.constrained, constrainExpiration: constrainExpiration ?? this.constrainExpiration, operationId: operationId ?? this.operationId, providerId: providerId ?? this.providerId, ); } @override List get props => [ id, createdAt, type, constrained, constrainExpiration, operationId, providerId, ]; factory EntertainmentOperationModel.fromMap(Map map) { return EntertainmentOperationModel( id: map['id'], createdAt: map['created_at'] != null ? DateTime.parse(map['created_at']) : null, type: map['type'], constrained: map['constrained'] ?? false, constrainExpiration: DateTime.parse(map['constrain_expiration']), operationId: map['operation_id'], providerId: map['provider_id'], ); } Map toMap() { return { if (id != null) 'id': id, 'type': type, 'constrained': constrained, 'constrain_expiration': constrainExpiration.toIso8601String(), 'operation_id': operationId, 'provider_id': providerId, }; } }