export const SERVICE_LIST = [ { serviceKey: "templategen", displayName: "Шаблонизатор документов", }, { serviceKey: "squiz", displayName: "Опросник", }, { serviceKey: "dwarfener", displayName: "Аналитика сокращателя", }, ] as const; export type ServiceType = (typeof SERVICE_LIST)[number]["serviceKey"]; export type PrivilegeType = "unlim" | "gencount" | "activequiz" | "abcount" | "extended"; export interface Privilege_BACKEND { name: string; privilegeId: string; serviceKey: string; amount: number; description: string; price: number; type: string; value: string; updatedAt: string; _id: string; } export type Tariff_FRONTEND = { id: string, name: string, amount: number, privilegeId: string, customPricePerUnit?: number; }; /** @deprecated */ export interface Privilege { serviceKey: ServiceType; name: PrivilegeType; privilegeId: string; description: string; /** Единица измерения привелегии: время в днях/кол-во */ type: "day" | "count"; /** Стоимость одной единицы привелегии */ price: number; } export type Tariff_BACKEND = { _id: string, name: string, price: number, isCustom: boolean, isFront: false, privilegies: Privilege_BACKEND[], isDeleted: boolean, createdAt: string, updatedAt: string; }; export type Tariff = { id: string; name: string; isCustom?: boolean; price?: number; privilegeId: string; amount: number; //Количество единиц привелегии customPricePerUnit?: number; //Кастомная цена, если есть, то используется вместо privilege.price isDeleted?: boolean, isFront?: boolean; }