v4.0.20版本迭代推广码增加渠道负责人

This commit is contained in:
2026-09-17 09:06:29 +08:00
parent 1867e7ea55
commit b9921b1a75
36 changed files with 12138 additions and 112 deletions
@@ -1,7 +1,14 @@
import { Type } from 'class-transformer';
import { IsIn, IsNotEmpty, IsOptional, IsString, MaxLength } from 'class-validator';
import { Transform, Type } from 'class-transformer';
import { IsArray, IsIn, IsNotEmpty, IsOptional, IsString, MaxLength, ValidateIf } from 'class-validator';
import { PromoCodeScene, PromoCodeStatus } from '@dukang/shared-types';
function toOptionalNullableString(value: unknown): string | null | undefined {
if (value === undefined) return undefined;
if (value === null) return null;
const t = String(value).trim();
return t.length ? t : null;
}
export class PromoCodeListQueryDto {
@IsOptional()
@Type(() => Number)
@@ -30,6 +37,14 @@ export class PromoCodeListQueryDto {
@IsOptional()
@IsString()
ownerUserId?: string;
@IsOptional()
@IsString()
channelOwnerPartnerId?: string;
@IsOptional()
@IsString()
assocPartnerAccountId?: string;
}
export class CreatePromoCodeDto {
@@ -51,6 +66,17 @@ export class CreatePromoCodeDto {
@IsString()
ownerUserId?: string;
@IsOptional()
@IsArray()
@IsString({ each: true })
channelOwnerPartnerIds?: string[];
@IsOptional()
@Transform(({ value }) => toOptionalNullableString(value))
@ValidateIf((_, v) => v !== null && v !== undefined)
@IsString()
assocPartnerAccountId?: string | null;
@IsOptional()
@IsString()
@MaxLength(256)
@@ -77,6 +103,17 @@ export class UpdatePromoCodeDto {
@IsString()
ownerUserId?: string | null;
@IsOptional()
@IsArray()
@IsString({ each: true })
channelOwnerPartnerIds?: string[];
@IsOptional()
@Transform(({ value }) => toOptionalNullableString(value))
@ValidateIf((_, v) => v !== null && v !== undefined)
@IsString()
assocPartnerAccountId?: string | null;
@IsOptional()
@IsString()
@MaxLength(256)