From f365d8dea98c5d42de070801579f57aa40a55f5e Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Fri, 14 Jul 2023 11:13:36 -0700 Subject: [PATCH] notify-api-141 add agreement to models.py --- app/models.py | 30 ++++++++++++++++ migrations/versions/0398_agreements_table.py | 37 ++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 migrations/versions/0398_agreements_table.py diff --git a/app/models.py b/app/models.py index df99bb534..df9752230 100644 --- a/app/models.py +++ b/app/models.py @@ -1977,3 +1977,33 @@ class WebauthnCredential(db.Model): 'created_at': self.created_at.strftime(DATETIME_FORMAT), 'updated_at': get_dt_string_or_none(self.updated_at), } + + +class Agreement(db.Model): + __tablename__ = "agreements" + id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, unique=False) + type = db.Column(db.String(3), nullable=False, unique=True, index=True) + partner_name = db.Column(db.String(255), nullable=False, unique=True, index=True) + status = db.Column(db.String(255), nullable=False, unique=True, index=True) + start_time = db.Column(db.DateTime, nullable=True) + end_time = db.Column(db.DateTime, nullable=True) + url = db.Column(db.String(255), nullable=False, unique=True, index=True) + budget_amount = db.Column(db.Float, nullable=True) + organization_id = db.Column( + UUID(as_uuid=True), + db.ForeignKey('organization.id'), + nullable=True, + ) + + def serialize(self): + return { + "id": str(self.id), + "type": self.type, + "partner_name": self.partner_name, + "status": self.status, + "start_time": self.start_time.strftime(DATETIME_FORMAT), + "end_time": self.end_time.strftime(DATETIME_FORMAT), + "budget_amount": self.budget_amount, + "organization_id": self.organization_id + + } diff --git a/migrations/versions/0398_agreements_table.py b/migrations/versions/0398_agreements_table.py new file mode 100644 index 000000000..3426db7af --- /dev/null +++ b/migrations/versions/0398_agreements_table.py @@ -0,0 +1,37 @@ +"""empty message + +Revision ID: 0010_events_table +Revises: 0009_created_by_for_jobs +Create Date: 2016-04-26 13:08:42.892813 + +""" + +# revision identifiers, used by Alembic. +revision = '0398_agreements_table' +down_revision = '0397_rename_organisation_2' + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +def upgrade(): + ### commands auto generated by Alembic - please adjust! ### + op.create_table('agreements', + sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False), + sa.Column('type', sa.String(length=3), nullable=False), + sa.Column('partner_name', sa.String(length=255), nullable=False), + sa.Column('status', sa.String(length=255), nullable=False), + sa.Column('start_time', sa.DateTime(), nullable=False), + sa.Column('end_time', sa.DateTime(), nullable=False), + sa.Column('url', sa.String(length=255), nullable=False), + sa.Column('budget_amount', sa.Float(), nullable=False), + sa.Column('organization_id', postgresql.UUID(as_uuid=True), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + ### end Alembic commands ### + + +def downgrade(): + ### commands auto generated by Alembic - please adjust! ### + op.drop_table('agreements') + ### end Alembic commands ###