feat(customer): add softdelete/restore (#6203)

This commit is contained in:
Sebastian Rindom
2024-01-25 12:38:02 +00:00
committed by GitHub
parent e84847be36
commit e9435a8680
8 changed files with 519 additions and 21 deletions
@@ -1,6 +1,7 @@
import { DAL } from "@medusajs/types"
import { generateEntityId } from "@medusajs/utils"
import {
Cascade,
BeforeCreate,
ManyToOne,
Entity,
@@ -32,6 +33,7 @@ export default class CustomerGroupCustomer {
fieldName: "customer_id",
index: "IDX_customer_group_customer_customer_id",
nullable: true,
cascade: [Cascade.REMOVE],
})
customer: Customer | null
@@ -40,6 +42,7 @@ export default class CustomerGroupCustomer {
fieldName: "customer_group_id",
index: "IDX_customer_group_customer_group_id",
nullable: true,
cascade: [Cascade.REMOVE],
})
customer_group: CustomerGroup | null
@@ -1,5 +1,5 @@
import { DAL } from "@medusajs/types"
import { generateEntityId } from "@medusajs/utils"
import { DALUtils, generateEntityId } from "@medusajs/utils"
import {
BeforeCreate,
Entity,
@@ -9,13 +9,15 @@ import {
Property,
ManyToMany,
Collection,
Filter,
} from "@mikro-orm/core"
import Customer from "./customer"
import CustomerGroupCustomer from "./customer-group-customer"
type OptionalGroupProps = DAL.EntityDateColumns // TODO: To be revisited when more clear
type OptionalGroupProps = DAL.SoftDeletableEntityDateColumns // TODO: To be revisited when more clear
@Entity({ tableName: "customer_group" })
@Filter(DALUtils.mikroOrmSoftDeletableFilterOptions)
export default class CustomerGroup {
[OptionalProps]: OptionalGroupProps
@@ -52,6 +54,9 @@ export default class CustomerGroup {
})
updated_at: Date
@Property({ columnType: "timestamptz", nullable: true })
deleted_at: Date | null = null
@BeforeCreate()
onCreate() {
this.id = generateEntityId(this.id, "cusgroup")
+4 -2
View File
@@ -1,10 +1,11 @@
import { DAL } from "@medusajs/types"
import { generateEntityId } from "@medusajs/utils"
import { DALUtils, generateEntityId } from "@medusajs/utils"
import {
BeforeCreate,
Cascade,
Collection,
Entity,
Filter,
Index,
ManyToMany,
ManyToOne,
@@ -23,9 +24,10 @@ type OptionalCustomerProps =
| "addresses"
| "default_shipping_address"
| "default_billing_address"
| DAL.EntityDateColumns
| DAL.SoftDeletableEntityDateColumns
@Entity({ tableName: "customer" })
@Filter(DALUtils.mikroOrmSoftDeletableFilterOptions)
export default class Customer {
[OptionalProps]?: OptionalCustomerProps