define sqlalchemy objects for new database tables / types

This commit is contained in:
Daniel Roth 2026-03-26 15:38:19 +00:00
parent f1d1bcb2de
commit 4ac7ed6f09

View file

@ -0,0 +1,44 @@
import enum
from sqlalchemy import TIMESTAMP, BigInteger, Column, Text, Enum as SqlEnum
from backend.app.db.base import Base
class FileTypeEnum(enum.Enum):
PHOTO_PACK = "photo_pack"
SITE_NOTE = "site_note"
RD_SAP_SITE_NOTE = "rd_sap_site_note"
PAS_2023_VENTILATION = "pas_2023_ventilation"
PAS_2023_CONDITION = "pas_2023_condition"
PAS_SIGNIFICANCE = "pas_significance"
PAR_PHOTO_PACK = "par_photo_pack"
PAS_2023_PROPERTY = "pas_2023_property"
PAS_2023_OCCUPANCY = "pas_2023_occupancy"
class FileSourceEnum(enum.Enum):
PAS_HUB = "pas hub"
SHAREPOINT = "sharepoint"
HUBSPOT = "hubspot"
class UploadedFiles(Base):
__tablename__ = "uploaded_files"
id = Column(BigInteger, primary_key=True)
s3_file_bucket = Column(Text, nullable=False)
s3_file_key = Column(Text, nullable=False)
s3_upload_timestamp = Column(TIMESTAMP(timezone=True), nullable=False)
landlord_property_id = Column(Text, nullable=True)
uprn = Column(BigInteger, nullable=True)
hubspot_listing_id = Column(BigInteger, nullable=True)
file_type = Column(
SqlEnum(FileTypeEnum, name="file_type", create_type=False), nullable=True
)
source = Column(
SqlEnum(FileSourceEnum, name="file_source", create_type=False), nullable=True
)