Eliminar creche_app/lib/models/invite.dart

This commit is contained in:
Alberto 2026-03-11 19:21:53 +00:00
parent c58fdb428b
commit 31f4f4aba0
1 changed files with 0 additions and 49 deletions

View File

@ -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,
};
}