feat(pricing): pricing uses big number (#7075)

what:

- pricing model price#amount uses big number.

blocker:

- upsertWithReplace decoration fix
This commit is contained in:
Riqwan Thamir authored and GitHub committed 2024-04-17 15:57:41 +00:00
1 parent 8d356217bd
commit 2a835cae13
3 files changed
+172 -54

No files matched your search

@@ -1,5 +1,7 @@
{ {
"namespaces": ["public"], "namespaces": [
"public"
],
"name": "public", "name": "public",
"tables": [ "tables": [
{ {
@@ -39,7 +41,10 @@
"primary": false, "primary": false,
"nullable": false, "nullable": false,
"default": "'draft'", "default": "'draft'",
"enumItems": ["active", "draft"], "enumItems": [
"active",
"draft"
],
"mappedType": "enum" "mappedType": "enum"
}, },
"type": { "type": {
@@ -50,7 +55,10 @@
"primary": false, "primary": false,
"nullable": false, "nullable": false,
"default": "'sale'", "default": "'sale'",
"enumItems": ["sale", "override"], "enumItems": [
"sale",
"override"
],
"mappedType": "enum" "mappedType": "enum"
}, },
"starts_at": { "starts_at": {
@@ -121,7 +129,9 @@
"indexes": [ "indexes": [
{ {
"keyName": "IDX_price_list_deleted_at", "keyName": "IDX_price_list_deleted_at",
"columnNames": ["deleted_at"], "columnNames": [
"deleted_at"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -129,7 +139,9 @@
}, },
{ {
"keyName": "price_list_pkey", "keyName": "price_list_pkey",
"columnNames": ["id"], "columnNames": [
"id"
],
"composite": false, "composite": false,
"primary": true, "primary": true,
"unique": true "unique": true
@@ -187,7 +199,9 @@
"indexes": [ "indexes": [
{ {
"keyName": "IDX_price_set_deleted_at", "keyName": "IDX_price_set_deleted_at",
"columnNames": ["deleted_at"], "columnNames": [
"deleted_at"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -195,7 +209,9 @@
}, },
{ {
"keyName": "price_set_pkey", "keyName": "price_set_pkey",
"columnNames": ["id"], "columnNames": [
"id"
],
"composite": false, "composite": false,
"primary": true, "primary": true,
"unique": true "unique": true
@@ -242,6 +258,15 @@
"nullable": false, "nullable": false,
"mappedType": "decimal" "mappedType": "decimal"
}, },
"raw_amount": {
"name": "raw_amount",
"type": "jsonb",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"mappedType": "json"
},
"min_quantity": { "min_quantity": {
"name": "min_quantity", "name": "min_quantity",
"type": "numeric", "type": "numeric",
@@ -326,7 +351,9 @@
"indexes": [ "indexes": [
{ {
"keyName": "IDX_price_currency_code", "keyName": "IDX_price_currency_code",
"columnNames": ["currency_code"], "columnNames": [
"currency_code"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -334,7 +361,9 @@
}, },
{ {
"keyName": "IDX_price_price_set_id", "keyName": "IDX_price_price_set_id",
"columnNames": ["price_set_id"], "columnNames": [
"price_set_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -342,7 +371,9 @@
}, },
{ {
"keyName": "IDX_price_price_list_id", "keyName": "IDX_price_price_list_id",
"columnNames": ["price_list_id"], "columnNames": [
"price_list_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -350,7 +381,9 @@
}, },
{ {
"keyName": "IDX_price_deleted_at", "keyName": "IDX_price_deleted_at",
"columnNames": ["deleted_at"], "columnNames": [
"deleted_at"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -358,7 +391,9 @@
}, },
{ {
"keyName": "price_pkey", "keyName": "price_pkey",
"columnNames": ["id"], "columnNames": [
"id"
],
"composite": false, "composite": false,
"primary": true, "primary": true,
"unique": true "unique": true
@@ -368,18 +403,26 @@
"foreignKeys": { "foreignKeys": {
"price_price_set_id_foreign": { "price_price_set_id_foreign": {
"constraintName": "price_price_set_id_foreign", "constraintName": "price_price_set_id_foreign",
"columnNames": ["price_set_id"], "columnNames": [
"price_set_id"
],
"localTableName": "public.price", "localTableName": "public.price",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.price_set", "referencedTableName": "public.price_set",
"deleteRule": "cascade", "deleteRule": "cascade",
"updateRule": "cascade" "updateRule": "cascade"
}, },
"price_price_list_id_foreign": { "price_price_list_id_foreign": {
"constraintName": "price_price_list_id_foreign", "constraintName": "price_price_list_id_foreign",
"columnNames": ["price_list_id"], "columnNames": [
"price_list_id"
],
"localTableName": "public.price", "localTableName": "public.price",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.price_list", "referencedTableName": "public.price_list",
"deleteRule": "cascade", "deleteRule": "cascade",
"updateRule": "cascade" "updateRule": "cascade"
@@ -463,7 +506,9 @@
"indexes": [ "indexes": [
{ {
"keyName": "IDX_rule_type_rule_attribute", "keyName": "IDX_rule_type_rule_attribute",
"columnNames": ["rule_attribute"], "columnNames": [
"rule_attribute"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -471,7 +516,9 @@
}, },
{ {
"keyName": "IDX_rule_type_deleted_at", "keyName": "IDX_rule_type_deleted_at",
"columnNames": ["deleted_at"], "columnNames": [
"deleted_at"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -479,7 +526,9 @@
}, },
{ {
"keyName": "rule_type_pkey", "keyName": "rule_type_pkey",
"columnNames": ["id"], "columnNames": [
"id"
],
"composite": false, "composite": false,
"primary": true, "primary": true,
"unique": true "unique": true
@@ -555,7 +604,9 @@
"indexes": [ "indexes": [
{ {
"keyName": "IDX_price_set_rule_type_price_set_id", "keyName": "IDX_price_set_rule_type_price_set_id",
"columnNames": ["price_set_id"], "columnNames": [
"price_set_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -563,7 +614,9 @@
}, },
{ {
"keyName": "IDX_price_set_rule_type_rule_type_id", "keyName": "IDX_price_set_rule_type_rule_type_id",
"columnNames": ["rule_type_id"], "columnNames": [
"rule_type_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -571,7 +624,9 @@
}, },
{ {
"keyName": "IDX_price_set_rule_type_deleted_at", "keyName": "IDX_price_set_rule_type_deleted_at",
"columnNames": ["deleted_at"], "columnNames": [
"deleted_at"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -579,7 +634,9 @@
}, },
{ {
"keyName": "price_set_rule_type_pkey", "keyName": "price_set_rule_type_pkey",
"columnNames": ["id"], "columnNames": [
"id"
],
"composite": false, "composite": false,
"primary": true, "primary": true,
"unique": true "unique": true
@@ -589,18 +646,26 @@
"foreignKeys": { "foreignKeys": {
"price_set_rule_type_price_set_id_foreign": { "price_set_rule_type_price_set_id_foreign": {
"constraintName": "price_set_rule_type_price_set_id_foreign", "constraintName": "price_set_rule_type_price_set_id_foreign",
"columnNames": ["price_set_id"], "columnNames": [
"price_set_id"
],
"localTableName": "public.price_set_rule_type", "localTableName": "public.price_set_rule_type",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.price_set", "referencedTableName": "public.price_set",
"deleteRule": "cascade", "deleteRule": "cascade",
"updateRule": "cascade" "updateRule": "cascade"
}, },
"price_set_rule_type_rule_type_id_foreign": { "price_set_rule_type_rule_type_id_foreign": {
"constraintName": "price_set_rule_type_rule_type_id_foreign", "constraintName": "price_set_rule_type_rule_type_id_foreign",
"columnNames": ["rule_type_id"], "columnNames": [
"rule_type_id"
],
"localTableName": "public.price_set_rule_type", "localTableName": "public.price_set_rule_type",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.rule_type", "referencedTableName": "public.rule_type",
"deleteRule": "cascade", "deleteRule": "cascade",
"updateRule": "cascade" "updateRule": "cascade"
@@ -702,7 +767,9 @@
"indexes": [ "indexes": [
{ {
"keyName": "IDX_price_rule_price_set_id", "keyName": "IDX_price_rule_price_set_id",
"columnNames": ["price_set_id"], "columnNames": [
"price_set_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -710,7 +777,9 @@
}, },
{ {
"keyName": "IDX_price_rule_rule_type_id", "keyName": "IDX_price_rule_rule_type_id",
"columnNames": ["rule_type_id"], "columnNames": [
"rule_type_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -718,7 +787,9 @@
}, },
{ {
"keyName": "IDX_price_rule_price_id_rule_type_id_unique", "keyName": "IDX_price_rule_price_id_rule_type_id_unique",
"columnNames": ["price_id"], "columnNames": [
"price_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -726,7 +797,9 @@
}, },
{ {
"keyName": "IDX_price_rule_deleted_at", "keyName": "IDX_price_rule_deleted_at",
"columnNames": ["deleted_at"], "columnNames": [
"deleted_at"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -734,7 +807,9 @@
}, },
{ {
"keyName": "price_rule_pkey", "keyName": "price_rule_pkey",
"columnNames": ["id"], "columnNames": [
"id"
],
"composite": false, "composite": false,
"primary": true, "primary": true,
"unique": true "unique": true
@@ -744,26 +819,38 @@
"foreignKeys": { "foreignKeys": {
"price_rule_price_set_id_foreign": { "price_rule_price_set_id_foreign": {
"constraintName": "price_rule_price_set_id_foreign", "constraintName": "price_rule_price_set_id_foreign",
"columnNames": ["price_set_id"], "columnNames": [
"price_set_id"
],
"localTableName": "public.price_rule", "localTableName": "public.price_rule",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.price_set", "referencedTableName": "public.price_set",
"deleteRule": "cascade", "deleteRule": "cascade",
"updateRule": "cascade" "updateRule": "cascade"
}, },
"price_rule_rule_type_id_foreign": { "price_rule_rule_type_id_foreign": {
"constraintName": "price_rule_rule_type_id_foreign", "constraintName": "price_rule_rule_type_id_foreign",
"columnNames": ["rule_type_id"], "columnNames": [
"rule_type_id"
],
"localTableName": "public.price_rule", "localTableName": "public.price_rule",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.rule_type", "referencedTableName": "public.rule_type",
"updateRule": "cascade" "updateRule": "cascade"
}, },
"price_rule_price_id_foreign": { "price_rule_price_id_foreign": {
"constraintName": "price_rule_price_id_foreign", "constraintName": "price_rule_price_id_foreign",
"columnNames": ["price_id"], "columnNames": [
"price_id"
],
"localTableName": "public.price_rule", "localTableName": "public.price_rule",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.price", "referencedTableName": "public.price",
"deleteRule": "cascade", "deleteRule": "cascade",
"updateRule": "cascade" "updateRule": "cascade"
@@ -837,7 +924,9 @@
"indexes": [ "indexes": [
{ {
"keyName": "IDX_price_list_rule_rule_type_id_unique", "keyName": "IDX_price_list_rule_rule_type_id_unique",
"columnNames": ["rule_type_id"], "columnNames": [
"rule_type_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -845,7 +934,9 @@
}, },
{ {
"keyName": "IDX_price_list_rule_price_list_id", "keyName": "IDX_price_list_rule_price_list_id",
"columnNames": ["price_list_id"], "columnNames": [
"price_list_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -853,7 +944,9 @@
}, },
{ {
"keyName": "IDX_price_list_rule_deleted_at", "keyName": "IDX_price_list_rule_deleted_at",
"columnNames": ["deleted_at"], "columnNames": [
"deleted_at"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -861,7 +954,9 @@
}, },
{ {
"keyName": "price_list_rule_pkey", "keyName": "price_list_rule_pkey",
"columnNames": ["id"], "columnNames": [
"id"
],
"composite": false, "composite": false,
"primary": true, "primary": true,
"unique": true "unique": true
@@ -871,17 +966,25 @@
"foreignKeys": { "foreignKeys": {
"price_list_rule_rule_type_id_foreign": { "price_list_rule_rule_type_id_foreign": {
"constraintName": "price_list_rule_rule_type_id_foreign", "constraintName": "price_list_rule_rule_type_id_foreign",
"columnNames": ["rule_type_id"], "columnNames": [
"rule_type_id"
],
"localTableName": "public.price_list_rule", "localTableName": "public.price_list_rule",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.rule_type", "referencedTableName": "public.rule_type",
"updateRule": "cascade" "updateRule": "cascade"
}, },
"price_list_rule_price_list_id_foreign": { "price_list_rule_price_list_id_foreign": {
"constraintName": "price_list_rule_price_list_id_foreign", "constraintName": "price_list_rule_price_list_id_foreign",
"columnNames": ["price_list_id"], "columnNames": [
"price_list_id"
],
"localTableName": "public.price_list_rule", "localTableName": "public.price_list_rule",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.price_list", "referencedTableName": "public.price_list",
"deleteRule": "cascade", "deleteRule": "cascade",
"updateRule": "cascade" "updateRule": "cascade"
@@ -955,7 +1058,9 @@
"indexes": [ "indexes": [
{ {
"keyName": "IDX_price_list_rule_value_price_list_rule_id", "keyName": "IDX_price_list_rule_value_price_list_rule_id",
"columnNames": ["price_list_rule_id"], "columnNames": [
"price_list_rule_id"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -963,7 +1068,9 @@
}, },
{ {
"keyName": "IDX_price_list_rule_value_deleted_at", "keyName": "IDX_price_list_rule_value_deleted_at",
"columnNames": ["deleted_at"], "columnNames": [
"deleted_at"
],
"composite": false, "composite": false,
"primary": false, "primary": false,
"unique": false, "unique": false,
@@ -971,7 +1078,9 @@
}, },
{ {
"keyName": "price_list_rule_value_pkey", "keyName": "price_list_rule_value_pkey",
"columnNames": ["id"], "columnNames": [
"id"
],
"composite": false, "composite": false,
"primary": true, "primary": true,
"unique": true "unique": true
@@ -981,9 +1090,13 @@
"foreignKeys": { "foreignKeys": {
"price_list_rule_value_price_list_rule_id_foreign": { "price_list_rule_value_price_list_rule_id_foreign": {
"constraintName": "price_list_rule_value_price_list_rule_id_foreign", "constraintName": "price_list_rule_value_price_list_rule_id_foreign",
"columnNames": ["price_list_rule_id"], "columnNames": [
"price_list_rule_id"
],
"localTableName": "public.price_list_rule_value", "localTableName": "public.price_list_rule_value",
"referencedColumnNames": ["id"], "referencedColumnNames": [
"id"
],
"referencedTableName": "public.price_list_rule", "referencedTableName": "public.price_list_rule",
"deleteRule": "cascade", "deleteRule": "cascade",
"updateRule": "cascade" "updateRule": "cascade"
@@ -11,7 +11,7 @@ export class Migration20230929122253 extends Migration {
) )
this.addSql( this.addSql(
'create table "price" ("id" text not null, "title" text, "price_set_id" text not null, "money_amount_id" text not null, "rules_count" integer not null default 0, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "price_pkey" primary key ("id"));' 'create table "price" ("id" text not null, "title" text, "price_set_id" text not null, "money_amount_id" text not null, "raw_amount" jsonb not null, "rules_count" integer not null default 0, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "price_pkey" primary key ("id"));'
) )
this.addSql( this.addSql(
+7 -2
View File
@@ -1,8 +1,10 @@
import { DAL } from "@medusajs/types" import { DAL } from "@medusajs/types"
import { import {
BigNumber,
createPsqlIndexStatementHelper, createPsqlIndexStatementHelper,
DALUtils, DALUtils,
generateEntityId, generateEntityId,
MikroOrmBigNumberProperty,
} from "@medusajs/utils" } from "@medusajs/utils"
import { import {
BeforeCreate, BeforeCreate,
@@ -63,8 +65,11 @@ export default class Price {
@Property({ columnType: "text" }) @Property({ columnType: "text" })
currency_code: string currency_code: string
@Property({ columnType: "numeric", serializer: Number }) @MikroOrmBigNumberProperty()
amount: number amount: BigNumber | number
@Property({ columnType: "jsonb" })
raw_amount: Record<string, unknown>
@Property({ columnType: "numeric", nullable: true }) @Property({ columnType: "numeric", nullable: true })
min_quantity: number | null = null min_quantity: number | null = null