from sqlalchemy import Column, Integer, String, DateTime, func from sqlalchemy.orm import relationship from models.simulation_result import SimulationResult from models.capex import Capex from models.opex import Opex from models.consumption import Consumption from models.production_output import ProductionOutput from models.equipment import Equipment from models.maintenance import Maintenance from config.database import Base class Scenario(Base): __tablename__ = "scenario" id = Column(Integer, primary_key=True, index=True) name = Column(String, unique=True, nullable=False) description = Column(String) created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), onupdate=func.now()) parameters = relationship("Parameter", back_populates="scenario") simulation_results = relationship( SimulationResult, back_populates="scenario" ) capex_items = relationship(Capex, back_populates="scenario") opex_items = relationship(Opex, back_populates="scenario") consumption_items = relationship(Consumption, back_populates="scenario") production_output_items = relationship( ProductionOutput, back_populates="scenario" ) equipment_items = relationship(Equipment, back_populates="scenario") maintenance_items = relationship(Maintenance, back_populates="scenario") # relationships can be defined later def __repr__(self): return f""