"""contract_term_schedule Model.""" from abacus_common_logic.connectors.database import db from abacus_common_logic.models import BaseModel, NormalizedDateTime class ContractTermSchedule(BaseModel): """contract_term_schedule Model.""" __tablename__ = 'contract_term_schedule' contract_term_schedule_id = db.Column(db.Integer, primary_key=True) contract_term_id = db.Column( db.Integer, db.ForeignKey('contract_term.contract_term_id'), nullable=False ) schedule_id = db.Column(db.Integer, nullable=False) deleted_at = db.Column(NormalizedDateTime(), nullable=True) deleted_by = db.Column(db.String(255), nullable=True) @classmethod def get_by_term_id(cls, contract_term_id: int) -> list: """GET contract_term_schedule's for a specified contract_term_id. Arg: contract_term_id (int): id of the related contract_term Returns: A list of contract term schedules. """ return cls.query.filter( cls.contract_term_id == contract_term_id, cls.deleted_at.is_(None), cls.deleted_by.is_(None), ).all() @classmethod def get_by_term_ids(cls, contract_term_ids: list) -> list: """GET contract_term_schedule's for a batch of contract_term_ids. Arg: contract_term_ids (list): ids of the related contract_terms Returns: A list of contract term schedules. """ return cls.query.filter( cls.contract_term_id.in_(contract_term_ids), cls.deleted_at.is_(None), cls.deleted_by.is_(None), ).all()