-
Notifications
You must be signed in to change notification settings - Fork 0
FormatoPelicula
Melina Aguilar edited this page Jul 3, 2025
·
1 revision
La enumeración FormatoPelicula define los formatos de proyección disponibles para películas en el sistema Capybara Films, con costos adicionales asociados y manejo robusto de errores.
- Definir formatos de proyección disponibles (2D y 3D).
- Encapsular costos adicionales por formato.
- Proporcionar acceso seguro a propiedades con manejo de errores.
- Garantizar consistencia en el sistema de precios de formatos.
| Formato | Tipo | Precio Extra | Descripción |
|---|---|---|---|
DOS_D |
"2D" | $0 | Formato 2D sin costo adicional |
TRES_D |
"3D" | $1,000 | Formato 3D con costo adicional |
# Propiedad para acceder al tipo de formato de manera segura
@property
def tipo(self):
try:
return self._tipo
except AttributeError:
# Lanza excepción si el atributo no está definido correctamente
raise ReservaException("El tipo del formato de película no está definido correctamente.")Fuente: FormatoPelicula.py:22-27
def convertir_formato(self, formato):
"""Convierte un valor como '2D' o '3D' en un miembro del enum FormatoPelicula."""
for miembro in FormatoPelicula:
if miembro.get_tipo() == formato:
return miembro
raise ValueError(f"Formato inválido: {formato}") # Lanzar una excepción si el formato no es válidoFuente: Pelicula.py:13-18
La enumeración FormatoPelicula implementa manejo robusto de errores mediante excepciones personalizadas:
# Excepción personalizada para manejar errores específicos de reservas
class ReservaException(Exception):
"""Excepción personalizada para errores en reservas."""
passFuente: FormatoPelicula.py:5-7
- Las propiedades tipo y precio_extra incluyen manejo de AttributeError.
- Los métodos
get_tipo()yget_precio_extra()proporcionan acceso alternativo con validación. - Todas las fallas lanzan
ReservaExceptioncon mensajes descriptivos.
graph TD
PeliculaDAO --> FormatoPeliculaNode
CineServices --> FormatoPeliculaNode
FormatoPeliculaNode["FormatoPelicula (Enum)
DOS_D: $0
TRES_D: $1,000
+ get_tipo()
+ get_precio_extra()"]
FormatoPeliculaNode --> Pelicula["Pelicula
- formato: FormatoPelicula
+ convertir_formato()"]
FormatoPeliculaNode --> ReservaException["ReservaException
Custom Domain Exception"]
- Con Pelicula: Define el formato de proyección y costos adicionales.
- Con ReservaException: Utiliza excepción personalizada para errores de dominio.
- Con PeliculaDAO: Persistencia de información de formato.
- Con CineServices: Selección de películas con diferentes formatos.
⬅️ Inicio | Guía General del Sistema | Referencia Técnica | Guía para Desarrolladores ➡️
💾 Repositorio: Capybara Films en GitHub
© 2025 Capybara Films — Desarrollado por Carpinchos Programando
💾 Repositorio: Capybara Films en GitHub
© 2025 Capybara Films — Desarrollado por Carpinchos Programando
- 🏗️ Arquitectura del Sistema
- 📄 main.py
- 📁 data/
- 📁 daos/
- 📁 domain/entities/
- 📁 domain/entities/types
- 📁 services/
- ⚙️ Cómo Instalar y Ejecutar el Proyecto
- 🛠️ Cómo contribuir
- 🧪 Probar el Sistema Paso a Paso
- 🐞 Errores Comunes y Soluciones