mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
set up epc model and already installed model
This commit is contained in:
parent
caeb776428
commit
7fde580b37
2 changed files with 45 additions and 0 deletions
29
backend/app/db/models/epc.py
Normal file
29
backend/app/db/models/epc.py
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
from sqlalchemy import (
|
||||||
|
Column,
|
||||||
|
Integer,
|
||||||
|
String,
|
||||||
|
JSON,
|
||||||
|
TIMESTAMP,
|
||||||
|
UniqueConstraint,
|
||||||
|
)
|
||||||
|
from sqlalchemy.orm import declarative_base
|
||||||
|
|
||||||
|
Base = declarative_base()
|
||||||
|
|
||||||
|
|
||||||
|
class EpcStore(Base):
|
||||||
|
"""
|
||||||
|
Stores EPC data retrieved from the EPC API and EPC web pages.
|
||||||
|
"""
|
||||||
|
__tablename__ = "epc_store"
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
|
uprn = Column(Integer)
|
||||||
|
epc_api_created_at = Column(TIMESTAMP(timezone=False))
|
||||||
|
epc_api = Column(JSON, nullable=False)
|
||||||
|
epc_page_created_at = Column(TIMESTAMP(timezone=False))
|
||||||
|
epc_page = Column(String)
|
||||||
|
epc_page_rrn = Column(String)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return f"<EpcStore(id={self.id}, uprn='{self.uprn}')>"
|
||||||
|
|
@ -4,6 +4,7 @@ import datetime
|
||||||
from sqlalchemy import Column, Integer, Text, Boolean, Float, DateTime, Enum, ForeignKey, CheckConstraint
|
from sqlalchemy import Column, Integer, Text, Boolean, Float, DateTime, Enum, ForeignKey, CheckConstraint
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
from backend.app.db.models.users import UserModel # noqa
|
from backend.app.db.models.users import UserModel # noqa
|
||||||
|
from backend.app.db.models.materials import MaterialType
|
||||||
|
|
||||||
Base = declarative_base()
|
Base = declarative_base()
|
||||||
|
|
||||||
|
|
@ -225,3 +226,18 @@ class PortfolioUsers(Base):
|
||||||
role = Column(Text, nullable=False)
|
role = Column(Text, nullable=False)
|
||||||
created_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc))
|
created_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc))
|
||||||
updated_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc))
|
updated_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc))
|
||||||
|
|
||||||
|
|
||||||
|
class PropertyInstalledMeasures(Base):
|
||||||
|
"""
|
||||||
|
This model keeps a record of the installed measures for each property, at the UPRN level
|
||||||
|
"""
|
||||||
|
__tablename__ = 'property_installed_measures'
|
||||||
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
|
uprn = Column(Integer, nullable=False)
|
||||||
|
measure_type = Column(
|
||||||
|
Enum(MaterialType, values_callable=lambda x: [e.value for e in x], create_constraint=False),
|
||||||
|
nullable=False
|
||||||
|
)
|
||||||
|
created_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc))
|
||||||
|
installed_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc))
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue