sala - PowerSystem2024/CapybaraFilms_ProyectoTercerSemestre GitHub Wiki

📄 Sala.py

1. Propósito y Responsabilidades

La entidad Sala representa las salas de cine del sistema, gestionando la asociación entre salas físicas y las películas que se proyectan en ellas.

🔸 Responsabilidades principales:

  • Gestionar identificadores únicos de salas de cine.
  • Asociar salas con películas específicas para proyecciones.
  • Mantener una lista de butacas disponibles en cada sala.
  • Proporcionar métodos de acceso controlado a los atributos.

2. Atributos Principales

Atributo Tipo Propósito Valor por Defecto
id_sala int Identificador único de la sala Requerido
id_pelicula int ID de película proyectada None (opcional)
butacas list Lista de butacas en la sala Lista vacía

3. Métodos Clave con Ejemplos de Uso

🔸 Acceso a Propiedades con @property:

sala = Sala(1, 101)  
id_sala = sala.get_id_sala  # Acceso como propiedad  
print(f"Sala ID: {id_sala}")
Fuente: Sala.py:15-18

🔸 Modificación de Atributos:

# Ejemplo de uso  
sala.set_id_sala(2)  # Cambiar ID de sala  
sala.set_id_pelicula(205)  # Asignar película
Fuente: Sala.py:20-31

🔸 Representación Textual:

    # Método especial que define cómo se representará un objeto Sala cuando se lo convierta a cadena (por ejemplo, con print)
    def __str__(self):
        return f"Sala ID: {self.id_sala}, Película ID: {self.id_pelicula}"
        # Devuelve un string con los IDs de la sala y la película para mostrar información resumida
Fuente: Sala.py:33-36

4. Manejo de Errores

La entidad Sala implementa un diseño simple sin validaciones complejas:

  • Utiliza decoradores @property para acceso controlado.
  • Delega validaciones de negocio a la capa de servicios.
  • Proporciona representación textual clara para debugging.

5. Integración con Otras Entidades

graph TD
    SalaDAO --> SalaNode
    CineServices --> SalaNode
    Reserva --> SalaNode

    subgraph SalaSubgraph
        SalaNode["Sala
        - id_sala: int
        - id_pelicula: int
        - butacas: list"]
    end

    SalaNode --> Pelicula["Pelicula
    - id_pelicula: int"]
    SalaNode --> Butaca["Butaca
    - id_butaca: int"]
Loading

🔸 Relaciones:

  • Con Pelicula: Asociación uno-a-uno para proyecciones.
  • Con Butaca: Contiene múltiples butacas (relación uno-a-muchos).
  • Con SalaDAO: Persistencia y consultas de salas.
  • Con CineServices: Selección de salas en el flujo de reserva.
  • Con Reserva: Una reserva se asocia a una sala específica.
⚠️ **GitHub.com Fallback** ⚠️