import 'package:equatable/equatable.dart'; class CompanyModel extends Equatable { final String id; final DateTime? createdAt; final String userId; final String ragioneSociale; final String indirizzo; final String cap; final String citta; final String provincia; final String partitaIva; final String codiceFiscale; final String codiceUnivoco; final bool isPaid; final DateTime? paymentExpiration; final String companyLogo; const CompanyModel({ this.id = '', this.createdAt, required this.userId, required this.ragioneSociale, required this.indirizzo, required this.cap, required this.citta, required this.provincia, required this.partitaIva, required this.codiceFiscale, required this.codiceUnivoco, this.isPaid = false, this.paymentExpiration, this.companyLogo = '', }); factory CompanyModel.fromJson(Map json) { return CompanyModel( id: json['id'] as String, createdAt: DateTime.parse(json['created_at']), userId: json['user_id'] as String, ragioneSociale: json['ragione_sociale'], indirizzo: json['indirizzo'], cap: json['cap'], citta: json['citta'], provincia: json['provincia'], partitaIva: json['partita_iva'], codiceFiscale: json['codice_fiscale'], codiceUnivoco: json['codice_univoco'], isPaid: json['is_paid'] ?? false, paymentExpiration: json['payment_expiration'] != null ? DateTime.parse(json['payment_expiration']) : null, companyLogo: json['company_logo'] ?? '', ); } Map toJson() { return { 'ragione_sociale': ragioneSociale, 'indirizzo': indirizzo, 'cap': cap, 'citta': citta, 'provincia': provincia, 'partita_iva': partitaIva, 'codice_fiscale': codiceFiscale, 'codice_univoco': codiceUnivoco, 'is_paid': isPaid, 'payment_expiration': paymentExpiration?.toIso8601String(), 'company_logo': companyLogo, }; } CompanyModel copyWith({ String? id, DateTime? createdAt, String? userId, String? ragioneSociale, String? indirizzo, String? cap, String? citta, String? provincia, String? partitaIva, String? codiceFiscale, String? codiceUnivoco, bool? isPaid, DateTime? paymentExpiration, String? companyLogo, }) => CompanyModel( id: id ?? this.id, createdAt: createdAt ?? this.createdAt, userId: userId ?? this.userId, ragioneSociale: ragioneSociale ?? this.ragioneSociale, indirizzo: indirizzo ?? this.indirizzo, cap: cap ?? this.cap, citta: citta ?? this.citta, provincia: provincia ?? this.provincia, partitaIva: partitaIva ?? this.partitaIva, codiceFiscale: codiceFiscale ?? this.codiceFiscale, codiceUnivoco: codiceUnivoco ?? this.codiceUnivoco, isPaid: isPaid ?? this.isPaid, paymentExpiration: paymentExpiration ?? this.paymentExpiration, companyLogo: companyLogo ?? this.companyLogo, ); @override List get props => [id, userId, ragioneSociale, partitaIva, isPaid]; }