"""AccountTaxInfo model.""" from abacus_common_logic.connectors.database import db from abacus_common_logic.models.base import BaseModel from sqlalchemy import Enum from payee.constants.constants import TAX_EMPLOYMENT_TYPES from .account_tax_info_history import AccountTaxInfoHistory class AccountTaxInfo(BaseModel): """AccountTaxInfo model.""" __tablename__ = 'account_tax_info' account_tax_info_id = db.Column(db.Integer, primary_key=True) account_id = db.Column(db.Integer, nullable=False, unique=True) country_of_tax_residence = db.Column(db.String(3), nullable=True) is_sba_signed = db.Column( db.Boolean, default=False, comment='Relevant for Norway, Spain, United Kingdom, Germany. Short hand to show that vat is applicable', ) is_vat_exempt = db.Column( db.Boolean, default=True, nullable=False, comment='Exempt from vat calc (deprecated)', ) is_tax_treaty_claimed = db.Column( db.Boolean, default=False, nullable=False, comment='Relevant for USA. Wform shows they claimed a tax treaty with resource provisioning', ) tax_employment_type = db.Column( Enum(*TAX_EMPLOYMENT_TYPES, name='tax_employment_type', create_type=False), nullable=True, comment='Relevant for Spain and Germany', ) certificate_of_residence_expiration_date = db.Column( db.Date, nullable=True, comment='Relevant for Spain and Germany' ) is_wht_applicable = db.Column( db.Boolean, default=True, nullable=False, comment='Relevant for Spain' ) is_resident_of_spanish_islands = db.Column( db.Boolean, nullable=True, comment='Relevant for Spain' ) wht_rate_override = db.Column( db.Numeric(5, 2), nullable=True, comment='Relevant for Germany. tax override value that should take precedent over calc', ) account_tax_info_history = db.relationship( AccountTaxInfoHistory, backref='account_tax_info' )