butaca - PowerSystem2024/CapybaraFilms_ProyectoTercerSemestre GitHub Wiki
La entidad Butaca
representa asientos individuales de cine con seguimiento de ubicación y gestión de disponibilidad.
- 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.
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 |
butaca = Butaca(1, 5, 3, "premium", False)
butaca.set_estado(True) # Marcar como ocupada
print(butaca.is_estado()) # True - está ocupada
Fuente: Butaca.py:9-11
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
Fuente: Butaca.py:30-34
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'}"
Fuente: Butaca.py:36-37
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.
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"]
- 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.