export const ProfileSchema = {
  type: 'object',
  properties: {
    permissions: {
      type: 'array',
      items: [{ type: 'string' }, { type: 'string' }, { type: 'string' }]
    },
    preferences: {
      type: 'object',
      properties: {
        visibleTutorials: {
          type: 'array',
          items: [
            {
              type: 'object',
              properties: {
                tutorialType: { type: 'string' },
                appTypes: { type: 'array', items: [{ type: 'string' }] }
              }
            },
            {
              type: 'object',
              properties: {
                tutorialType: { type: 'string' },
                appTypes: { type: 'array', items: [{ type: 'string' }] }
              }
            },
            {
              type: 'object',
              properties: {
                tutorialType: { type: 'string' },
                appTypes: { type: 'array', items: [{ type: 'string' }] }
              }
            },
            {
              type: 'object',
              properties: {
                tutorialType: { type: 'string' },
                appTypes: { type: 'array', items: [{ type: 'string' }] }
              }
            },
            {
              type: 'object',
              properties: {
                tutorialType: { type: 'string' },
                appTypes: { type: 'array', items: [{ type: 'string' }] }
              }
            }
          ]
        }
      }
    },
    serverRegion: { type: 'string' },
    sub: { type: 'string' },
    name: { type: 'string' },
    given_name: { type: 'string' },
    family_name: { type: 'string' },
    middle_name: { type: 'null' },
    nickname: { type: 'null' },
    preferred_username: { type: 'string' },
    profile: { type: 'null' },
    picture: { type: 'null' },
    website: { type: 'null' },
    email: { type: 'string' },
    email_verified: { type: 'boolean' },
    gender: { type: 'null' },
    birthdate: { type: 'null' },
    zoneinfo: { type: 'null' },
    locale: { type: 'string' },
    country: { type: 'string' },
    phone_number: { type: 'string' },
    phone_number_verified: { type: 'null' },
    address: { type: 'null' },
    updated_at: { type: 'null' },
    re_sign_token: { type: 'boolean' },
    userAccessControls: { type: 'array', items: {} },
    isLemonadeLoyaltyClubEnabled: { type: 'boolean' },
    isAffiliate: { type: 'boolean' },
    affiliateName: { type: 'null' },
    personalCapabilities: {
      type: 'object',
      properties: {
        supportedSearchTypes: {
          type: 'object',
          properties: {
            flight: { type: 'string' },
            hotel: { type: 'string' },
            car: { type: 'string' },
            blackCar: { type: 'string' },
            train: { type: 'string' }
          }
        },
        chatSupported: { type: 'boolean' },
        userLoyaltyConfig: { type: 'null' }
      }
    },
    businessCapabilities: {
      type: 'object',
      properties: {
        supportedSearchTypes: {
          type: 'object',
          properties: {
            flight: { type: 'string' },
            hotel: { type: 'string' },
            car: { type: 'string' },
            blackCar: { type: 'string' },
            train: { type: 'string' }
          }
        },
        chatSupported: { type: 'boolean' },
        userLoyaltyConfig: { type: 'null' }
      }
    },
    navanTravelShown: { type: 'boolean' },
    isLemonadeLoyaltyClubMember: { type: 'boolean' },
    navanExpenseShown: { type: 'boolean' },
    companyNavanExpenseTabEnabled: { type: 'boolean' },
    platformFundedRewards: { type: 'string' },
    splits: {
      type: 'object',
      properties: {
        RAIL: { type: 'boolean' },
        OLDHOTELS: { type: 'boolean' },
        ADMIN2: { type: 'boolean' },
        TWILIO_CHAT_DOWN: { type: 'boolean' },
        TWILIO_VOICE_DOWN: { type: 'boolean' }
      }
    },
    travelXen: { type: 'boolean' },
    companyName: { type: 'string' },
    marketingCommEmailOptIn: { type: 'boolean' },
    carbonOffset: {
      type: 'object',
      properties: { url: { type: 'string' }, enabled: { type: 'boolean' } }
    },
    growthSelfSellCompany: { type: 'boolean' },
    webCalendarUrl: { type: 'string' },
    signupClientUserAgent: { type: 'string' },
    companySelfOnboardingGuidanceCurrentStep: { type: 'string' },
    isManager: { type: 'boolean' },
    showIntroductoryModalEmailParsing: { type: 'boolean' },
    vip: { type: 'boolean' },
    onboardingCompleted: { type: 'boolean' },
    companyReshoppingAdminEmail: { type: 'string' },
    growthSelfSellAdminSetupCompleted: { type: 'boolean' },
    blackCarEnabled: { type: 'boolean' },
    impersonatorUuid: { type: 'null' },
    costCenter: { type: 'string' },
    contract: { type: 'boolean' },
    companyStatus: { type: 'string' },
    autoCheckin: { type: 'boolean' },
    subsidiary: { type: 'null' },
    companyLiquidEnabled: { type: 'boolean' },
    policyLevelName: { type: 'string' },
    hasManagerDashboardAccess: { type: 'boolean' },
    higherCabinClassDisallowed: { type: 'boolean' },
    visaInformationUrl: { type: 'string' },
    companyHideTripFee: { type: 'boolean' },
    travelFrequency: { type: 'string' },
    isApprover: { type: 'boolean' },
    currency: { type: 'string' },
    managerUuid: { type: 'string' },
    reward: { type: 'string' },
    alternateEmail: { type: 'string' },
    companyTravelEnabled: { type: 'boolean' },
    companyLogo: { type: 'string' },
    showOfficeGuide: { type: 'boolean' },
    companyCategory: { type: 'string' },
    companyUuid: { type: 'string' },
    chargeTripFee: { type: 'boolean' },
    enabledRedemptionTypes: {
      type: 'array',
      items: [{ type: 'string' }, { type: 'string' }, { type: 'string' }]
    },
    policyLevel: { type: 'string' },
    supportEmail: { type: 'string' },
    personalEnabled: { type: 'boolean' },
    canBookForOthers: { type: 'boolean' },
    rewardsSettings: {
      type: 'object',
      properties: {
        eligibility: {
          type: 'object',
          properties: {
            PERSONAL_REWARD: { type: 'boolean' },
            COMPANY_SAVING_REWARD: { type: 'boolean' },
            TARGETED_REWARD: { type: 'boolean' },
            PLATFORM_FUNDED_REWARD: { type: 'boolean' }
          }
        },
        supportedCurrencies: { type: 'array', items: [{ type: 'string' }] }
      }
    },
    personalTripRewardRatio: { type: 'number' },
    dateSignupCompleted: { type: 'string' },
    superAdmin: { type: 'boolean' },
    billToClientRequired: { type: 'boolean' },
    rewardsRedemptionEnabled: { type: 'boolean' },
    disallowCompanyCardExpensing: { type: 'boolean' },
    agencyUuid: { type: 'string' },
    supportPhones: {
      type: 'array',
      items: [
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        }
      ]
    },
    managerName: { type: 'string' },
    approverName: { type: 'null' },
    companyDkNumber: { type: 'integer' },
    hasAdminDashboardAccess: { type: 'boolean' },
    workPhoneNumber: { type: 'null' },
    billbackEnabled: { type: 'boolean' },
    referrerDomain: { type: 'string' },
    isTestUser: { type: 'boolean' },
    travelOps: { type: 'boolean' },
    companyHighProfileServiceEnabled: { type: 'boolean' },
    companyCcaEnabled: { type: 'boolean' },
    approverUuid: { type: 'null' },
    loyaltyRewardsSettings: {
      type: 'object',
      properties: {
        userEnabled: { type: 'boolean' },
        burnSettings: {
          type: 'object',
          properties: {
            userEnabled: { type: 'boolean' },
            supportedTripTypes: { type: 'array', items: [{ type: 'string' }] },
            supportedTripItems: { type: 'array', items: [{ type: 'string' }] },
            minimumRedemptionLimit: { type: 'integer' },
            cnrRateEligible: { type: 'boolean' },
            paymentSchedules: { type: 'array', items: [{ type: 'string' }] }
          }
        },
        earnSettings: {
          type: 'object',
          properties: {
            userEnabled: { type: 'boolean' },
            supportedTripTypes: { type: 'array', items: [{ type: 'string' }] },
            supportedTripItems: { type: 'array', items: [{ type: 'string' }] },
            earnPercentage: { type: 'number' },
            priceRangeCriteria: { type: 'string' }
          }
        }
      }
    },
    noRewardsOnFlights: { type: 'boolean' },
    companyDomain: { type: 'string' },
    createdByUuid: { type: 'null' },
    region: { type: 'string' },
    assistantPhoneNumber: { type: 'null' },
    showLemonadeLiabilityDisclaimer: { type: 'boolean' },
    siteAdmin: { type: 'boolean' },
    showAdminMenu: { type: 'boolean' },
    currencyConversionRates: {
      type: 'object',
      properties: {
        FJD: { type: 'number' },
        MXN: { type: 'number' },
        STD: { type: 'number' },
        SCR: { type: 'number' },
        CDF: { type: 'number' },
        BBD: { type: 'number' },
        GTQ: { type: 'number' },
        CLP: { type: 'number' },
        HNL: { type: 'number' },
        UGX: { type: 'number' },
        ZAR: { type: 'number' },
        TND: { type: 'number' },
        CUC: { type: 'integer' },
        BSD: { type: 'number' },
        SLL: { type: 'number' },
        SDG: { type: 'number' },
        IQD: { type: 'integer' },
        CUP: { type: 'number' },
        GMD: { type: 'number' },
        TWD: { type: 'number' },
        RSD: { type: 'number' },
        DOP: { type: 'number' },
        KMF: { type: 'number' },
        MYR: { type: 'number' },
        FKP: { type: 'number' },
        XOF: { type: 'number' },
        GEL: { type: 'number' },
        UYU: { type: 'number' },
        MAD: { type: 'number' },
        CVE: { type: 'number' },
        TOP: { type: 'number' },
        AZN: { type: 'number' },
        OMR: { type: 'number' },
        PGK: { type: 'number' },
        KES: { type: 'number' },
        SEK: { type: 'number' },
        BTN: { type: 'number' },
        UAH: { type: 'number' },
        GNF: { type: 'number' },
        ERN: { type: 'integer' },
        MZN: { type: 'number' },
        SVC: { type: 'number' },
        ARS: { type: 'number' },
        QAR: { type: 'number' },
        IRR: { type: 'number' },
        MRO: { type: 'number' },
        CNY: { type: 'number' },
        THB: { type: 'number' },
        UZS: { type: 'number' },
        XPF: { type: 'number' },
        BDT: { type: 'number' },
        LYD: { type: 'number' },
        BMD: { type: 'integer' },
        KWD: { type: 'number' },
        PHP: { type: 'number' },
        RUB: { type: 'number' },
        PYG: { type: 'number' },
        ISK: { type: 'number' },
        JMD: { type: 'number' },
        COP: { type: 'number' },
        MKD: { type: 'number' },
        USD: { type: 'integer' },
        DZD: { type: 'number' },
        PAB: { type: 'number' },
        SGD: { type: 'number' },
        ETB: { type: 'number' },
        KGS: { type: 'number' },
        SOS: { type: 'number' },
        VUV: { type: 'number' },
        LAK: { type: 'number' },
        BND: { type: 'number' },
        XAF: { type: 'number' },
        LRD: { type: 'number' },
        XAG: { type: 'number' },
        CHF: { type: 'number' },
        HRK: { type: 'number' },
        ALL: { type: 'number' },
        DJF: { type: 'number' },
        VES: { type: 'number' },
        ZMW: { type: 'number' },
        TZS: { type: 'number' },
        VND: { type: 'integer' },
        XAU: { type: 'number' },
        AUD: { type: 'number' },
        ILS: { type: 'number' },
        GHS: { type: 'number' },
        GYD: { type: 'number' },
        KPW: { type: 'number' },
        BOB: { type: 'number' },
        KHR: { type: 'number' },
        MDL: { type: 'number' },
        IDR: { type: 'number' },
        KYD: { type: 'number' },
        AMD: { type: 'number' },
        BWP: { type: 'number' },
        SHP: { type: 'number' },
        TRY: { type: 'number' },
        LBP: { type: 'number' },
        TJS: { type: 'number' },
        JOD: { type: 'number' },
        AED: { type: 'number' },
        HKD: { type: 'number' },
        RWF: { type: 'integer' },
        EUR: { type: 'number' },
        LSL: { type: 'number' },
        DKK: { type: 'number' },
        CAD: { type: 'number' },
        BGN: { type: 'number' },
        MMK: { type: 'number' },
        MUR: { type: 'number' },
        NOK: { type: 'number' },
        SYP: { type: 'number' },
        ZWL: { type: 'number' },
        GIP: { type: 'number' },
        RON: { type: 'number' },
        LKR: { type: 'number' },
        NGN: { type: 'number' },
        CRC: { type: 'number' },
        CZK: { type: 'number' },
        PKR: { type: 'number' },
        XCD: { type: 'number' },
        ANG: { type: 'number' },
        HTG: { type: 'number' },
        BHD: { type: 'number' },
        KZT: { type: 'number' },
        SRD: { type: 'number' },
        SZL: { type: 'number' },
        LTL: { type: 'number' },
        SAR: { type: 'number' },
        TTD: { type: 'number' },
        YER: { type: 'number' },
        MVR: { type: 'number' },
        AFN: { type: 'number' },
        INR: { type: 'number' },
        AWG: { type: 'number' },
        KRW: { type: 'number' },
        NPR: { type: 'number' },
        JPY: { type: 'number' },
        MNT: { type: 'number' },
        AOA: { type: 'number' },
        PLN: { type: 'number' },
        GBP: { type: 'number' },
        SBD: { type: 'number' },
        BYN: { type: 'number' },
        HUF: { type: 'number' },
        BYR: { type: 'integer' },
        BIF: { type: 'integer' },
        MWK: { type: 'number' },
        MGA: { type: 'number' },
        XDR: { type: 'number' },
        BZD: { type: 'number' },
        BAM: { type: 'number' },
        EGP: { type: 'number' },
        MOP: { type: 'number' },
        NAD: { type: 'number' },
        NIO: { type: 'number' },
        PEN: { type: 'number' },
        NZD: { type: 'number' },
        WST: { type: 'number' },
        TMT: { type: 'number' },
        CLF: { type: 'number' },
        BRL: { type: 'number' }
      }
    },
    companyOffice: { type: 'string' },
    admin: { type: 'boolean' },
    title: { type: 'string' },
    roadWarrior: { type: 'boolean' },
    personalSupportPhones: {
      type: 'array',
      items: [
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        },
        {
          type: 'object',
          properties: {
            country: { type: 'string' },
            icon: { type: 'string' },
            number: { type: 'string' },
            text: { type: 'string' }
          }
        }
      ]
    },
    influencer: { type: 'boolean' },
    isPersonalOnlyProfile: { type: 'boolean' },
    expenseSystemType: { type: 'string' },
    department: { type: 'null' },
    pilot: { type: 'boolean' },
    acceptTaxableRewards: { type: 'boolean' },
    growthSelfSellState: { type: 'null' },
    companyDelegate: { type: 'boolean' },
    showOnboardingTutorial: { type: 'boolean' },
    agencyName: { type: 'string' },
    paidRoadWarrior: { type: 'boolean' },
    referrer: { type: 'string' },
    rewardsEnabled: { type: 'boolean' },
    tripProposalRequired: { type: 'boolean' },
    impersonatorEmail: { type: 'string' },
    liquidAdmin: { type: 'boolean' }
  }
};
