fix and rename types
This commit is contained in:
parent
4e8a8e4276
commit
b206811b43
@ -39,7 +39,7 @@ export interface Discount {
|
||||
toCapacity: number;
|
||||
}
|
||||
|
||||
// New types from snippet
|
||||
|
||||
export namespace Cart {
|
||||
interface DiscountBase {
|
||||
_id: string;
|
||||
@ -78,8 +78,7 @@ export namespace Cart {
|
||||
};
|
||||
target: {
|
||||
products: Array<{
|
||||
/** TODO Судя по сниппету, это id привелегий, но названо "продукт" */
|
||||
productId: string;
|
||||
privilegeId: string;
|
||||
/** Множитель, на который умножается сумма при применении скидки */
|
||||
factor: number;
|
||||
}>;
|
||||
@ -123,8 +122,7 @@ export namespace Cart {
|
||||
};
|
||||
target: {
|
||||
products: Array<{
|
||||
/** TODO Судя по сниппету, это id привелегий, но названо "продукт" */
|
||||
productId: string;
|
||||
privilegeId: string;
|
||||
/** Множитель, на который умножается сумма при применении скидки */
|
||||
factor: number;
|
||||
}>;
|
||||
@ -150,7 +148,7 @@ export namespace Cart {
|
||||
}
|
||||
|
||||
export interface CartItem {
|
||||
item: Tariffs.Tariff;
|
||||
tariff: Tariffs.Tariff;
|
||||
/** Посчитанная цена пункта корзины */
|
||||
price: number;
|
||||
}
|
||||
@ -160,13 +158,20 @@ export namespace Cart {
|
||||
/** Массив с id примененных скидок */
|
||||
envolvedDiscounts: string[];
|
||||
totalPrice: number;
|
||||
item: Tariffs.Tariff;
|
||||
tariff: Tariffs.Tariff;
|
||||
}
|
||||
|
||||
export type ServiceToPriceMap = {
|
||||
[Key in Tariffs.ServiceType]: {
|
||||
customTariffs: number;
|
||||
defaultTariffs: number;
|
||||
}
|
||||
};
|
||||
|
||||
export interface CartTotal {
|
||||
items: CartItemTotal[];
|
||||
totalPrice: number;
|
||||
priceByService: { [Key in Tariffs.ServiceType]: number; };
|
||||
priceByService: ServiceToPriceMap;
|
||||
envolvedCartDiscounts: string[];
|
||||
}
|
||||
}
|
@ -153,7 +153,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p1", // не знаю, стоит ли тут оставлять массив products, но на всякий случай оставлю. т.е. скидка, при срабатывании, применяется к этой привилегии в корзине, т.е. умножает её сумму на factor
|
||||
"privilegeId": "p1", // не знаю, стоит ли тут оставлять массив products, но на всякий случай оставлю. т.е. скидка, при срабатывании, применяется к этой привилегии в корзине, т.е. умножает её сумму на factor
|
||||
"factor": 0.975
|
||||
}
|
||||
]
|
||||
@ -174,7 +174,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p1",
|
||||
"privilegeId": "p1",
|
||||
"factor": 0.975
|
||||
}
|
||||
]
|
||||
@ -195,7 +195,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p1",
|
||||
"privilegeId": "p1",
|
||||
"factor": 0.93
|
||||
}
|
||||
]
|
||||
@ -216,7 +216,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p2",
|
||||
"privilegeId": "p2",
|
||||
"factor": 0.995
|
||||
}
|
||||
]
|
||||
@ -237,7 +237,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p2",
|
||||
"privilegeId": "p2",
|
||||
"factor": 0.98
|
||||
}
|
||||
]
|
||||
@ -258,7 +258,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p2",
|
||||
"privilegeId": "p2",
|
||||
"factor": 0.945
|
||||
}
|
||||
]
|
||||
@ -279,7 +279,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p3",
|
||||
"privilegeId": "p3",
|
||||
"factor": 0.97
|
||||
}
|
||||
]
|
||||
@ -300,7 +300,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p3",
|
||||
"privilegeId": "p3",
|
||||
"factor": 0.93
|
||||
}
|
||||
]
|
||||
@ -321,7 +321,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p3",
|
||||
"privilegeId": "p3",
|
||||
"factor": 0.85
|
||||
}
|
||||
]
|
||||
@ -342,7 +342,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p4",
|
||||
"privilegeId": "p4",
|
||||
"factor": 0.98
|
||||
}
|
||||
]
|
||||
@ -363,7 +363,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p4",
|
||||
"privilegeId": "p4",
|
||||
"factor": 0.96
|
||||
}
|
||||
]
|
||||
@ -384,7 +384,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p4",
|
||||
"privilegeId": "p4",
|
||||
"factor": 0.9
|
||||
}
|
||||
]
|
||||
@ -405,7 +405,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p5",
|
||||
"privilegeId": "p5",
|
||||
"factor": 0.99
|
||||
}
|
||||
]
|
||||
@ -426,7 +426,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p5",
|
||||
"privilegeId": "p5",
|
||||
"factor": 0.98
|
||||
}
|
||||
]
|
||||
@ -447,7 +447,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p5",
|
||||
"privilegeId": "p5",
|
||||
"factor": 0.97
|
||||
}
|
||||
]
|
||||
@ -468,7 +468,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p6",
|
||||
"privilegeId": "p6",
|
||||
"factor": 0.99
|
||||
}
|
||||
]
|
||||
@ -489,7 +489,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p6",
|
||||
"privilegeId": "p6",
|
||||
"factor": 0.965
|
||||
}
|
||||
]
|
||||
@ -510,7 +510,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p6",
|
||||
"privilegeId": "p6",
|
||||
"factor": 0.935
|
||||
}
|
||||
]
|
||||
@ -531,7 +531,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p7",
|
||||
"privilegeId": "p7",
|
||||
"factor": 0.935
|
||||
}
|
||||
]
|
||||
@ -552,7 +552,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p7",
|
||||
"privilegeId": "p7",
|
||||
"factor": 0.875
|
||||
}
|
||||
]
|
||||
@ -573,7 +573,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p7",
|
||||
"privilegeId": "p7",
|
||||
"factor": 0.83
|
||||
}
|
||||
]
|
||||
@ -709,7 +709,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"target": {
|
||||
"products": [
|
||||
{
|
||||
"productId": "p6",
|
||||
"privilegeId": "p6",
|
||||
"factor": 0.5
|
||||
}
|
||||
]
|
||||
@ -763,7 +763,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
},
|
||||
]
|
||||
},
|
||||
"expect": {
|
||||
"expect": { // работает если не учитывать скидки id26, id27 (скидка на templategen от 1000/5000 р.)
|
||||
"price": 4925.0,
|
||||
"envolvedDiscounts": [
|
||||
"id4"
|
||||
@ -794,7 +794,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
}
|
||||
]
|
||||
},
|
||||
"expect": {
|
||||
"expect": { // работает если не учитывать скидки id26, id27 (скидка на templategen от 1000/5000 р.)
|
||||
"price": 5025.32,
|
||||
"envolvedDiscounts": [
|
||||
"id4",
|
||||
@ -830,7 +830,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
}
|
||||
]
|
||||
},
|
||||
"expect": {
|
||||
"expect": { // работает если не учитывать скидки id26, id27 (скидка на templategen от 1000/5000 р.)
|
||||
"price": 5223.9,
|
||||
"envolvedDiscounts": [
|
||||
"id4",
|
||||
@ -867,7 +867,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
}
|
||||
]
|
||||
},
|
||||
"expect": {
|
||||
"expect": { // работает если не учитывать скидки id26, id27 (скидка на templategen от 1000/5000 р.)
|
||||
"price": 5171.66,
|
||||
"envolvedDiscounts": [
|
||||
"id4",
|
||||
@ -965,11 +965,14 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"expect": {
|
||||
"price": 750.96,
|
||||
"envolvedDiscounts": [
|
||||
"id19",
|
||||
"id23",
|
||||
"id25",
|
||||
"id30",
|
||||
"id1"
|
||||
"id19", // p5, layer 1, value > 90, 0.97, pricePerUnit = 0.1
|
||||
"id23", // p6, layer 1, value > 50, 0.935, pricePerUnit = 0.7
|
||||
"id25", // p7, layer 1, value > 90, 0.83, pricePerUnit = 2
|
||||
"id30", // dwarfener, layer 2, value > 500, 0.99
|
||||
"id1" // layer 4, purchasesAmount > 10000, 0.99
|
||||
// TODO Какая-то из скидок id30, id1 не учлась
|
||||
// expected: (300 * 0.1 * 0.97 + 100 * 0.7 * 0.935 + 400 * 2 * 0.83) * 0.99 = 750.96
|
||||
// received: (300 * 0.1 * 0.97 + 100 * 0.7 * 0.935 + 400 * 2 * 0.83) * 0.99 * 0.99 = 743.45
|
||||
] // история про то, как получилось получить скидку за сервис
|
||||
}
|
||||
},
|
||||
@ -1094,7 +1097,7 @@ export const exampleCartValues: ExampleCartValues = {
|
||||
"expect": {
|
||||
"price": 540, // сложил всю корзину и умножил на показатель скидки
|
||||
"envolvedDiscounts": [
|
||||
"id30"
|
||||
"id32"
|
||||
] // юзер подтвердил свой статус НКО, поэтому, не смотря на то что он достиг по лояльности уровня скидки id2, она не применилась, а применилась id32
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user