Browse Source

🔧 chore(products): 删除商品相关实体和Schema文件

- 删除goods.entity.ts文件,移除商品数据库实体定义
- 删除goods.schema.ts文件,移除商品数据验证Schema定义
yourname 4 months ago
parent
commit
eac847c66b

+ 0 - 81
src/server/modules/products/goods.entity.ts

@@ -1,81 +0,0 @@
-import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm';
-import { File } from '@/server/modules/files/file.entity';
-
-@Entity('goods')
-export class Goods {
-  @PrimaryGeneratedColumn({ unsigned: true })
-  id!: number;
-
-  @Column({ name: 'name', type: 'varchar', length: 255, comment: '商品名称' })
-  name!: string;
-
-  @Column({ name: 'price', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '售卖价' })
-  price!: number;
-
-  @Column({ name: 'cost_price', type: 'decimal', precision: 10, scale: 2, default: 0.00, comment: '成本价' })
-  costPrice!: number;
-
-  @Column({ name: 'sales_num', type: 'bigint', default: 0, comment: '销售数量' })
-  salesNum!: number;
-
-  @Column({ name: 'click_num', type: 'bigint', default: 0, comment: '点击次数' })
-  clickNum!: number;
-
-  @Column({ name: 'category_id1', type: 'int', default: 0, comment: '一级类别id' })
-  categoryId1!: number;
-
-  @Column({ name: 'category_id2', type: 'int', default: 0, comment: '二级类别id' })
-  categoryId2!: number;
-
-  @Column({ name: 'category_id3', type: 'int', default: 0, comment: '三级类别id' })
-  categoryId3!: number;
-
-  @Column({ name: 'goods_type', type: 'int', default: 1, comment: '订单类型 1实物产品 2虚拟产品' })
-  goodsType!: number;
-
-  @Column({ name: 'supplier_id', type: 'int', nullable: true, comment: '所属供应商id' })
-  supplierId!: number | null;
-
-  @Column({ name: 'image', type: 'varchar', length: 255, nullable: true, comment: '商品主图' })
-  image!: string | null;
-
-  @Column({ name: 'slide_image', type: 'varchar', length: 2000, nullable: true, comment: '商品轮播(多个用,隔开)' })
-  slideImage!: string | null;
-
-  @Column({ name: 'detail', type: 'text', nullable: true, comment: '商品详情' })
-  detail!: string | null;
-
-  @Column({ name: 'instructions', type: 'varchar', length: 255, nullable: true, comment: '简介' })
-  instructions!: string | null;
-
-  @Column({ name: 'sort', type: 'int', default: 0, comment: '排序' })
-  sort!: number;
-
-  @Column({ name: 'state', type: 'int', default: 1, comment: '状态1可用2不可用' })
-  state!: number;
-
-  @Column({ name: 'stock', type: 'bigint', default: 0, comment: '库存' })
-  stock!: number;
-
-  @Column({ name: 'spu_id', type: 'int', default: 0, comment: '主商品ID' })
-  spuId!: number;
-
-  @Column({ name: 'spu_name', type: 'varchar', length: 255, nullable: true, comment: '主商品名称' })
-  spuName!: string | null;
-
-  @Column({ name: 'lowest_buy', type: 'int', default: 1, comment: '最小起购量' })
-  lowestBuy!: number;
-
-  @Column({ name: 'image_file_id', type: 'int', unsigned: true, nullable: true, comment: '商品主图文件ID' })
-  imageFileId!: number | null;
-
-  @ManyToOne(() => File, { nullable: true })
-  @JoinColumn({ name: 'image_file_id', referencedColumnName: 'id' })
-  imageFile!: File | null;
-
-  @Column({ name: 'created_at', type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', comment: '创建时间' })
-  createdAt!: Date;
-
-  @Column({ name: 'updated_at', type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', onUpdate: 'CURRENT_TIMESTAMP', comment: '更新时间' })
-  updatedAt!: Date;
-}

+ 0 - 270
src/server/modules/products/goods.schema.ts

@@ -1,270 +0,0 @@
-import { z } from '@hono/zod-openapi';
-
-// 商品信息Schema
-export const GoodsSchema = z.object({
-  id: z.number().int().positive().openapi({
-    description: '商品ID',
-    example: 1
-  }),
-  name: z.string().max(255).openapi({
-    description: '商品名称',
-    example: '精美商品'
-  }),
-  price: z.number().multipleOf(0.01).openapi({
-    description: '售卖价',
-    example: 99.99
-  }),
-  costPrice: z.number().multipleOf(0.01).openapi({
-    description: '成本价',
-    example: 50.00
-  }),
-  salesNum: z.number().int().min(0).openapi({
-    description: '销售数量',
-    example: 100
-  }),
-  clickNum: z.number().int().min(0).openapi({
-    description: '点击次数',
-    example: 1000
-  }),
-  categoryId1: z.number().int().min(0).openapi({
-    description: '一级类别id',
-    example: 1
-  }),
-  categoryId2: z.number().int().min(0).openapi({
-    description: '二级类别id',
-    example: 2
-  }),
-  categoryId3: z.number().int().min(0).openapi({
-    description: '三级类别id',
-    example: 3
-  }),
-  goodsType: z.number().int().min(1).max(2).openapi({
-    description: '订单类型 1实物产品 2虚拟产品',
-    example: 1
-  }),
-  supplierId: z.number().int().positive().nullable().openapi({
-    description: '所属供应商id',
-    example: 1
-  }),
-  image: z.string().max(255).nullable().openapi({
-    description: '商品主图',
-    example: 'https://example.com/image.jpg'
-  }),
-  slideImage: z.string().max(2000).nullable().openapi({
-    description: '商品轮播图(多个用,隔开)',
-    example: 'image1.jpg,image2.jpg,image3.jpg'
-  }),
-  detail: z.string().nullable().openapi({
-    description: '商品详情',
-    example: '<p>商品详细描述</p>'
-  }),
-  instructions: z.string().max(255).nullable().openapi({
-    description: '简介',
-    example: '优质商品,值得信赖'
-  }),
-  sort: z.number().int().min(0).openapi({
-    description: '排序',
-    example: 0
-  }),
-  state: z.number().int().min(1).max(2).openapi({
-    description: '状态1可用2不可用',
-    example: 1
-  }),
-  stock: z.number().int().min(0).openapi({
-    description: '库存',
-    example: 100
-  }),
-  spuId: z.number().int().min(0).openapi({
-    description: '主商品ID',
-    example: 0
-  }),
-  spuName: z.string().max(255).nullable().openapi({
-    description: '主商品名称',
-    example: null
-  }),
-  lowestBuy: z.number().int().min(1).openapi({
-    description: '最小起购量',
-    example: 1
-  }),
-  imageFileId: z.number().int().positive().nullable().openapi({
-    description: '商品主图文件ID',
-    example: 1
-  }),
-  imageFile: z.object({
-    id: z.number().int().positive().openapi({ description: '文件ID' }),
-    name: z.string().max(255).openapi({ description: '文件名', example: 'product.jpg' }),
-    fullUrl: z.string().openapi({ description: '文件完整URL', example: 'https://example.com/product.jpg' }),
-    type: z.string().nullable().openapi({ description: '文件类型', example: 'image/jpeg' }),
-    size: z.number().nullable().openapi({ description: '文件大小(字节)', example: 102400 })
-  }).nullable().optional().openapi({
-    description: '商品主图文件信息'
-  }),
-  createdAt: z.date().openapi({
-    description: '创建时间',
-    example: '2024-01-01T00:00:00Z'
-  }),
-  updatedAt: z.date().openapi({
-    description: '更新时间',
-    example: '2024-01-01T00:00:00Z'
-  })
-});
-
-// 创建商品DTO
-export const CreateGoodsDto = z.object({
-  name: z.string().max(255).openapi({
-    description: '商品名称',
-    example: '精美商品'
-  }),
-  price: z.coerce.number().multipleOf(0.01).openapi({
-    description: '售卖价',
-    example: 99.99
-  }),
-  costPrice: z.coerce.number().multipleOf(0.01).openapi({
-    description: '成本价',
-    example: 50.00
-  }),
-  categoryId1: z.coerce.number().int().min(0).openapi({
-    description: '一级类别id',
-    example: 1
-  }),
-  categoryId2: z.coerce.number().int().min(0).optional().openapi({
-    description: '二级类别id',
-    example: 2
-  }),
-  categoryId3: z.coerce.number().int().min(0).optional().openapi({
-    description: '三级类别id',
-    example: 3
-  }),
-  goodsType: z.coerce.number().int().min(1).max(2).default(1).openapi({
-    description: '订单类型 1实物产品 2虚拟产品',
-    example: 1
-  }),
-  supplierId: z.coerce.number().int().positive().optional().openapi({
-    description: '所属供应商id',
-    example: 1
-  }),
-  image: z.string().max(255).optional().openapi({
-    description: '商品主图',
-    example: 'https://example.com/image.jpg'
-  }),
-  slideImage: z.string().max(2000).optional().openapi({
-    description: '商品轮播图(多个用,隔开)',
-    example: 'image1.jpg,image2.jpg,image3.jpg'
-  }),
-  detail: z.string().optional().openapi({
-    description: '商品详情',
-    example: '<p>商品详细描述</p>'
-  }),
-  instructions: z.string().max(255).optional().openapi({
-    description: '简介',
-    example: '优质商品,值得信赖'
-  }),
-  sort: z.coerce.number().int().min(0).default(0).openapi({
-    description: '排序',
-    example: 0
-  }),
-  state: z.coerce.number().int().min(1).max(2).default(1).openapi({
-    description: '状态1可用2不可用',
-    example: 1
-  }),
-  stock: z.coerce.number().int().min(0).default(0).openapi({
-    description: '库存',
-    example: 100
-  }),
-  spuId: z.coerce.number().int().min(0).default(0).openapi({
-    description: '主商品ID',
-    example: 0
-  }),
-  spuName: z.string().max(255).optional().openapi({
-    description: '主商品名称',
-    example: null
-  }),
-  lowestBuy: z.coerce.number().int().min(1).default(1).openapi({
-    description: '最小起购量',
-    example: 1
-  }),
-  imageFileId: z.coerce.number().int().positive().optional().openapi({
-    description: '商品主图文件ID',
-    example: 1
-  })
-});
-
-// 更新商品DTO
-export const UpdateGoodsDto = z.object({
-  name: z.string().max(255).optional().openapi({
-    description: '商品名称',
-    example: '精美商品'
-  }),
-  price: z.coerce.number().multipleOf(0.01).optional().openapi({
-    description: '售卖价',
-    example: 99.99
-  }),
-  costPrice: z.coerce.number().multipleOf(0.01).optional().openapi({
-    description: '成本价',
-    example: 50.00
-  }),
-  categoryId1: z.coerce.number().int().min(0).optional().openapi({
-    description: '一级类别id',
-    example: 1
-  }),
-  categoryId2: z.coerce.number().int().min(0).optional().openapi({
-    description: '二级类别id',
-    example: 2
-  }),
-  categoryId3: z.coerce.number().int().min(0).optional().openapi({
-    description: '三级类别id',
-    example: 3
-  }),
-  goodsType: z.coerce.number().int().min(1).max(2).optional().openapi({
-    description: '订单类型 1实物产品 2虚拟产品',
-    example: 1
-  }),
-  supplierId: z.coerce.number().int().positive().optional().openapi({
-    description: '所属供应商id',
-    example: 1
-  }),
-  image: z.string().max(255).optional().openapi({
-    description: '商品主图',
-    example: 'https://example.com/image.jpg'
-  }),
-  slideImage: z.string().max(2000).optional().openapi({
-    description: '商品轮播图(多个用,隔开)',
-    example: 'image1.jpg,image2.jpg,image3.jpg'
-  }),
-  detail: z.string().optional().openapi({
-    description: '商品详情',
-    example: '<p>商品详细描述</p>'
-  }),
-  instructions: z.string().max(255).optional().openapi({
-    description: '简介',
-    example: '优质商品,值得信赖'
-  }),
-  sort: z.coerce.number().int().min(0).optional().openapi({
-    description: '排序',
-    example: 0
-  }),
-  state: z.coerce.number().int().min(1).max(2).optional().openapi({
-    description: '状态1可用2不可用',
-    example: 1
-  }),
-  stock: z.coerce.number().int().min(0).optional().openapi({
-    description: '库存',
-    example: 100
-  }),
-  spuId: z.coerce.number().int().min(0).optional().openapi({
-    description: '主商品ID',
-    example: 0
-  }),
-  spuName: z.string().max(255).optional().openapi({
-    description: '主商品名称',
-    example: null
-  }),
-  lowestBuy: z.coerce.number().int().min(1).optional().openapi({
-    description: '最小起购量',
-    example: 1
-  }),
-  imageFileId: z.coerce.number().int().positive().optional().openapi({
-    description: '商品主图文件ID',
-    example: 1
-  })
-});