feat(order): Add display_id to order table (#7242)

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
This commit is contained in:
Oli Juhl
2024-05-05 19:43:13 +02:00
committed by GitHub
parent 5443c69794
commit cf9605fe6f
6 changed files with 633 additions and 132 deletions

View File

@@ -1,5 +1,6 @@
export const defaultAdminOrderFields = [
"id",
"display_id",
"status",
"version",
"summary",
@@ -10,6 +11,7 @@ export const defaultAdminOrderFields = [
export const defaultAdminRetrieveOrderFields = [
"id",
"display_id",
"status",
"version",
"summary",

View File

@@ -122,6 +122,7 @@ moduleIntegrationTestRunner({
const expectation = expect.objectContaining({
id: expect.stringContaining("order_"),
version: 1,
display_id: 1,
summary: expect.objectContaining({
// TODO: add all summary fields
}),
@@ -203,6 +204,7 @@ moduleIntegrationTestRunner({
const getOrder = await service.retrieve(createdOrder.id, {
select: [
"id",
"display_id",
"version",
"items.id",
"summary",

View File

@@ -30,6 +30,7 @@ export class Migration20240219102530 extends Migration {
CREATE TABLE IF NOT EXISTS "order" (
"id" TEXT NOT NULL,
"region_id" TEXT NULL,
"display_id" SERIAL,
"customer_id" TEXT NULL,
"version" INTEGER NOT NULL DEFAULT 1,
"sales_channel_id" TEXT NULL,
@@ -111,6 +112,11 @@ export class Migration20240219102530 extends Migration {
"DROP NOT NULL"
)}
CREATE INDEX IF NOT EXISTS "IDX_order_display_id" ON "order" (
display_id
)
WHERE deleted_at IS NOT NULL;
CREATE INDEX IF NOT EXISTS "IDX_order_region_id" ON "order" (
region_id
)

View File

@@ -28,6 +28,12 @@ type OptionalOrderProps =
| "billing_address"
| DAL.EntityDateColumns
const DisplayIdIndex = createPsqlIndexStatementHelper({
tableName: "order",
columns: "display_id",
where: "deleted_at IS NOT NULL",
})
const RegionIdIndex = createPsqlIndexStatementHelper({
tableName: "order",
columns: "region_id",
@@ -83,6 +89,10 @@ export default class Order {
@PrimaryKey({ columnType: "text" })
id: string
@Property({ autoincrement: true, primary: false })
@DisplayIdIndex.MikroORMIndex()
display_id: number
@Property({
columnType: "text",
nullable: true,