Files
atst/atst/models/clin.py
2019-06-10 12:29:54 -04:00

37 lines
1.1 KiB
Python

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_1"
JEDI_CLIN_2 = "JEDI_CLIN_2"
JEDI_CLIN_3 = "JEDI_CLIN_3"
JEDI_CLIN_4 = "JEDI_CLIN_4"
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)
def to_dictionary(self):
return {
c.name: getattr(self, c.name)
for c in self.__table__.columns
if c.name not in ["id"]
}