80 lines
1.7 KiB
TypeScript
80 lines
1.7 KiB
TypeScript
|
|
|
|
/**
|
|
* @deprecated
|
|
*/
|
|
export type ServiceType =
|
|
| "Шаблонизатор документов"
|
|
| "Опросник"
|
|
| "Сокращатель ссылок"
|
|
| "АБ тесты";
|
|
|
|
/**
|
|
* @deprecated
|
|
*/
|
|
export interface Tariff {
|
|
id: number;
|
|
name: string;
|
|
type: string;
|
|
service: ServiceType | "";
|
|
disk: number;
|
|
time: number;
|
|
points: number;
|
|
price: number;
|
|
}
|
|
|
|
/**
|
|
* @deprecated
|
|
*/
|
|
export interface ArrayProps {
|
|
id: number;
|
|
name: string;
|
|
type: "package" | "tariff";
|
|
service: ServiceType | "";
|
|
disk: number;
|
|
time: number;
|
|
points: number;
|
|
price: number;
|
|
tariffs?: Array<Tariff>;
|
|
}
|
|
|
|
|
|
export const SERVICE_LIST = ["templategen", "squiz", "dwarfener"] as const;
|
|
|
|
export namespace Tariffs {
|
|
export type ServiceType = typeof SERVICE_LIST[number];
|
|
|
|
export type PrivilegeType =
|
|
| "unlim"
|
|
| "gencount"
|
|
| "activequiz"
|
|
| "abcount"
|
|
| "extended";
|
|
|
|
export interface Privilege {
|
|
serviceKey: ServiceType;
|
|
name: PrivilegeType;
|
|
privilegeId: string;
|
|
description: string;
|
|
/**
|
|
* Единица измерения привелегии: время в днях/кол-во
|
|
*/
|
|
type: "day" | "count";
|
|
/**
|
|
* Стоимость одной единицы привелегии
|
|
*/
|
|
price: number;
|
|
}
|
|
|
|
export interface Tariff {
|
|
privilege: Privilege;
|
|
/**
|
|
* Количество единиц привелегии
|
|
*/
|
|
amount: number;
|
|
/**
|
|
* Кастомная цена, если есть, то используется вместо privilege.price
|
|
*/
|
|
customPrice?: number;
|
|
}
|
|
} |