Add CLIN table

This commit is contained in:
leigh-mil 2019-05-31 10:31:24 -04:00
parent a9535edf3a
commit c60e1a29f6
3 changed files with 82 additions and 11 deletions

View File

@ -0,0 +1,40 @@
"""add clin table
Revision ID: 24700d113ea9
Revises: d73cba9a4259
Create Date: 2019-05-31 10:28:20.983200
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = '24700d113ea9'
down_revision = 'd73cba9a4259'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('clins',
sa.Column('time_created', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.Column('time_updated', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.Column('id', postgresql.UUID(as_uuid=True), server_default=sa.text('uuid_generate_v4()'), nullable=False),
sa.Column('task_order_id', postgresql.UUID(as_uuid=True), nullable=False),
sa.Column('number', sa.String(), nullable=False),
sa.Column('loas', postgresql.ARRAY(sa.String()), server_default='{}', nullable=False),
sa.Column('start_date', sa.Date(), nullable=False),
sa.Column('end_date', sa.Date(), nullable=False),
sa.Column('obligated_amount', sa.Numeric(scale=2), nullable=False),
sa.ForeignKeyConstraint(['task_order_id'], ['task_orders.id'], ),
sa.PrimaryKeyConstraint('id')
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('clins')
# ### end Alembic commands ###

View File

@ -2,20 +2,22 @@ from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
from .permissions import Permissions
from .permission_set import PermissionSet
from .user import User
from .portfolio_role import PortfolioRole, Status as PortfolioRoleStatus
from .application_role import ApplicationRole, Status as ApplicationRoleStatus
from .environment_role import EnvironmentRole, CSPRole
from .portfolio import Portfolio
from .application import Application
from .environment import Environment
from .application_invitation import ApplicationInvitation
from .application_role import ApplicationRole, Status as ApplicationRoleStatus
from .attachment import Attachment
from .audit_event import AuditEvent
from .portfolio_invitation import PortfolioInvitation
from .application_invitation import ApplicationInvitation
from .task_order import TaskOrder
from .clin import CLIN
from .environment import Environment
from .environment_role import EnvironmentRole, CSPRole
from .notification_recipient import NotificationRecipient
from .permissions import Permissions
from .permission_set import PermissionSet
from .portfolio import Portfolio
from .portfolio_invitation import PortfolioInvitation
from .portfolio_role import PortfolioRole, Status as PortfolioRoleStatus
from .task_order import TaskOrder
from .user import User
from .mixins.invites import Status as InvitationStatus

29
atst/models/clin.py Normal file
View File

@ -0,0 +1,29 @@
from enum import Enum
from sqlalchemy import Column, Date, Enum as SQLAEnum, ForeignKey, Numeric, String
from sqlalchemy.dialects.postgresql import ARRAY
from sqlalchemy.orm import relationship
from atst.models import Base, mixins, types
class JEDICLINType(Enum):
JEDI_CLIN_1 = "jedi clin 0001"
JEDI_CLIN_2 = "jedi clin 0002"
JEDI_CLIN_3 = "jedi clin 0003"
JEDI_CLIN_4 = "jedi clin 0004"
class CLIN(Base, mixins.TimestampsMixin):
__tablename__ = "clins"
id = types.Id()
task_order_id = Column(ForeignKey("task_orders.id"), nullable=False)
task_order = relationship("TaskOrder")
number = Column(String, nullable=False)
loas = Column(ARRAY(String), server_default="{}", nullable=False)
start_date = Column(Date, nullable=False)
end_date = Column(Date, nullable=False)
obligated_amount = Column(Numeric(scale=2), nullable=False)
jedi_clin_type = Column(SQLAEnum(JEDICLINType, native_enum=False), nullable=False)