import { z } from '@hono/zod-openapi';

// 父商品精简Schema - 用于父子商品关系
export const ParentGoodsSchema = z.object({
  id: z.number().int().positive().openapi({ description: '父商品ID' }),
  name: z.string().min(1, '商品名称不能为空').max(255, '商品名称最多255个字符').openapi({
    description: '父商品名称',
    example: 'iPhone系列'
  }),
  price: z.coerce.number().multipleOf(0.01, '价格最多保留两位小数').min(0, '价格不能为负数').default(0).openapi({
    description: '售卖价',
    example: 5999.99
  }),
  costPrice: z.coerce.number().multipleOf(0.01, '成本价最多保留两位小数').min(0, '成本价不能为负数').default(0).openapi({
    description: '成本价',
    example: 4999.99
  }),
  stock: z.coerce.number().int().nonnegative('库存必须为非负数').default(0).openapi({
    description: '库存',
    example: 100
  }),
  imageFileId: z.number().int().positive().nullable().openapi({
    description: '商品主图文件ID',
    example: 1
  }),
  goodsType: z.number().int().min(1).max(2).default(1).openapi({
    description: '订单类型 1实物产品 2虚拟产品',
    example: 1
  }),
  spuId: z.number().int().nonnegative('主商品ID必须为非负数').default(0).openapi({
    description: '主商品ID（父商品的spuId总是0）',
    example: 0
  })
});