From c48fb674ded97a44815eb3511a2c520f06789370 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 19 Aug 2024 13:43:18 +0100 Subject: [PATCH] Added PortfolioUsers table --- backend/app/db/models/portfolio.py | 10 ++++++++++ etl/ownership/projects/midlands_portfolio/app.py | 10 +++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/backend/app/db/models/portfolio.py b/backend/app/db/models/portfolio.py index 5ac092a7..8a22e98a 100644 --- a/backend/app/db/models/portfolio.py +++ b/backend/app/db/models/portfolio.py @@ -205,3 +205,13 @@ class PropertyTargetsModel(Base): created_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc)) epc = Column(Enum(Epc)) heat_demand = Column(Text) + + +class PortfolioUsers(Base): + __table_args__ = "portfolioUsers" + id = Column(Integer, primary_key=True, autoincrement=True) + userId = Column(Integer, ForeignKey('user.id'), nullable=False) + portfolioId = Column(Integer, ForeignKey('portfolio.id'), nullable=False) + role = Column(Text, nullable=False) + created_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc)) + updated_at = Column(DateTime, nullable=False, default=datetime.datetime.now(pytz.utc)) diff --git a/etl/ownership/projects/midlands_portfolio/app.py b/etl/ownership/projects/midlands_portfolio/app.py index 5a4cf3f3..8cad3c3e 100644 --- a/etl/ownership/projects/midlands_portfolio/app.py +++ b/etl/ownership/projects/midlands_portfolio/app.py @@ -1,3 +1,5 @@ +from sqlalchemy.orm import sessionmaker +from backend.app.db.connection import db_engine from etl.ownership.Ownership import Ownership from etl.ownership.config import OWNERS_WHO_CANT_SELL as EXCLUDED_OWNERS @@ -8,7 +10,6 @@ USER_IDS = [ 5, # Anna 30, # Patricia ] -PORTFOLIO_ID = None EPC_PATHS = [ "local_data/all-domestic-certificates/domestic-E08000025-Birmingham/certificates.csv", @@ -72,8 +73,11 @@ def app(): bucket=DATA_BUCKET, average_property_value=PROPERTY_VALUE_ESTIMATE, portfolio_value=PORTFOLIO_VALUE, - EXCLUDED_OWNERS=EXCLUDED_OWNERS + excluded_owners=EXCLUDED_OWNERS ) ownership_instance.pipeline(column_filters=epc_column_filters) - # TODO: Create portfolio and payload + session = sessionmaker(bind=db_engine)() + session.begin() + + # Create the project, if a portfolio doesn't exist for the project name