@pacp/spec 3.6.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.cts +13 -2
- package/dist/index.d.ts +13 -2
- package/dist/pacp.schema.json +52 -2
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -362,13 +362,16 @@ interface Component {
|
|
|
362
362
|
/**
|
|
363
363
|
* Operação executada por uma regra. Ver spec §6.
|
|
364
364
|
*
|
|
365
|
-
* - `ADD` / `PERCENT_OF`: acumulam.
|
|
365
|
+
* - `ADD` / `PERCENT_OF` / `TAX`: acumulam (somam).
|
|
366
|
+
* - `DISCOUNT`: subtrai (`value` fixo ou `rate` % do valor corrente).
|
|
366
367
|
* - `OVERRIDE` / `PICK`: substituem.
|
|
367
368
|
* - `LOOKUP`: busca em tabela.
|
|
368
369
|
* - `MAX_OF` / `MIN_OF`: agregam componentes.
|
|
369
370
|
* - `ROUND` / `CAP` / `FLOOR`: pós-processamento.
|
|
370
371
|
*/
|
|
371
|
-
type RuleOperation = "ADD" | "PERCENT_OF" | "OVERRIDE" | "LOOKUP" | "MAX_OF" | "MIN_OF" | "PICK" | "ROUND" | "CAP" | "FLOOR";
|
|
372
|
+
type RuleOperation = "ADD" | "PERCENT_OF" | "OVERRIDE" | "LOOKUP" | "MAX_OF" | "MIN_OF" | "PICK" | "ROUND" | "CAP" | "FLOOR" | "TAX" | "DISCOUNT";
|
|
373
|
+
/** Base de incidência da operação `TAX`. Default `"CURRENT"`. */
|
|
374
|
+
type TaxBase = "CURRENT" | "BASE_PRICE";
|
|
372
375
|
/**
|
|
373
376
|
* Regra de precificação aplicada dentro de um ruleset.
|
|
374
377
|
*
|
|
@@ -403,6 +406,14 @@ interface Rule {
|
|
|
403
406
|
fallback?: number;
|
|
404
407
|
option_id?: string;
|
|
405
408
|
option_ids?: string[];
|
|
409
|
+
/** Para `TAX`. Percentual somado sobre `base`. */
|
|
410
|
+
rate?: number;
|
|
411
|
+
/**
|
|
412
|
+
* Para `TAX`. `"BASE_PRICE"` incide sobre `product.base_price` (independe
|
|
413
|
+
* do valor corrente acumulado); `"CURRENT"` (default) incide sobre o valor
|
|
414
|
+
* corrente na cadeia de aplicação.
|
|
415
|
+
*/
|
|
416
|
+
base?: TaxBase;
|
|
406
417
|
[key: `x-${string}`]: unknown;
|
|
407
418
|
}
|
|
408
419
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -362,13 +362,16 @@ interface Component {
|
|
|
362
362
|
/**
|
|
363
363
|
* Operação executada por uma regra. Ver spec §6.
|
|
364
364
|
*
|
|
365
|
-
* - `ADD` / `PERCENT_OF`: acumulam.
|
|
365
|
+
* - `ADD` / `PERCENT_OF` / `TAX`: acumulam (somam).
|
|
366
|
+
* - `DISCOUNT`: subtrai (`value` fixo ou `rate` % do valor corrente).
|
|
366
367
|
* - `OVERRIDE` / `PICK`: substituem.
|
|
367
368
|
* - `LOOKUP`: busca em tabela.
|
|
368
369
|
* - `MAX_OF` / `MIN_OF`: agregam componentes.
|
|
369
370
|
* - `ROUND` / `CAP` / `FLOOR`: pós-processamento.
|
|
370
371
|
*/
|
|
371
|
-
type RuleOperation = "ADD" | "PERCENT_OF" | "OVERRIDE" | "LOOKUP" | "MAX_OF" | "MIN_OF" | "PICK" | "ROUND" | "CAP" | "FLOOR";
|
|
372
|
+
type RuleOperation = "ADD" | "PERCENT_OF" | "OVERRIDE" | "LOOKUP" | "MAX_OF" | "MIN_OF" | "PICK" | "ROUND" | "CAP" | "FLOOR" | "TAX" | "DISCOUNT";
|
|
373
|
+
/** Base de incidência da operação `TAX`. Default `"CURRENT"`. */
|
|
374
|
+
type TaxBase = "CURRENT" | "BASE_PRICE";
|
|
372
375
|
/**
|
|
373
376
|
* Regra de precificação aplicada dentro de um ruleset.
|
|
374
377
|
*
|
|
@@ -403,6 +406,14 @@ interface Rule {
|
|
|
403
406
|
fallback?: number;
|
|
404
407
|
option_id?: string;
|
|
405
408
|
option_ids?: string[];
|
|
409
|
+
/** Para `TAX`. Percentual somado sobre `base`. */
|
|
410
|
+
rate?: number;
|
|
411
|
+
/**
|
|
412
|
+
* Para `TAX`. `"BASE_PRICE"` incide sobre `product.base_price` (independe
|
|
413
|
+
* do valor corrente acumulado); `"CURRENT"` (default) incide sobre o valor
|
|
414
|
+
* corrente na cadeia de aplicação.
|
|
415
|
+
*/
|
|
416
|
+
base?: TaxBase;
|
|
406
417
|
[key: `x-${string}`]: unknown;
|
|
407
418
|
}
|
|
408
419
|
/**
|
package/dist/pacp.schema.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://cdn.jsdelivr.net/npm/@pacp/spec@latest/dist/pacp.schema.json",
|
|
4
|
-
"title": "PACP v3.
|
|
4
|
+
"title": "PACP v3.7.0",
|
|
5
5
|
"oneOf": [
|
|
6
6
|
{
|
|
7
7
|
"$ref": "#/$defs/catalog_document"
|
|
@@ -823,7 +823,9 @@
|
|
|
823
823
|
"PICK",
|
|
824
824
|
"ROUND",
|
|
825
825
|
"CAP",
|
|
826
|
-
"FLOOR"
|
|
826
|
+
"FLOOR",
|
|
827
|
+
"TAX",
|
|
828
|
+
"DISCOUNT"
|
|
827
829
|
]
|
|
828
830
|
},
|
|
829
831
|
"value": {
|
|
@@ -863,6 +865,17 @@
|
|
|
863
865
|
"items": {
|
|
864
866
|
"type": "string"
|
|
865
867
|
}
|
|
868
|
+
},
|
|
869
|
+
"rate": {
|
|
870
|
+
"type": "number"
|
|
871
|
+
},
|
|
872
|
+
"base": {
|
|
873
|
+
"type": "string",
|
|
874
|
+
"enum": [
|
|
875
|
+
"CURRENT",
|
|
876
|
+
"BASE_PRICE"
|
|
877
|
+
],
|
|
878
|
+
"default": "CURRENT"
|
|
866
879
|
}
|
|
867
880
|
},
|
|
868
881
|
"allOf": [
|
|
@@ -981,6 +994,43 @@
|
|
|
981
994
|
"min"
|
|
982
995
|
]
|
|
983
996
|
}
|
|
997
|
+
},
|
|
998
|
+
{
|
|
999
|
+
"if": {
|
|
1000
|
+
"properties": {
|
|
1001
|
+
"operation": {
|
|
1002
|
+
"const": "TAX"
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
},
|
|
1006
|
+
"then": {
|
|
1007
|
+
"required": [
|
|
1008
|
+
"rate"
|
|
1009
|
+
]
|
|
1010
|
+
}
|
|
1011
|
+
},
|
|
1012
|
+
{
|
|
1013
|
+
"if": {
|
|
1014
|
+
"properties": {
|
|
1015
|
+
"operation": {
|
|
1016
|
+
"const": "DISCOUNT"
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
},
|
|
1020
|
+
"then": {
|
|
1021
|
+
"oneOf": [
|
|
1022
|
+
{
|
|
1023
|
+
"required": [
|
|
1024
|
+
"value"
|
|
1025
|
+
]
|
|
1026
|
+
},
|
|
1027
|
+
{
|
|
1028
|
+
"required": [
|
|
1029
|
+
"rate"
|
|
1030
|
+
]
|
|
1031
|
+
}
|
|
1032
|
+
]
|
|
1033
|
+
}
|
|
984
1034
|
}
|
|
985
1035
|
]
|
|
986
1036
|
},
|
package/package.json
CHANGED