Files
flux/lib/features/company/models/company_model.dart

108 lines
3.1 KiB
Dart

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<String, dynamic> 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<String, dynamic> 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<Object?> get props => [id, userId, ragioneSociale, partitaIva, isPaid];
}