create cart types from snippet
This commit is contained in:
parent
44d6972ffa
commit
2d2b16981f
@ -33,4 +33,125 @@ export interface Discount {
|
|||||||
incomeMore: number;
|
incomeMore: number;
|
||||||
toTime: number;
|
toTime: number;
|
||||||
toCapacity: number;
|
toCapacity: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
// New types from snippet
|
||||||
|
export namespace Cart {
|
||||||
|
type ServiceType =
|
||||||
|
| "templategen"
|
||||||
|
| "squiz"
|
||||||
|
| "dwarfener";
|
||||||
|
|
||||||
|
type PrivilegeType =
|
||||||
|
| "unlim"
|
||||||
|
| "gencount"
|
||||||
|
| "activequiz"
|
||||||
|
| "abcount"
|
||||||
|
| "extended";
|
||||||
|
|
||||||
|
export interface Privilege {
|
||||||
|
serviceKey: ServiceType;
|
||||||
|
name: PrivilegeType;
|
||||||
|
privilegeId: string;
|
||||||
|
description: string;
|
||||||
|
type: "day" | "count";
|
||||||
|
price: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Discount = {
|
||||||
|
_id: string;
|
||||||
|
name: string;
|
||||||
|
description: string;
|
||||||
|
/**
|
||||||
|
* Этап применения скидки
|
||||||
|
*/
|
||||||
|
layer: number;
|
||||||
|
} & ({
|
||||||
|
conditionType: "purchasesAmount";
|
||||||
|
condition: {
|
||||||
|
purchasesAmount: number;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Множитель, на который умножается сумма при применении скидки
|
||||||
|
*/
|
||||||
|
factor: number;
|
||||||
|
} | {
|
||||||
|
conditionType: "cartPurchasesAmount";
|
||||||
|
condition: {
|
||||||
|
cartPurchasesAmount: number;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Множитель, на который умножается сумма при применении скидки
|
||||||
|
*/
|
||||||
|
factor: number;
|
||||||
|
} | {
|
||||||
|
conditionType: "privilege";
|
||||||
|
condition: {
|
||||||
|
privilege: {
|
||||||
|
id: string;
|
||||||
|
/**
|
||||||
|
* Скидка применяется, если значение больше или равно этому значению
|
||||||
|
*/
|
||||||
|
value: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
target: {
|
||||||
|
products: Array<{
|
||||||
|
productId: string;
|
||||||
|
/**
|
||||||
|
* Множитель, на который умножается сумма при применении скидки
|
||||||
|
*/
|
||||||
|
factor: number;
|
||||||
|
}>;
|
||||||
|
};
|
||||||
|
} | {
|
||||||
|
conditionType: "service";
|
||||||
|
condition: {
|
||||||
|
service: {
|
||||||
|
id: ServiceType;
|
||||||
|
/**
|
||||||
|
* Скидка применяется, если значение больше или равно этому значению
|
||||||
|
*/
|
||||||
|
value: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
target: {
|
||||||
|
service: ServiceType;
|
||||||
|
/**
|
||||||
|
* Множитель, на который умножается сумма при применении скидки
|
||||||
|
*/
|
||||||
|
factor: number;
|
||||||
|
};
|
||||||
|
} | {
|
||||||
|
conditionType: "userType";
|
||||||
|
condition: {
|
||||||
|
userType: string;
|
||||||
|
};
|
||||||
|
target: {
|
||||||
|
IsAllProducts: boolean;
|
||||||
|
/**
|
||||||
|
* Множитель, на который умножается сумма при применении скидки
|
||||||
|
*/
|
||||||
|
factor: number;
|
||||||
|
};
|
||||||
|
overwhelm: boolean;
|
||||||
|
} | {
|
||||||
|
conditionType: "user";
|
||||||
|
condition: {
|
||||||
|
coupon: string;
|
||||||
|
user: string;
|
||||||
|
};
|
||||||
|
target: {
|
||||||
|
products: Array<{
|
||||||
|
productId: string;
|
||||||
|
/**
|
||||||
|
* Множитель, на который умножается сумма при применении скидки
|
||||||
|
*/
|
||||||
|
factor: number;
|
||||||
|
}>;
|
||||||
|
};
|
||||||
|
overwhelm: boolean;
|
||||||
|
});
|
||||||
|
|
||||||
|
export type DiscountConditionType = Discount["conditionType"];
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user