"""ProjectTransferTermCondition model.""" from abacus_common_logic.connectors.database import db from abacus_common_logic.models.base import CRUDMixin class ProjectTransferTermCondition(db.Model, CRUDMixin): """project_transfer_term_condition. Conditions cascade-delete with their parent term via MySQL ON DELETE CASCADE. """ __tablename__ = 'project_transfer_term_condition' project_transfer_term_condition_id = db.Column(db.Integer, primary_key=True) project_transfer_term_id = db.Column( db.Integer, db.ForeignKey('project_transfer_term.project_transfer_term_id'), nullable=False, index=True, ) name = db.Column(db.String(180), nullable=True) priority = db.Column(db.SmallInteger, nullable=False) term_rate = db.Column(db.Numeric(5, 2), nullable=False) commission = db.Column(db.Numeric(5, 2), nullable=False, default=0) conditions = db.Column(db.JSON, nullable=False, default=dict) destination_contract_term_condition_id = db.Column(db.Integer, nullable=True) created_by = db.Column(db.String(255), nullable=False) created_at = db.Column(db.DateTime, nullable=False)