feat(order): Claim and Exchange entities (#7681)
This commit is contained in:
@@ -157,6 +157,13 @@ export class Migration20240604100512 extends Migration {
|
||||
|
||||
|
||||
|
||||
CREATE TYPE return_status_enum AS ENUM (
|
||||
'requested',
|
||||
'received',
|
||||
'partially_received',
|
||||
'canceled'
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "return" (
|
||||
"id" TEXT NOT NULL,
|
||||
"order_id" TEXT NOT NULL,
|
||||
@@ -164,7 +171,7 @@ export class Migration20240604100512 extends Migration {
|
||||
"exchange_id" TEXT NULL,
|
||||
"order_version" INTEGER NOT NULL,
|
||||
"display_id" SERIAL,
|
||||
"status" text NOT NULL,
|
||||
"status" return_status_enum NOT NULL DEFAULT 'requested',
|
||||
"no_notification" boolean NULL,
|
||||
"refund_amount" NUMERIC NULL,
|
||||
"raw_refund_amount" JSONB NULL,
|
||||
@@ -176,16 +183,6 @@ export class Migration20240604100512 extends Migration {
|
||||
"canceled_at" timestamptz NULL,
|
||||
CONSTRAINT "return_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TYPE return_status_enum AS ENUM (
|
||||
'requested',
|
||||
'received',
|
||||
'partially_received',
|
||||
'canceled'
|
||||
);
|
||||
ALTER TABLE "return" ALTER COLUMN status DROP DEFAULT;
|
||||
ALTER TABLE "return" ALTER COLUMN status TYPE return_status_enum USING (status::text::return_status_enum);
|
||||
ALTER TABLE "return" ALTER COLUMN status SET DEFAULT 'requested';
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_return_order_id" ON "return" (
|
||||
order_id
|
||||
@@ -206,6 +203,127 @@ export class Migration20240604100512 extends Migration {
|
||||
display_id
|
||||
)
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "order_exchange" (
|
||||
"id" TEXT NOT NULL,
|
||||
"order_id" TEXT NOT NULL,
|
||||
"return_id" TEXT NULL,
|
||||
"order_version" INTEGER NOT NULL,
|
||||
"display_id" SERIAL,
|
||||
"no_notification" BOOLEAN NULL,
|
||||
"refund_amount" NUMERIC NULL,
|
||||
"raw_refund_amount" JSONB NULL,
|
||||
"allow_backorder" BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
"difference_due" NUMERIC NULL,
|
||||
"raw_difference_due" JSONB NULL,
|
||||
"metadata" JSONB NULL,
|
||||
"created_at" timestamptz NOT NULL DEFAULT now(),
|
||||
"updated_at" timestamptz NOT NULL DEFAULT now(),
|
||||
"deleted_at" timestamptz NULL,
|
||||
"canceled_at" timestamptz NULL,
|
||||
CONSTRAINT "order_exchange_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_exchange_display_id" ON "order_exchange" ("display_id")
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_exchange_deleted_at" ON "order_exchange" ("deleted_at")
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_exchange_order_id" ON "order_exchange" ("order_id")
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_exchange_return_id" ON "order_exchange" ("return_id")
|
||||
WHERE return_id IS NOT NULL AND deleted_at IS NOT NULL;
|
||||
|
||||
|
||||
|
||||
CREATE TYPE order_claim_type_enum AS ENUM (
|
||||
'refund',
|
||||
'replace'
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "order_claim" (
|
||||
"id" TEXT NOT NULL,
|
||||
"order_id" TEXT NOT NULL,
|
||||
"return_id" TEXT NULL,
|
||||
"order_version" INTEGER NOT NULL,
|
||||
"display_id" SERIAL,
|
||||
"type" order_claim_type_enum NOT NULL,
|
||||
"no_notification" BOOLEAN NULL,
|
||||
"refund_amount" NUMERIC NULL,
|
||||
"raw_refund_amount" JSONB NULL,
|
||||
"metadata" JSONB NULL,
|
||||
"created_at" timestamptz NOT NULL DEFAULT now(),
|
||||
"updated_at" timestamptz NOT NULL DEFAULT now(),
|
||||
"deleted_at" timestamptz NULL,
|
||||
"canceled_at" timestamptz NULL,
|
||||
CONSTRAINT "order_claim_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_claim_display_id" ON "order_claim" ("display_id")
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_claim_deleted_at" ON "order_claim" ("deleted_at")
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_claim_order_id" ON "order_claim" ("order_id")
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_claim_return_id" ON "order_claim" ("return_id")
|
||||
WHERE return_id IS NOT NULL AND deleted_at IS NOT NULL;
|
||||
|
||||
|
||||
|
||||
CREATE TYPE claim_reason_enum AS ENUM (
|
||||
'missing_item',
|
||||
'wrong_item',
|
||||
'production_failure',
|
||||
'other'
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "order_claim_item" (
|
||||
"id" TEXT NOT NULL,
|
||||
"claim_id" TEXT NOT NULL,
|
||||
"item_id" TEXT NOT NULL,
|
||||
"reason" claim_reason_enum NOT NULL,
|
||||
"note" TEXT NULL,
|
||||
"metadata" JSONB NULL,
|
||||
"created_at" timestamptz NOT NULL DEFAULT now(),
|
||||
"updated_at" timestamptz NOT NULL DEFAULT now(),
|
||||
"deleted_at" timestamptz NULL,
|
||||
CONSTRAINT "order_claim_item_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_claim_item_deleted_at" ON "order_claim_item" ("deleted_at")
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_claim_item_claim_id" ON "order_claim_item" ("claim_id")
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_claim_item_item_id" ON "order_claim_item" ("item_id")
|
||||
WHERE deleted_at IS NOT NULL;
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "order_claim_item_image" (
|
||||
"id" TEXT NOT NULL,
|
||||
"claim_item_id" TEXT NOT NULL,
|
||||
"url" TEXT NOT NULL,
|
||||
"metadata" JSONB NULL,
|
||||
"created_at" timestamptz NOT NULL DEFAULT now(),
|
||||
"updated_at" timestamptz NOT NULL DEFAULT now(),
|
||||
"deleted_at" timestamptz NULL,
|
||||
CONSTRAINT "order_claim_item_image_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_claim_item_image_claim_item_id" ON "order_claim_item_image" ("claim_item_id")
|
||||
WHERE "deleted_at" IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "IDX_order_claim_item_image_deleted_at" ON "order_claim_item_image" ("deleted_at")
|
||||
WHERE "deleted_at" IS NOT NULL;
|
||||
`
|
||||
this.addSql(sql)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user