syncra_addons/creche_app/lib/models/payment.dart

43 lines
1.2 KiB
Dart

class Payment {
final String id;
final String childId; // ← adicionado
final String guardianId;
final DateTime month;
final double amount;
final String status; // pending | paid | overdue
final DateTime? paidAt;
final String? receiptUrl;
Payment({
required this.id,
required this.childId,
required this.guardianId,
required this.month,
required this.amount,
required this.status,
this.paidAt,
this.receiptUrl,
});
factory Payment.fromMap(Map<String, dynamic> map) => Payment(
id: map['id'] ?? '',
childId: map['child_id'] ?? '',
guardianId: map['guardian_id'] ?? '',
month: DateTime.tryParse(map['month'] ?? '') ?? DateTime.now(),
amount: (map['amount'] ?? 0).toDouble(),
status: map['status'] ?? 'pending',
paidAt: map['paid_at'] != null ? DateTime.tryParse(map['paid_at']) : null,
receiptUrl: map['receipt_url'],
);
Map<String, dynamic> toMap() => {
'child_id': childId,
'guardian_id': guardianId,
'month': month.toIso8601String().split('T')[0],
'amount': amount,
'status': status,
'paid_at': paidAt?.toIso8601String(),
'receipt_url': receiptUrl,
};
}