butaca - PowerSystem2024/CapybaraFilms_ProyectoTercerSemestre GitHub Wiki

📄 Butaca.py

1. Propósito y Responsabilidades

La entidad Butaca representa asientos individuales de cine con seguimiento de ubicación y gestión de disponibilidad.

Responsabilidades principales:

  • Gestionar el estado de disponibilidad de cada asiento (ocupado/libre).
  • Mantener información de ubicación física (fila y columna).
  • Categorizar asientos por tipo (común o premium).
  • Proporcionar métodos para cambio de estado controlado.

2. Atributos Principales

Atributo Tipo Propósito Validación
id_butaca int Identificador único Asignado por BD
fila int Número de fila (1-12) Rango válido
columna int Número de columna (1-12) Rango válido
categoria str Tipo de butaca (común/premium) Valores predefinidos
estado bool Disponibilidad (True=ocupada, False=libre) Booleano

3. Métodos Clave con Ejemplos de Uso

🔸 Gestión de Estado:

butaca = Butaca(1, 5, 3, "premium", False)  
butaca.set_estado(True)  # Marcar como ocupada  
print(butaca.is_estado())  # True - está ocupada

🔸 Acceso a Ubicación:

fila = butaca.get_fila()      # Obtiene número de fila  
columna = butaca.get_columna()  # Obtiene número de columna  
categoria = butaca.get_categoria()  # Obtiene tipo de butaca

🔸 Representación Textual:

 def __str__(self): # texto a imprimir de la butaca seleccionada por el cliente
        return f"Categoria: {self.categoria}, Ubicacion: {self.ubicacion}, Estado: {'Ocupada' if self.estado else 'Libre'}"

4. Manejo de Errores

La entidad Butaca implementa validación básica:

  • Los métodos getter/setter proporcionan acceso controlado.
  • La representación textual maneja estados booleanos de forma legible.
  • No implementa validaciones complejas, delegando esto a la capa de servicios.

5. Integración con Otras Entidades

graph TD
    Reserva --> ButacaNode
    ButacaDAO --> ButacaNode
    CineServices --> ButacaNode

    subgraph ButacaSubgraph
        ButacaNode["Butaca
        - fila: int
        - columna: int
        - categoria: str
        - estado: bool"]
    end

    ButacaNode --> TipoButaca["TipoButaca
    COMUN/PREMIUM"]
    ButacaNode --> Ubicacion["Ubicacion
    Value Object"]
Loading

🔸 Relaciones:

  • Con TipoButaca: Determina precios según categoría.
  • Con Ubicacion: Value object para posicionamiento.
  • Con Reserva: Múltiples butacas por reserva.
  • Con ButacaDAO: Persistencia y consultas de disponibilidad.
  • Con CineServices: Visualización de matriz y selección.
⚠️ **GitHub.com Fallback** ⚠️