"""Account Tax Info History Model.""" from abacus_common_logic.models.base import BaseModel, db from sqlalchemy import Enum from abacus_account.constants.constants import TAX_EMPLOYMENT_TYPES class AccountTaxInfoHistory(BaseModel): """Account Tax Info History model. NOTE: Inserts to the table are done by database trigger. """ __tablename__ = 'account_tax_info_history' account_tax_info_history_id = db.Column(db.Integer, primary_key=True) account_tax_info_id = db.Column( db.Integer, db.ForeignKey('account_tax_info.account_tax_info_id'), nullable=False ) account_id = db.Column( db.Integer, db.ForeignKey('account.account_id'), nullable=False ) country_of_tax_residence = db.Column(db.String(3), nullable=True) is_sba_signed = db.Column(db.Boolean, default=False) is_vat_exempt = db.Column(db.Boolean, default=True, nullable=False) is_tax_treaty_claimed = db.Column(db.Boolean, default=False, nullable=False) tax_employment_type = db.Column( Enum(*TAX_EMPLOYMENT_TYPES, name='tax_employment_type', create_type=False), nullable=True, ) certificate_of_residence_expiration_date = db.Column(db.Date, nullable=True) is_wht_applicable = db.Column(db.Boolean, default=True, nullable=False) is_resident_of_spanish_islands = db.Column(db.Boolean, nullable=True) wht_rate_override = db.Column(db.Numeric(5, 2), nullable=True)