UNPKG

@it_kyryl/arbitrage_admin_schema

Version:

Schema for arbitrage admin panel

178 lines (177 loc) 6.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.binomV2ApiCampaignDetailsGETDto = void 0; const zod_1 = require("zod"); const apiCampaignMoneyDto = zod_1.z.object({ amount: (0, zod_1.number)(), currency: (0, zod_1.string)() }); const apiCampaignPayoutDto = zod_1.z.object({ isAuto: (0, zod_1.boolean)(), isUpsell: (0, zod_1.boolean)(), money: apiCampaignMoneyDto }); const apiCampaignConversionCapDto = zod_1.z.object({ isActive: (0, zod_1.boolean)(), currentCap: (0, zod_1.number)(), maxCap: (0, zod_1.number)(), fill: (0, zod_1.number)(), priority: (0, zod_1.string)() }); const apiOfferDto = zod_1.z.object({ offerId: (0, zod_1.number)(), campaignId: (0, zod_1.number)(), enabled: (0, zod_1.boolean)(), weight: (0, zod_1.number)(), directUrl: (0, zod_1.string)(), name: (0, zod_1.string)(), affiliateNetworkName: (0, zod_1.string)().optional(), countryCode: (0, zod_1.string)().optional(), conversionCap: apiCampaignConversionCapDto.nullable().optional(), payout: apiCampaignPayoutDto.optional() }); const apiLanding = zod_1.z.object({ id: (0, zod_1.number)(), name: (0, zod_1.string)(), languageCode: (0, zod_1.string)(), enabled: (0, zod_1.boolean)(), weight: (0, zod_1.number)() }); const apiPath = zod_1.z.object({ id: (0, zod_1.number)(), name: (0, zod_1.string)(), enabled: (0, zod_1.boolean)(), weight: (0, zod_1.number)(), landings: (0, zod_1.array)(apiLanding), offers: (0, zod_1.array)(apiOfferDto) }); const apiRule = zod_1.z.object({ id: (0, zod_1.number)(), name: (0, zod_1.string)(), enabled: (0, zod_1.boolean)(), markAsBot: (0, zod_1.boolean)(), paths: (0, zod_1.array)(apiPath), criteria: (0, zod_1.array)(zod_1.z.object({ type: (0, zod_1.string)(), enabled: (0, zod_1.boolean)(), operator: (0, zod_1.string)(), values: (0, zod_1.array)((0, zod_1.string)()), exactMatch: (0, zod_1.boolean)().optional(), allowEmpty: (0, zod_1.boolean)().optional() })) }); const apiCampaignCustomRotation = zod_1.z.object({ uuid: (0, zod_1.string)().optional(), defaultPaths: (0, zod_1.array)(apiPath), rules: (0, zod_1.array)(apiRule) }); const apiCampaignHideReferrerDto = zod_1.z.object({ type: (0, zod_1.string)(), domainUuid: (0, zod_1.string)().nullable() }); const apiCampaignSettings = zod_1.z.object({ s2sPostback: (0, zod_1.string)(), ea: (0, zod_1.number)().nullable(), lpPixel: (0, zod_1.string)(), postbackPercent: (0, zod_1.number)(), payoutPercent: (0, zod_1.number)(), trafficLossPercent: (0, zod_1.number)(), appendToCampaignUrl: (0, zod_1.string)(), appendToOfferUrl: (0, zod_1.string)(), appendToLandingUrl: (0, zod_1.string)() }); const apiCampaignTagDto = zod_1.z.object({ id: (0, zod_1.string)(), color: (0, zod_1.string)(), name: (0, zod_1.string)(), campaignCount: (0, zod_1.number)(), landingCount: (0, zod_1.number)(), offerCount: (0, zod_1.number)(), rotationCount: (0, zod_1.number)(), affiliateNetworkCount: (0, zod_1.number)(), trafficSourceCount: (0, zod_1.number)() }); const apiToken = zod_1.z.object({ id: (0, zod_1.string)(), name: (0, zod_1.string)() }); exports.binomV2ApiCampaignDetailsGETDto = zod_1.z.object({ id: (0, zod_1.number)(), createdAt: (0, zod_1.string)(), key: (0, zod_1.string)(), deletedAt: (0, zod_1.string)().nullable(), name: (0, zod_1.string)(), link: (0, zod_1.string)(), groupUuid: (0, zod_1.string)().nullable(), trafficSourceId: (0, zod_1.number)(), ownerId: (0, zod_1.number)(), cost: zod_1.z.object({ model: (0, zod_1.string)(), money: apiCampaignMoneyDto, isAuto: (0, zod_1.boolean)() }), hideReferrer: apiCampaignHideReferrerDto, distributionType: (0, zod_1.string)(), rotationId: (0, zod_1.number)().nullable(), customRotation: apiCampaignCustomRotation, campaignSettings: apiCampaignSettings, tokens: (0, zod_1.array)(apiToken), isDomainBanned: (0, zod_1.boolean)(), domainUuid: (0, zod_1.string)(), tags: (0, zod_1.array)(apiCampaignTagDto) }); const apiCampaignSettingsSchema = zod_1.z.object({ s2sPostback: zod_1.z.string().nullable(), }); const binomV2UpdateCampaignDetailsLandingDto = zod_1.z.object({ id: zod_1.z.number(), weight: zod_1.z.number(), enabled: zod_1.z.boolean(), name: zod_1.z.string(), }); const binomV2UpdateCampaignDetailsOfferDto = zod_1.z.object({ weight: zod_1.z.number(), enabled: zod_1.z.boolean(), offerId: zod_1.z.number(), directUrl: zod_1.z.string(), campaignId: zod_1.z.number(), name: zod_1.z.string() }); const binomV2UpdateCampaignDetailsPathDto = zod_1.z.object({ name: zod_1.z.string(), enabled: zod_1.z.boolean(), weight: zod_1.z.number(), landings: zod_1.z.array(binomV2UpdateCampaignDetailsLandingDto), offers: zod_1.z.array(binomV2UpdateCampaignDetailsOfferDto) }); const binomV2UpdateCampaignDetailsCriteriaDto = zod_1.z.object({ type: zod_1.z.string(), values: zod_1.z.array(zod_1.z.string()), enabled: zod_1.z.boolean(), operator: zod_1.z.enum(['is']), allowEmpty: zod_1.z.boolean(), exactMatch: zod_1.z.boolean() }); const binomV2UpdateCampaignDetailsRuleDto = zod_1.z.object({ name: zod_1.z.string(), enabled: zod_1.z.boolean(), paths: zod_1.z.array(binomV2UpdateCampaignDetailsPathDto), criteria: zod_1.z.array(binomV2UpdateCampaignDetailsCriteriaDto) }); const binomV2UpdateCustomRotation = zod_1.z.object({ defaultPaths: zod_1.z.array(binomV2UpdateCampaignDetailsPathDto), rules: zod_1.z.array(binomV2UpdateCampaignDetailsRuleDto) }); const binomV2ApiCampaignDetailsUpdateSchema = zod_1.z.object({ name: zod_1.z.string(), key: zod_1.z.string(), groupUuid: zod_1.z.string().nullable(), trafficSourceId: zod_1.z.number(), costModel: zod_1.z.string(), // Adjust enum as needed currency: zod_1.z.string(), // Add necessary currencies hideReferrerType: zod_1.z.string(), // Adjust as necessary domainUuid: zod_1.z.string().uuid(), distributionType: zod_1.z.string(), // Adjust as needed campaignSettings: apiCampaignSettingsSchema, customRotation: binomV2UpdateCustomRotation });