adminFront/src/model/tariff.ts

64 lines
1.6 KiB
TypeScript
Raw Normal View History

2023-02-27 13:30:44 +00:00
/** @deprecated */
2023-02-18 14:00:49 +00:00
export type ServiceType =
| "Шаблонизатор документов"
| "Опросник"
| "Сокращатель ссылок"
| "АБ тесты";
2023-02-27 13:30:44 +00:00
/** @deprecated */
2023-02-18 14:00:49 +00:00
export interface Tariff {
id: number;
name: string;
type: string;
service: ServiceType | "";
disk: number;
time: number;
points: number;
price: number;
}
2023-02-27 13:30:44 +00:00
/** @deprecated */
2023-02-18 14:00:49 +00:00
export interface ArrayProps {
id: number;
name: string;
type: "package" | "tariff";
service: ServiceType | "";
disk: number;
time: number;
points: number;
price: number;
tariffs?: Array<Tariff>;
}
2023-02-25 12:28:50 +00:00
export const SERVICE_LIST = ["templategen", "squiz", "dwarfener"] as const;
2023-02-25 09:22:54 +00:00
export namespace Tariffs {
2023-02-25 12:28:50 +00:00
export type ServiceType = typeof SERVICE_LIST[number];
export type PrivilegeType =
| "unlim"
| "gencount"
| "activequiz"
| "abcount"
| "extended";
export interface Privilege {
2023-02-25 13:53:22 +00:00
serviceKey: ServiceType;
2023-02-25 12:28:50 +00:00
name: PrivilegeType;
privilegeId: string;
description: string;
2023-02-27 13:30:44 +00:00
/** Единица измерения привелегии: время в днях/кол-во */
2023-02-25 12:28:50 +00:00
type: "day" | "count";
2023-02-27 13:30:44 +00:00
/** Стоимость одной единицы привелегии */
pricePerUnit: number;
2023-02-25 12:28:50 +00:00
}
2023-02-25 09:22:54 +00:00
export interface Tariff {
2023-02-25 13:53:22 +00:00
privilege: Privilege;
2023-02-27 13:30:44 +00:00
/** Количество единиц привелегии */
2023-02-25 09:22:54 +00:00
amount: number;
2023-02-27 13:30:44 +00:00
/** Кастомная цена, если есть, то используется вместо privilege.price */
customPricePerUnit?: number;
2023-02-25 09:22:54 +00:00
}
}