28 lines
744 B
Dart
28 lines
744 B
Dart
import 'package:equatable/equatable.dart';
|
|
|
|
/// Entidad de dominio que representa un usuario autenticado.
|
|
/// Almacena únicamente el token (simulado JWT) y el rol,
|
|
/// sin datos de ubicación o rastreo.
|
|
class AuthUser extends Equatable {
|
|
final String token;
|
|
final String email;
|
|
final String role; // 'citizen' | 'operator'
|
|
final DateTime issuedAt;
|
|
final DateTime expiresAt;
|
|
|
|
const AuthUser({
|
|
required this.token,
|
|
required this.email,
|
|
required this.role,
|
|
required this.issuedAt,
|
|
required this.expiresAt,
|
|
});
|
|
|
|
bool get isExpired => DateTime.now().isAfter(expiresAt);
|
|
|
|
bool get isValid => token.isNotEmpty && !isExpired;
|
|
|
|
@override
|
|
List<Object?> get props => [token, email, role, issuedAt, expiresAt];
|
|
}
|