mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
sqlalchemy 2.0 typing in scenario
This commit is contained in:
parent
e7f941d5e4
commit
73607a5117
1 changed files with 51 additions and 39 deletions
|
|
@ -11,6 +11,8 @@ from sqlalchemy import (
|
|||
)
|
||||
from sqlalchemy.orm import declarative_base, Mapped, mapped_column
|
||||
from sqlalchemy.sql import func
|
||||
from datetime import datetime
|
||||
|
||||
from backend.app.db.models.portfolio import Portfolio, PropertyModel
|
||||
from backend.app.db.models.materials import Material
|
||||
from backend.app.db.models.portfolio import Epc
|
||||
|
|
@ -140,47 +142,57 @@ class PlanRecommendations(Base):
|
|||
class Scenario(Base):
|
||||
__tablename__ = "scenario"
|
||||
|
||||
id = Column(BigInteger, primary_key=True, autoincrement=True)
|
||||
name = Column(String, nullable=False)
|
||||
created_at = Column(TIMESTAMP, nullable=False, server_default=func.now())
|
||||
budget = Column(Float)
|
||||
portfolio_id = Column(BigInteger, ForeignKey(Portfolio.id), nullable=False)
|
||||
housing_type = Column(String, nullable=False)
|
||||
goal = Column(String, nullable=False)
|
||||
goal_value = Column(String, nullable=False)
|
||||
trigger_file_path = Column(String, nullable=False)
|
||||
already_installed_file_path = Column(String)
|
||||
patches_file_path = Column(String)
|
||||
non_invasive_recommendations_file_path = Column(String)
|
||||
exclusions = Column(String)
|
||||
multi_plan = Column(Boolean, default=False)
|
||||
is_default = Column(Boolean, default=False, nullable=False)
|
||||
id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True)
|
||||
name: Mapped[str] = mapped_column(String, nullable=False)
|
||||
created_at: Mapped[datetime] = mapped_column(
|
||||
TIMESTAMP, nullable=False, server_default=func.now()
|
||||
)
|
||||
budget: Mapped[Optional[float]] = mapped_column(Float)
|
||||
portfolio_id: Mapped[int] = mapped_column(
|
||||
BigInteger, ForeignKey(Portfolio.id), nullable=False
|
||||
)
|
||||
housing_type: Mapped[str] = mapped_column(String, nullable=False)
|
||||
goal: Mapped[str] = mapped_column(String, nullable=False)
|
||||
goal_value: Mapped[str] = mapped_column(String, nullable=False)
|
||||
trigger_file_path: Mapped[str] = mapped_column(String, nullable=False)
|
||||
already_installed_file_path: Mapped[Optional[str]] = mapped_column(String)
|
||||
patches_file_path: Mapped[Optional[str]] = mapped_column(String)
|
||||
non_invasive_recommendations_file_path: Mapped[Optional[str]] = mapped_column(
|
||||
String
|
||||
)
|
||||
exclusions: Mapped[Optional[str]] = mapped_column(String)
|
||||
multi_plan: Mapped[bool] = mapped_column(Boolean, default=False)
|
||||
is_default: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
|
||||
|
||||
# Add in the fields we need, which were previously sitting at the portfolio level
|
||||
cost = Column(Float)
|
||||
contingency = Column(Float)
|
||||
funding = Column(Float)
|
||||
total_work_hours = Column(Float)
|
||||
energy_savings = Column(Float)
|
||||
co2_equivalent_savings = Column(Float)
|
||||
energy_cost_savings = Column(Float)
|
||||
epc_breakdown_pre_retrofit = Column(String)
|
||||
epc_breakdown_post_retrofit = Column(String)
|
||||
number_of_properties = Column(BigInteger)
|
||||
n_units_to_retrofit = Column(BigInteger)
|
||||
co2_per_unit_pre_retrofit = Column(String)
|
||||
co2_per_unit_post_retrofit = Column(String)
|
||||
energy_bill_per_unit_pre_retrofit = Column(String)
|
||||
energy_bill_per_unit_post_retrofit = Column(String)
|
||||
energy_consumption_per_unit_pre_retrofit = Column(String)
|
||||
energy_consumption_per_unit_post_retrofit = Column(String)
|
||||
valuation_improvement_per_unit = Column(String)
|
||||
cost_per_unit = Column(String)
|
||||
cost_per_co2_saved = Column(String)
|
||||
cost_per_sap_point = Column(String)
|
||||
valuation_return_on_investment = Column(String)
|
||||
property_valuation_increase = Column(Float)
|
||||
labour_days = Column(Float)
|
||||
cost: Mapped[Optional[float]] = mapped_column(Float)
|
||||
contingency: Mapped[Optional[float]] = mapped_column(Float)
|
||||
funding: Mapped[Optional[float]] = mapped_column(Float)
|
||||
total_work_hours: Mapped[Optional[float]] = mapped_column(Float)
|
||||
energy_savings: Mapped[Optional[float]] = mapped_column(Float)
|
||||
co2_equivalent_savings: Mapped[Optional[float]] = mapped_column(Float)
|
||||
energy_cost_savings: Mapped[Optional[float]] = mapped_column(Float)
|
||||
epc_breakdown_pre_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||
epc_breakdown_post_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||
number_of_properties: Mapped[Optional[int]] = mapped_column(BigInteger)
|
||||
n_units_to_retrofit: Mapped[Optional[int]] = mapped_column(BigInteger)
|
||||
co2_per_unit_pre_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||
co2_per_unit_post_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||
energy_bill_per_unit_pre_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||
energy_bill_per_unit_post_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||
energy_consumption_per_unit_pre_retrofit: Mapped[Optional[str]] = mapped_column(
|
||||
String
|
||||
)
|
||||
energy_consumption_per_unit_post_retrofit: Mapped[Optional[str]] = mapped_column(
|
||||
String
|
||||
)
|
||||
valuation_improvement_per_unit: Mapped[Optional[str]] = mapped_column(String)
|
||||
cost_per_unit: Mapped[Optional[str]] = mapped_column(String)
|
||||
cost_per_co2_saved: Mapped[Optional[str]] = mapped_column(String)
|
||||
cost_per_sap_point: Mapped[Optional[str]] = mapped_column(String)
|
||||
valuation_return_on_investment: Mapped[Optional[str]] = mapped_column(String)
|
||||
property_valuation_increase: Mapped[Optional[float]] = mapped_column(Float)
|
||||
labour_days: Mapped[Optional[float]] = mapped_column(Float)
|
||||
|
||||
|
||||
class MeasureType(enum.Enum):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue