@it_kyryl/arbitrage_admin_schema
Version:
Schema for arbitrage admin panel
31 lines (30 loc) • 1.44 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.binomV2UserApiIdentityResponseSchema = exports.userPermissionGroup = exports.binomV2UserApiResponseSchema = exports.binomV2UserApiPermissionSubject = exports.binomV2UserApiRole = void 0;
const zod_1 = require("zod");
exports.binomV2UserApiRole = zod_1.z.enum(['user', 'admin']);
exports.binomV2UserApiPermissionSubject = zod_1.z.enum(['CAMPAIGN', 'CAMPAIGN_GROUP', 'OFFER', 'OFFER_GROUP', 'ROTATION', 'ROTATION_GROUP', 'TRAFFIC_SOURCE', 'LANDING', 'LANDING_GROUP', 'DOMAIN', 'DEFAULT_COLUMN', 'CUSTOM_COLUMN', 'AFFILIATE_NETWORK']);
exports.binomV2UserApiResponseSchema = zod_1.z.object({
id: zod_1.z.number(),
login: zod_1.z.string(),
role: exports.binomV2UserApiRole
});
exports.userPermissionGroup = zod_1.z.object({
id: zod_1.z.string(),
name: zod_1.z.string()
});
exports.binomV2UserApiIdentityResponseSchema = zod_1.z.object({
identity: zod_1.z.object({
userId: zod_1.z.string(),
login: zod_1.z.string(),
createdAt: zod_1.z.string()
}),
role: exports.binomV2UserApiRole,
permissions: zod_1.z.array(zod_1.z.object({
canCreate: zod_1.z.boolean(),
accessLevel: zod_1.z.string(),
subject: exports.binomV2UserApiPermissionSubject,
modifyGroups: zod_1.z.array(exports.userPermissionGroup),
readGroups: zod_1.z.array(exports.userPermissionGroup)
}))
});