v4.0.20版本迭代推广码增加渠道负责人
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
-- v4.0.20:推广码关联合伙人 + 渠道负责人(主合伙人多选)
|
||||
-- Review 后再在生产执行。
|
||||
|
||||
ALTER TABLE `common_promo_code`
|
||||
ADD COLUMN `assoc_partner_account_id` BIGINT UNSIGNED NULL AFTER `owner_user_id`,
|
||||
ADD KEY `idx_common_promo_code_assoc_partner` (`assoc_partner_account_id`),
|
||||
ADD CONSTRAINT `fk_common_promo_code_assoc_partner`
|
||||
FOREIGN KEY (`assoc_partner_account_id`) REFERENCES `partner_account`(`id`) ON DELETE SET NULL;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `promo_code_channel_owner` (
|
||||
`promo_code_id` BIGINT UNSIGNED NOT NULL,
|
||||
`partner_account_id` BIGINT UNSIGNED NOT NULL,
|
||||
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
PRIMARY KEY (`promo_code_id`, `partner_account_id`),
|
||||
KEY `idx_promo_channel_owner_partner` (`partner_account_id`),
|
||||
CONSTRAINT `fk_promo_channel_owner_promo` FOREIGN KEY (`promo_code_id`) REFERENCES `common_promo_code`(`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_promo_channel_owner_partner` FOREIGN KEY (`partner_account_id`) REFERENCES `partner_account`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='推广码渠道负责人(主合伙人)';
|
||||
@@ -1069,31 +1069,49 @@ model StoreCategoryLink {
|
||||
}
|
||||
|
||||
model CommonPromoCode {
|
||||
id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
|
||||
code String @unique @db.VarChar(32)
|
||||
name String @db.VarChar(128)
|
||||
scene PromoCodeScene @default(ONLINE_LINK)
|
||||
qrcodeId String @unique @map("qrcode_id") @db.VarChar(64)
|
||||
status PromoCodeStatus @default(ACTIVE)
|
||||
ownerUserId BigInt? @map("owner_user_id") @db.UnsignedBigInt
|
||||
remark String? @db.VarChar(256)
|
||||
qrcodeResourceId BigInt? @map("qrcode_resource_id") @db.UnsignedBigInt
|
||||
scanCount Int @default(0) @map("scan_count")
|
||||
orderCount Int @default(0) @map("order_count")
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.DateTime(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.DateTime(3)
|
||||
id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
|
||||
code String @unique @db.VarChar(32)
|
||||
name String @db.VarChar(128)
|
||||
scene PromoCodeScene @default(ONLINE_LINK)
|
||||
qrcodeId String @unique @map("qrcode_id") @db.VarChar(64)
|
||||
status PromoCodeStatus @default(ACTIVE)
|
||||
ownerUserId BigInt? @map("owner_user_id") @db.UnsignedBigInt
|
||||
assocPartnerAccountId BigInt? @map("assoc_partner_account_id") @db.UnsignedBigInt
|
||||
remark String? @db.VarChar(256)
|
||||
qrcodeResourceId BigInt? @map("qrcode_resource_id") @db.UnsignedBigInt
|
||||
scanCount Int @default(0) @map("scan_count")
|
||||
orderCount Int @default(0) @map("order_count")
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.DateTime(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.DateTime(3)
|
||||
|
||||
ownerUser User? @relation("PromoOwnerUser", fields: [ownerUserId], references: [id], onDelete: SetNull)
|
||||
qrcodeResource CommonResource? @relation("PromoQrcode", fields: [qrcodeResourceId], references: [id], onDelete: SetNull)
|
||||
ownerUser User? @relation("PromoOwnerUser", fields: [ownerUserId], references: [id], onDelete: SetNull)
|
||||
assocPartner PartnerAccount? @relation("PromoAssocPartner", fields: [assocPartnerAccountId], references: [id], onDelete: SetNull)
|
||||
qrcodeResource CommonResource? @relation("PromoQrcode", fields: [qrcodeResourceId], references: [id], onDelete: SetNull)
|
||||
channelOwners PromoCodeChannelOwner[]
|
||||
attributions UserPromoAttribution[]
|
||||
orders Order[]
|
||||
metricEvents LogPromoEvent[]
|
||||
|
||||
@@index([ownerUserId])
|
||||
@@index([assocPartnerAccountId])
|
||||
@@index([scene, status])
|
||||
@@map("common_promo_code")
|
||||
}
|
||||
|
||||
/// 推广码渠道负责人(主合伙人,可多选)
|
||||
model PromoCodeChannelOwner {
|
||||
promoCodeId BigInt @map("promo_code_id") @db.UnsignedBigInt
|
||||
partnerAccountId BigInt @map("partner_account_id") @db.UnsignedBigInt
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.DateTime(3)
|
||||
|
||||
promoCode CommonPromoCode @relation(fields: [promoCodeId], references: [id], onDelete: Cascade)
|
||||
partnerAccount PartnerAccount @relation("PromoChannelOwner", fields: [partnerAccountId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@id([promoCodeId, partnerAccountId])
|
||||
@@index([partnerAccountId])
|
||||
@@map("promo_code_channel_owner")
|
||||
}
|
||||
|
||||
model CommonCity {
|
||||
id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
|
||||
code String @unique @db.VarChar(16)
|
||||
@@ -1287,6 +1305,8 @@ model PartnerAccount {
|
||||
assocUsers User[] @relation("UserPartnerAssoc")
|
||||
assocSubUsers User[] @relation("UserSubAccountAssoc")
|
||||
userNotes PartnerUserNote[]
|
||||
promoAssocCodes CommonPromoCode[] @relation("PromoAssocPartner")
|
||||
promoChannelOwnerLinks PromoCodeChannelOwner[] @relation("PromoChannelOwner")
|
||||
assocQrcodeResource CommonResource? @relation("PartnerAssocQrcode", fields: [assocQrcodeResourceId], references: [id], onDelete: SetNull)
|
||||
activityPoster ActivityPoster? @relation(fields: [activityPosterId], references: [id], onDelete: SetNull)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user