@it_kyryl/arbitrage_admin_schema
Version:
Schema for arbitrage admin panel
178 lines (177 loc) • 6.39 kB
JavaScript
"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
});