All files / src/components/AcquirerEnterprises/CreateEnterprise types.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113                                                                                                                                                                                                                                 
import { TMerchantAgreementPayload } from "@components/Merchants/CreateMerchantPanel/hooks/TMerchantAgreementPayload";
import {
  IMerchantBankAccount,
  TBusinessOwner,
  TCategoryCode,
  TMerchantDocument,
} from "@components/Merchants/MerchantPreview/data.types";
import { TinType as BaseTinType } from "@validation/types";
 
type TinType = BaseTinType | null;
type BusinessAddressType = {
  country: string;
  address: string;
  city: string;
  state: string;
  zip: string;
  notes?: string;
};
 
type TEnterpriseInfo = {
  enterpriseID: string;
  enterprise_name: string;
  enterprise_slug: string;
  avatar_url: File | null;
  category: string;
  description: string;
  website_url: string;
  servicedPhoneNumber: string;
  enterprisePhone: string;
  billingDescriptor: string;
  hasServiceCountries: boolean;
  servicedCountries: string;
  enterprise_classification: string;
  classification_description: string;
};
 
type TBusinessProfile = {
  isLinkBusinessProfile: boolean;
  linkedBusinessProfile: number;
  businessType: string;
  ownershipType: string;
  legalName: string;
  DBA: string;
  tinType: TinType;
  ssn: string;
  taxID: string;
  businessOpenedAt: string;
  contactPhone: string;
  address: BusinessAddressType;
  id?: string | number;
  linkedOwnerId?: string | number;
};
 
type TPrimaryAccountHolder = {
  firstName: string;
  lastName: string;
  email: string;
  contact_phone: string;
  assignToMe?: boolean;
};
 
type TConfiguration = {
  enterprise_fees: {
    credit_card_fee: string;
    amex_credit_card_fee: string;
    debit_card_fee: string;
  };
};
 
export interface ICreateEnterpriseSchema {
  agreement?: TMerchantAgreementPayload;
  enterprise_info: TEnterpriseInfo;
  primary_account_holder: TPrimaryAccountHolder;
  businessProfile: TBusinessProfile;
  businessOwners: TBusinessOwner[];
  configuration: TConfiguration;
  bankAccounts: IMerchantBankAccount[];
  documents: {
    list: TMerchantDocument[];
  };
  categories: TCategoryCode[];
  permissions: { [key: string]: string };
}
 
export type EnterpriseConfiguration = {
  modify_merchant: boolean;
  merchant_underwriting: boolean;
  merchant_underwriting_statuses: boolean;
  agreement_signing: boolean;
  control_mode: boolean;
  b_profile_linking: boolean;
  bank_account_linking: boolean;
  manage_bank_account: boolean;
  money_transfers: boolean;
  risk_monitoring: boolean;
  merchant_triggers: boolean;
  risk_activity: boolean;
};
 
export type TEnterpriseConfigurationName =
  | "modify_merchant"
  | "merchant_underwriting"
  | "merchant_underwriting_statuses"
  | "agreement_signing"
  | "control_mode"
  | "b_profile_linking"
  | "bank_account_linking"
  | "manage_bank_account"
  | "money_transfers"
  | "risk_monitoring"
  | "merchant_triggers"
  | "risk_activity";