"""General constants module.""" from abacus_common_logic.utils.enum import enum ELIGIBILITY_STATUSES = enum( 'EligibilityStatuses', ON_HOLD='on_hold', ACTIVE='active' ) PAYMENT_SCHEDULE = enum( 'PaymentSchedule', SCHEDULE_30_DAYS_MONTH='30_days_after_month_end', SCHEDULE_45_DAYS_MONTH='45_days_after_month_end', SCHEDULE_60_DAYS_MONTH='60_days_after_month_end', SCHEDULE_90_DAYS_MONTH='90_days_after_month_end', SCHEDULE_30_DAYS_QUARTER='30_days_after_quarter_end', SCHEDULE_45_DAYS_QUARTER='45_days_after_quarter_end', SCHEDULE_60_DAYS_QUARTER='60_days_after_quarter_end', SCHEDULE_90_DAYS_QUARTER='90_days_after_quarter_end', SCHEDULE_30_DAYS_HALFYEAR='30_days_after_half_year_end', SCHEDULE_45_DAYS_HALFYEAR='45_days_after_half_year_end', SCHEDULE_60_DAYS_HALFYEAR='60_days_after_half_year_end', SCHEDULE_90_DAYS_HALFYEAR='90_days_after_half_year_end', TEMPORARY='TEMPORARY' ) VAT_APPLICABLE_COUNTRIES = enum( 'VatApplicableCountries', GBR='GBR', ) VENDOR_RESOURCE_NAME = 'Vendor' EMPLOYEE_ALL_VENDORS_MARK = '*' LABEL_RESOURCE_NAME = 'label' # profile level headers. ORCHARD_PROFILE_ID = 'Orchard-Profile-Id' ORCHARD_PROFILE_TYPE = 'Orchard-Profile-Type' ORCHARD_ROLES = 'Orchard-Roles' ORCHARD_PAYEE_ROLE = 'payee_management' # ows-permissions OWS_PERMISSIONS_SERVICE_NAME = 'ows-permissions' OWS_PERMISSIONS_ACCOUNT_ENDPOINT_URL = '/admin/profile-type/{' + \ 'profile_type}/' + \ 'profile/{profile_id}/resource/' + \ '{resource_type}' DEFAULT_PAGE_LIMIT = 100 DEFAULT_PAGE_OFFSET = 0 KAFKA_TOPICS = { 'TAX_INFO_UPDATED': 'graphql.subscription.abacusAccountTaxInfoUpdated', 'CHANGE_PAYEE_PROGRAM': 'event.payee.programMove', } ACCOUNT_KAFKA_EVENT_NAMES = enum( 'AccountKafkaEventNames', TAX_INFO_UPDATED='TAX_INFO_UPDATED', CHANGE_PAYEE_PROGRAM='CHANGE_PAYEE_PROGRAM', ) SKIP_PAYMENT_TERM_TEMPLATE_CREATION_SOURCES = ( 'lambda-abacus-sync-account', ) # TODO remove SIGNING_ENTITY_TO_PAYMENT_ENTITY_MAPPING = { 2: 1, 6: 2, 7: 4, 8: 3 } REFERENCE_PAYMENT_TYPES = enum( 'ReferencePaymentTypes', ADVANCE='advance', BULK_PAYOUTS='bulk_payouts', ) TAX_EMPLOYMENT_TYPES = enum( 'TaxEmploymentTypes', BUSINESS='Business', EMPLOYED_INDIVIDUAL='Employed Individual', SELF_EMPLOYED_INDIVIDUAL_LESS_2_YEARS='Self-Employed Individual (< 2 years)', SELF_EMPLOYED_INDIVIDUAL_MORE_EQUAL_2_YEARS='Self-Employed Individual (>= 2 years)', INDIVIDUAL='Individual', SMALL_BUSINESS_EU_VAT_NOT_REQUIRED='Small Business that is not required to register for EU VAT' # noqa ) ALLOW_NONE_COTR_COUNTRIES_OF_TAX_REPORTING = ['ESP'] # Reference payment type ids for the following methods: BULK_PAYOUTS_PAYONEER_PAYMENT_TYPES: dict[str, int] = { 'payoneer': 7, 'payoneer_whitelabel': 8, 'preexisting_payoneer_account': 11, 'payoneer_wire': 12, } # TODO the mapping is temporary until we figure out a more permanent way of linking PAYMENT_NAME_TO_REFERENCE_PAYMENT_TYPE = { 'awal': BULK_PAYOUTS_PAYONEER_PAYMENT_TYPES['payoneer'], 'orchard': BULK_PAYOUTS_PAYONEER_PAYMENT_TYPES['payoneer_whitelabel'], 'knr': 9, # sap } PAYMENT_NAME_TO_REFERENCE_PAYMENT_TYPE_WHITELABEL = { 'awal': BULK_PAYOUTS_PAYONEER_PAYMENT_TYPES['payoneer_whitelabel'], 'orchard': BULK_PAYOUTS_PAYONEER_PAYMENT_TYPES['payoneer_whitelabel'], 'knr': 9, # sap } # Move types for payoneer program transitions MOVE_TYPE_ADOPT_AND_RELEASE = 'ADOPT_AND_RELEASE' MOVE_TYPE_RELEASE_AND_WARN = 'RELEASE_AND_WARN' _PAYONEER = BULK_PAYOUTS_PAYONEER_PAYMENT_TYPES['payoneer'] _WL = BULK_PAYOUTS_PAYONEER_PAYMENT_TYPES['payoneer_whitelabel'] _PREEXISTING = BULK_PAYOUTS_PAYONEER_PAYMENT_TYPES['preexisting_payoneer_account'] _WIRE = BULK_PAYOUTS_PAYONEER_PAYMENT_TYPES['payoneer_wire'] # Mapping of (from_payment_type_id, to_payment_type_id) -> move_type # Source of truth: # https://docs.google.com/spreadsheets/d/1Owcq51d-fvLIL62RP9oibnu-83rEmw4LSyiEtRMmc0c/edit?gid=0#gid=0 PAYONEER_PROGRAM_MOVE_TYPE_MAP = { # ADOPT_AND_RELEASE: same-family or WL<->Wire (_PAYONEER, _PAYONEER): MOVE_TYPE_ADOPT_AND_RELEASE, (_WL, _WL): MOVE_TYPE_ADOPT_AND_RELEASE, (_WL, _WIRE): MOVE_TYPE_ADOPT_AND_RELEASE, (_WIRE, _WL): MOVE_TYPE_ADOPT_AND_RELEASE, (_WIRE, _WIRE): MOVE_TYPE_ADOPT_AND_RELEASE, # RELEASE_AND_WARN: Any -> Preexisting (_PAYONEER, _PREEXISTING): MOVE_TYPE_RELEASE_AND_WARN, (_WL, _PREEXISTING): MOVE_TYPE_RELEASE_AND_WARN, (_PREEXISTING, _PREEXISTING): MOVE_TYPE_RELEASE_AND_WARN, (_WIRE, _PREEXISTING): MOVE_TYPE_RELEASE_AND_WARN, # RELEASE_AND_WARN: cross-family transitions (_WIRE, _PAYONEER): MOVE_TYPE_RELEASE_AND_WARN, (_WL, _PAYONEER): MOVE_TYPE_RELEASE_AND_WARN, (_PAYONEER, _WL): MOVE_TYPE_RELEASE_AND_WARN, (_PAYONEER, _WIRE): MOVE_TYPE_RELEASE_AND_WARN, (_PREEXISTING, _PAYONEER): MOVE_TYPE_RELEASE_AND_WARN, (_PREEXISTING, _WL): MOVE_TYPE_RELEASE_AND_WARN, (_PREEXISTING, _WIRE): MOVE_TYPE_RELEASE_AND_WARN, }