adminFront/src/model/tariff.ts
2023-02-25 16:59:16 +03:00

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;
}
}