cliente - PowerSystem2024/CapybaraFilms_ProyectoTercerSemestre GitHub Wiki
La entidad Cliente
representa a los usuarios del sistema de cine con validaciones integradas para garantizar la integridad de los datos.
- Almacenar información personal del cliente (DNI, nombre, apellido, email).
- Validar datos de entrada según reglas de negocio.
- Proporcionar acceso controlado a los atributos mediante getters/setters.
- Servir como identificador único para las reservas.
Atributo | Tipo | Propósito | Validación |
---|---|---|---|
id_cliente |
int | Identificador único en BD | Asignado automáticamente |
dni |
str | Documento de identidad | Solo números, 8 dígitos |
nombre |
str | Nombre del cliente | No vacío, solo letras y espacios |
apellido |
str | Apellido del cliente | No vacío, solo letras y espacios |
email |
str | Correo electrónico | Debe contener '@' y '.' |
cliente = Cliente()
try:
cliente.set_dni("12345678") # Válido
cliente.set_dni("1234567a") # Lanza ValueError
except ValueError as e:
print(f"Error: {e}")
try:
cliente.set_nombre("Juan Carlos") # Válido
cliente.set_nombre("") # Lanza ValueError
except ValueError as e:
print(f"Error: {e}")
falta esto
La entidad Cliente
implementa validación defensiva mediante excepciones ValueError
:
- DNI inválido: "El DNI debe contener solo números"
- Nombre/Apellido vacío: "El nombre/apellido no puede estar vacío"
- Email inválido: "El email no es válido"
classDiagram
ServicioValidacion : +es_nombre_valido()
class Cliente {
- dni: str
- nombre: str
- apellido: str
- email: str
}
class Reserva {
- cliente: Cliente
}
class ClienteDAO {
+buscar_por_dni()
}
ServicioValidacion --> Cliente
Cliente "1" --o "1" Reserva : cliente
Cliente --> ClienteDAO
- Con Reserva: Un cliente puede tener múltiples reservas.
- Con ClienteDAO: Persistencia y recuperación de datos.
- Con ServicioValidacion: Validación adicional de nombres.