| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- import { z } from 'zod';
- // 用户创建订单DTO - 不包含userId字段,用户ID从认证信息中自动设置
- export const UserCreateOrderDto = z.object({
- orderNo: z.string().min(1, '订单号不能为空').max(50, '订单号最多50个字符').openapi({
- description: '订单号',
- example: 'ORD20240101123456'
- }),
- authCode: z.string().max(32, '付款码最多32个字符').nullable().optional().openapi({
- description: '付款码',
- example: '12345678901234567890123456789012'
- }),
- cardNo: z.string().max(32, '卡号最多32个字符').nullable().optional().openapi({
- description: '卡号',
- example: '6222********1234'
- }),
- sjtCardNo: z.string().max(32, '盛京通卡号最多32个字符').nullable().optional().openapi({
- description: '盛京通卡号',
- example: 'SJT1234567890'
- }),
- amount: z.coerce.number<number>().min(0, '订单金额不能小于0').max(999999.99, '订单金额不能超过999999.99').openapi({
- description: '订单金额',
- example: 99.99
- }),
- costAmount: z.coerce.number<number>().min(0, '成本金额不能小于0').max(999999.99, '成本金额不能超过999999.99').default(0).optional().openapi({
- description: '成本金额',
- example: 50.00
- }),
- freightAmount: z.coerce.number<number>().min(0, '运费不能小于0').max(999999.99, '运费不能超过999999.99').default(0).optional().openapi({
- description: '运费',
- example: 10.00
- }),
- discountAmount: z.coerce.number<number>().min(0, '优惠金额不能小于0').max(999999.99, '优惠金额不能超过999999.99').default(0).optional().openapi({
- description: '优惠金额',
- example: 5.00
- }),
- payAmount: z.coerce.number<number>().min(0, '实际支付金额不能小于0').max(999999.99, '实际支付金额不能超过999999.99').default(0).optional().openapi({
- description: '实际支付金额',
- example: 94.99
- }),
- deviceNo: z.string().max(255, '设备编号最多255个字符').nullable().optional().openapi({
- description: '设备编号',
- example: 'DEV001234'
- }),
- description: z.string().max(255, '订单描述最多255个字符').nullable().optional().openapi({
- description: '订单描述',
- example: '购买商品'
- }),
- goodsDetail: z.string().max(2000, '订单详情最多2000个字符').nullable().optional().openapi({
- description: '订单详情(json格式)',
- example: '[{"goodsId":1,"name":"商品1","price":99.99,"num":1}]'
- }),
- goodsTag: z.string().max(255, '订单优惠标记最多255个字符').nullable().optional().openapi({
- description: '订单优惠标记',
- example: '满100减5'
- }),
- address: z.string().max(255, '地址最多255个字符').nullable().optional().openapi({
- description: '地址',
- example: '北京市朝阳区xxx路xxx号'
- }),
- orderType: z.coerce.number().int().min(1, '订单类型最小为1').max(2, '订单类型最大为2').openapi({
- description: '订单类型 1实物订单 2虚拟订单',
- example: 1
- }),
- payType: z.coerce.number().int().min(0, '支付类型最小为0').max(2, '支付类型最大为2').openapi({
- description: '支付类型1积分2礼券',
- example: 1
- }),
- payState: z.coerce.number().int().min(0, '支付状态最小为0').max(5, '支付状态最大为5').openapi({
- description: '支付状态 0未支付1支付中2支付成功3已退款4支付失败5订单关闭',
- example: 0
- }),
- state: z.coerce.number().int().min(0, '订单状态最小为0').max(3, '订单状态最大为3').openapi({
- description: '订单状态 0未发货1已发货2收货成功3已退货',
- example: 0
- }),
- userPhone: z.string().max(50, '用户手机号最多50个字符').nullable().optional().openapi({
- description: '用户手机号',
- example: '13800138000'
- }),
- merchantId: z.coerce.number().int().positive('必须是正整数').openapi({
- description: '商户id',
- example: 1
- }),
- merchantNo: z.coerce.number().int().positive('必须是正整数').nullable().optional().openapi({
- description: '商户号',
- example: 1001
- }),
- supplierId: z.coerce.number().int().positive('必须是正整数').openapi({
- description: '供货商id',
- example: 1
- }),
- addressId: z.coerce.number().int().positive('必须是正整数').openapi({
- description: '地址id',
- example: 1
- }),
- receiverMobile: z.string().max(255, '收货人手机号最多255个字符').nullable().optional().openapi({
- description: '收货人手机号',
- example: '13800138000'
- }),
- recevierName: z.string().max(255, '收货人姓名最多255个字符').nullable().optional().openapi({
- description: '收货人姓名',
- example: '张三'
- }),
- recevierProvince: z.coerce.number().int().positive('必须是正整数').optional().openapi({
- description: '收货人所在省',
- example: 110000
- }),
- recevierCity: z.coerce.number().int().positive('必须是正整数').optional().openapi({
- description: '收货人所在市',
- example: 110100
- }),
- recevierDistrict: z.coerce.number().int().positive('必须是正整数').optional().openapi({
- description: '收货人所在区',
- example: 110105
- }),
- recevierTown: z.coerce.number().int().positive('必须是正整数').optional().openapi({
- description: '收货人所在街道',
- example: 110105001
- }),
- refundTime: z.coerce.date().nullable().optional().openapi({
- description: '退款时间',
- example: '2024-01-01T12:00:00Z'
- }),
- closeTime: z.coerce.date().nullable().optional().openapi({
- description: '订单关闭时间',
- example: '2024-01-01T12:00:00Z'
- }),
- remark: z.string().max(255, '管理员备注信息最多255个字符').nullable().optional().openapi({
- description: '管理员备注信息',
- example: '请尽快发货'
- })
- });
- // 用户更新订单DTO - 不包含userId字段
- export const UserUpdateOrderDto = UserCreateOrderDto.partial();
|