- NestJS backend: Prisma + PostgreSQL, JWT auth, CRUD for goods/categories/countries/tags/positions, SDS sync with cron, public API, Swagger docs - Vue3 Admin: Element Plus, goods/categories/countries/tags/positions/sync management pages, batch operations, login with JWT - Nuxt4 Website: product-center page with sidebar navigation, country filter, search, product grid, pagination, skeleton loading - Nitro proxy routes for backend API - 54 backend tests passing - Updated docs and README
51 lines
869 B
TypeScript
51 lines
869 B
TypeScript
import { ApiProperty } from '@nestjs/swagger';
|
|
import {
|
|
IsInt,
|
|
IsOptional,
|
|
IsString,
|
|
Min,
|
|
} from 'class-validator';
|
|
|
|
export class UpdateGoodDto {
|
|
@ApiProperty({ required: false })
|
|
@IsOptional()
|
|
@IsString()
|
|
goodName?: string;
|
|
|
|
@ApiProperty({ required: false })
|
|
@IsOptional()
|
|
@IsInt()
|
|
@Min(1)
|
|
originGoodId?: number;
|
|
|
|
@ApiProperty({ required: false })
|
|
@IsOptional()
|
|
@IsInt()
|
|
@Min(1)
|
|
countryId?: number;
|
|
|
|
@ApiProperty({ required: false })
|
|
@IsOptional()
|
|
@IsInt()
|
|
@Min(1)
|
|
categoryId?: number;
|
|
|
|
@ApiProperty({ required: false, nullable: true })
|
|
@IsOptional()
|
|
@IsInt()
|
|
@Min(1)
|
|
tagId?: number | null;
|
|
|
|
@ApiProperty({ required: false, nullable: true })
|
|
@IsOptional()
|
|
@IsInt()
|
|
@Min(1)
|
|
positionId?: number | null;
|
|
|
|
@ApiProperty({ required: false })
|
|
@IsOptional()
|
|
@IsInt()
|
|
@Min(0)
|
|
goodPriority?: number;
|
|
}
|