mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-30 13:10:47 +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.orm import declarative_base, Mapped, mapped_column
|
||||||
from sqlalchemy.sql import func
|
from sqlalchemy.sql import func
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from backend.app.db.models.portfolio import Portfolio, PropertyModel
|
from backend.app.db.models.portfolio import Portfolio, PropertyModel
|
||||||
from backend.app.db.models.materials import Material
|
from backend.app.db.models.materials import Material
|
||||||
from backend.app.db.models.portfolio import Epc
|
from backend.app.db.models.portfolio import Epc
|
||||||
|
|
@ -140,47 +142,57 @@ class PlanRecommendations(Base):
|
||||||
class Scenario(Base):
|
class Scenario(Base):
|
||||||
__tablename__ = "scenario"
|
__tablename__ = "scenario"
|
||||||
|
|
||||||
id = Column(BigInteger, primary_key=True, autoincrement=True)
|
id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True)
|
||||||
name = Column(String, nullable=False)
|
name: Mapped[str] = mapped_column(String, nullable=False)
|
||||||
created_at = Column(TIMESTAMP, nullable=False, server_default=func.now())
|
created_at: Mapped[datetime] = mapped_column(
|
||||||
budget = Column(Float)
|
TIMESTAMP, nullable=False, server_default=func.now()
|
||||||
portfolio_id = Column(BigInteger, ForeignKey(Portfolio.id), nullable=False)
|
)
|
||||||
housing_type = Column(String, nullable=False)
|
budget: Mapped[Optional[float]] = mapped_column(Float)
|
||||||
goal = Column(String, nullable=False)
|
portfolio_id: Mapped[int] = mapped_column(
|
||||||
goal_value = Column(String, nullable=False)
|
BigInteger, ForeignKey(Portfolio.id), nullable=False
|
||||||
trigger_file_path = Column(String, nullable=False)
|
)
|
||||||
already_installed_file_path = Column(String)
|
housing_type: Mapped[str] = mapped_column(String, nullable=False)
|
||||||
patches_file_path = Column(String)
|
goal: Mapped[str] = mapped_column(String, nullable=False)
|
||||||
non_invasive_recommendations_file_path = Column(String)
|
goal_value: Mapped[str] = mapped_column(String, nullable=False)
|
||||||
exclusions = Column(String)
|
trigger_file_path: Mapped[str] = mapped_column(String, nullable=False)
|
||||||
multi_plan = Column(Boolean, default=False)
|
already_installed_file_path: Mapped[Optional[str]] = mapped_column(String)
|
||||||
is_default = Column(Boolean, default=False, nullable=False)
|
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
|
# Add in the fields we need, which were previously sitting at the portfolio level
|
||||||
cost = Column(Float)
|
cost: Mapped[Optional[float]] = mapped_column(Float)
|
||||||
contingency = Column(Float)
|
contingency: Mapped[Optional[float]] = mapped_column(Float)
|
||||||
funding = Column(Float)
|
funding: Mapped[Optional[float]] = mapped_column(Float)
|
||||||
total_work_hours = Column(Float)
|
total_work_hours: Mapped[Optional[float]] = mapped_column(Float)
|
||||||
energy_savings = Column(Float)
|
energy_savings: Mapped[Optional[float]] = mapped_column(Float)
|
||||||
co2_equivalent_savings = Column(Float)
|
co2_equivalent_savings: Mapped[Optional[float]] = mapped_column(Float)
|
||||||
energy_cost_savings = Column(Float)
|
energy_cost_savings: Mapped[Optional[float]] = mapped_column(Float)
|
||||||
epc_breakdown_pre_retrofit = Column(String)
|
epc_breakdown_pre_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||||
epc_breakdown_post_retrofit = Column(String)
|
epc_breakdown_post_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||||
number_of_properties = Column(BigInteger)
|
number_of_properties: Mapped[Optional[int]] = mapped_column(BigInteger)
|
||||||
n_units_to_retrofit = Column(BigInteger)
|
n_units_to_retrofit: Mapped[Optional[int]] = mapped_column(BigInteger)
|
||||||
co2_per_unit_pre_retrofit = Column(String)
|
co2_per_unit_pre_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||||
co2_per_unit_post_retrofit = Column(String)
|
co2_per_unit_post_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||||
energy_bill_per_unit_pre_retrofit = Column(String)
|
energy_bill_per_unit_pre_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||||
energy_bill_per_unit_post_retrofit = Column(String)
|
energy_bill_per_unit_post_retrofit: Mapped[Optional[str]] = mapped_column(String)
|
||||||
energy_consumption_per_unit_pre_retrofit = Column(String)
|
energy_consumption_per_unit_pre_retrofit: Mapped[Optional[str]] = mapped_column(
|
||||||
energy_consumption_per_unit_post_retrofit = Column(String)
|
String
|
||||||
valuation_improvement_per_unit = Column(String)
|
)
|
||||||
cost_per_unit = Column(String)
|
energy_consumption_per_unit_post_retrofit: Mapped[Optional[str]] = mapped_column(
|
||||||
cost_per_co2_saved = Column(String)
|
String
|
||||||
cost_per_sap_point = Column(String)
|
)
|
||||||
valuation_return_on_investment = Column(String)
|
valuation_improvement_per_unit: Mapped[Optional[str]] = mapped_column(String)
|
||||||
property_valuation_increase = Column(Float)
|
cost_per_unit: Mapped[Optional[str]] = mapped_column(String)
|
||||||
labour_days = Column(Float)
|
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):
|
class MeasureType(enum.Enum):
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue