cliente - PowerSystem2024/CapybaraFilms_ProyectoTercerSemestre GitHub Wiki

📄 Cliente.py

1. Propósito y Responsabilidades

La entidad Cliente representa a los usuarios del sistema de cine con validaciones integradas para garantizar la integridad de los datos.

🔸 Responsabilidades principales

  • 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.

2. Atributos Principales

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 '.'

3. Métodos Clave con Ejemplos de Uso

🔸 Validación de DNI:

cliente = Cliente()  
try:  
    cliente.set_dni("12345678")  # Válido  
    cliente.set_dni("1234567a")  # Lanza ValueError  
except ValueError as e:  
    print(f"Error: {e}")

🔸 Validación de Nombres:

try:  
    cliente.set_nombre("Juan Carlos")  # Válido  
    cliente.set_nombre("")  # Lanza ValueError  
except ValueError as e:  
    print(f"Error: {e}")

🔸 Validación de Email:

falta esto

4. Manejo de Errores

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"

6. Integración con Otras Entidades

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
Loading

🔸 Relaciones:

  • Con Reserva: Un cliente puede tener múltiples reservas.
  • Con ClienteDAO: Persistencia y recuperación de datos.
  • Con ServicioValidacion: Validación adicional de nombres.
⚠️ **GitHub.com Fallback** ⚠️