diff --git a/backend/app/db/models/uploaded_files.py b/backend/app/db/models/uploaded_files.py new file mode 100644 index 00000000..d4bf48d8 --- /dev/null +++ b/backend/app/db/models/uploaded_files.py @@ -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 + )