import { Type } from 'class-transformer'; import { IsIn, IsInt, IsOptional, IsString, Max, Min } from 'class-validator'; export class PaginationQueryDto { @IsOptional() @Type(() => Number) @IsInt() @Min(1) page?: number = 1; @IsOptional() @Type(() => Number) @IsInt() @Min(1) @Max(100) pageSize?: number = 20; } export class AdminUsersQueryDto extends PaginationQueryDto { @IsOptional() @IsString() phone?: string; @IsOptional() @IsString() userNo?: string; @IsOptional() @IsString() deviceKey?: string; @IsOptional() @IsIn(['0', '1']) phoneVerified?: string; @IsOptional() @Type(() => Number) @IsIn([0, 1]) status?: number; } export class AdminOrdersQueryDto extends PaginationQueryDto { @IsOptional() @IsString() orderNo?: string; @IsOptional() @IsString() status?: string; @IsOptional() @IsString() userId?: string; @IsOptional() @IsString() receiverPhone?: string; @IsOptional() @IsString() createdFrom?: string; @IsOptional() @IsString() createdTo?: string; } export class AdminStoresQueryDto extends PaginationQueryDto { @IsOptional() @IsString() name?: string; @IsOptional() @IsString() status?: string; @IsOptional() @IsString() cityId?: string; @IsOptional() @IsString() partnerId?: string; @IsOptional() @IsString() phone?: string; } export class AdminStoreAccountsQueryDto extends PaginationQueryDto { @IsOptional() @IsString() phone?: string; @IsOptional() @IsString() storeId?: string; @IsOptional() @IsString() status?: string; } export class AdminPartnersQueryDto extends PaginationQueryDto { @IsOptional() @IsString() companyName?: string; @IsOptional() @IsString() contactPhone?: string; } export class AdminPartnerAccountsQueryDto extends PaginationQueryDto { @IsOptional() @IsString() phone?: string; @IsOptional() @IsString() partnerId?: string; @IsOptional() @IsString() status?: string; } export class AdminBenefitCouponsQueryDto extends PaginationQueryDto { @IsOptional() @IsString() couponNo?: string; @IsOptional() @IsString() userId?: string; @IsOptional() @IsString() status?: string; } export class AdminBenefitLedgersQueryDto extends PaginationQueryDto { @IsOptional() @IsString() userId?: string; @IsOptional() @IsString() couponId?: string; @IsOptional() @IsString() type?: string; } export class AdminRedeemRecordsQueryDto extends PaginationQueryDto { @IsOptional() @IsString() redeemNo?: string; @IsOptional() @IsString() storeId?: string; @IsOptional() @IsString() userId?: string; } export class AdminDeliveriesQueryDto extends PaginationQueryDto { @IsOptional() @IsString() provider?: string; @IsOptional() @IsString() trackingNo?: string; @IsOptional() @IsString() orderNo?: string; } export class AdminHqAccountsQueryDto extends PaginationQueryDto { @IsOptional() @IsString() phone?: string; @IsOptional() @IsString() adminRole?: string; @IsOptional() @IsString() status?: string; } export class AdminCitiesQueryDto extends PaginationQueryDto { @IsOptional() @IsString() name?: string; @IsOptional() @IsString() code?: string; @IsOptional() @IsString() status?: string; @IsOptional() @IsString() partnerId?: string; } export class AdminProductsQueryDto extends PaginationQueryDto { @IsOptional() @IsString() name?: string; @IsOptional() @IsString() status?: string; @IsOptional() @IsString() aromaType?: string; } export class AdminProductDetailTemplatesQueryDto extends PaginationQueryDto { @IsOptional() @IsString() name?: string; @IsOptional() @IsString() code?: string; @IsOptional() @IsString() status?: string; @IsOptional() @IsString() aromaType?: string; } export class AdminUserLogsQueryDto extends PaginationQueryDto { @IsOptional() @IsString() userId?: string; @IsOptional() @IsString() phone?: string; @IsOptional() @IsString() userNo?: string; @IsOptional() @IsString() category?: string; @IsOptional() @IsString() eventName?: string; @IsOptional() @IsString() from?: string; @IsOptional() @IsString() to?: string; } export class AdminStoreLogsQueryDto extends PaginationQueryDto { @IsOptional() @IsString() storeId?: string; @IsOptional() @IsString() storeAccountId?: string; @IsOptional() @IsString() phone?: string; @IsOptional() @IsString() storeName?: string; @IsOptional() @IsString() category?: string; @IsOptional() @IsString() eventName?: string; @IsOptional() @IsString() from?: string; @IsOptional() @IsString() to?: string; } export class AdminHqLogsQueryDto extends PaginationQueryDto { @IsOptional() @IsString() hqAccountId?: string; @IsOptional() @IsString() action?: string; @IsOptional() @IsString() refType?: string; @IsOptional() @IsString() from?: string; @IsOptional() @IsString() to?: string; } export class AdminStoreMediaQueryDto extends PaginationQueryDto { @IsOptional() @IsString() storeId?: string; @IsOptional() @IsString() mediaType?: string; }