Eliminar creche_app/lib/models/invite.dart
This commit is contained in:
parent
c58fdb428b
commit
31f4f4aba0
|
|
@ -1,49 +0,0 @@
|
||||||
/// Representa um convite pendente no sistema
|
|
||||||
class Invite {
|
|
||||||
final String id;
|
|
||||||
final String email;
|
|
||||||
final String role;
|
|
||||||
final String? phone; // para encarregados — número do terminal
|
|
||||||
final String invitedBy; // profile_id do principal que convidou
|
|
||||||
final String status; // pending | accepted | rejected | expired
|
|
||||||
final DateTime createdAt;
|
|
||||||
final DateTime expiresAt;
|
|
||||||
final String? childId; // para encarregados — ligação à criança
|
|
||||||
|
|
||||||
Invite({
|
|
||||||
required this.id,
|
|
||||||
required this.email,
|
|
||||||
required this.role,
|
|
||||||
this.phone,
|
|
||||||
required this.invitedBy,
|
|
||||||
required this.status,
|
|
||||||
required this.createdAt,
|
|
||||||
required this.expiresAt,
|
|
||||||
this.childId,
|
|
||||||
});
|
|
||||||
|
|
||||||
factory Invite.fromMap(Map<String, dynamic> m) => Invite(
|
|
||||||
id: m['id'] ?? '',
|
|
||||||
email: m['email'] ?? '',
|
|
||||||
role: m['role'] ?? 'parent',
|
|
||||||
phone: m['phone'],
|
|
||||||
invitedBy: m['invited_by'] ?? '',
|
|
||||||
status: m['status'] ?? 'pending',
|
|
||||||
createdAt: DateTime.tryParse(m['created_at'] ?? '') ?? DateTime.now(),
|
|
||||||
expiresAt: DateTime.tryParse(m['expires_at'] ?? '') ?? DateTime.now().add(const Duration(days: 7)),
|
|
||||||
childId: m['child_id'],
|
|
||||||
);
|
|
||||||
|
|
||||||
bool get isExpired => DateTime.now().isAfter(expiresAt);
|
|
||||||
bool get isPending => status == 'pending' && !isExpired;
|
|
||||||
|
|
||||||
Map<String, dynamic> toMap() => {
|
|
||||||
'email': email,
|
|
||||||
'role': role,
|
|
||||||
'phone': phone,
|
|
||||||
'invited_by': invitedBy,
|
|
||||||
'status': status,
|
|
||||||
'expires_at': expiresAt.toIso8601String(),
|
|
||||||
'child_id': childId,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue