import { OrderItemVO } from '@/api/system/physical/orderItem/types';

export interface OrderVO {
  /**
   * 主键ID
   */
  id: string | number;

  /**
   * 用户昵称
   */
  userNickname: string;

  /**
   * 真实姓名
   */
  userRealName: string;

  /**
   * 身份证号
   */
  userIdCard: string | number;

  /**
   * 账号ID（关联用户表）
   */
  userAccountId: string | number;

  /**
   * 用户收货地址（省市区+详细地址）
   */
  userAddress: string;

  /**
   * 订单编号（唯一）
   */
  orderSn: string;

  /**
   * 订单总金额（元）
   */
  totalAmount: number;

  /**
   * 订单状态：pending_payment=待支付, paid=已支付, shipped=已发货, completed=已完成, cancelled=已取消
   */
  status: string;

  /**
   * 创建人
   */
  createdBy: string;

  /**
   * 创建时间
   */
  createdAt: string;

  /**
   * 最后更新人
   */
  updatedBy: string;

  /**
   * 最后更新时间
   */
  updatedAt: string;

  /**
   * 商品列表
   */
  physicalOrderItemVoList?: OrderItemVO[];
}

export interface OrderForm extends BaseEntity {
  /**
   * 主键ID
   */
  id?: string | number;

  /**
   * 用户昵称
   */
  userNickname?: string;

  /**
   * 真实姓名
   */
  userRealName?: string;

  /**
   * 身份证号
   */
  userIdCard?: string | number;

  /**
   * 账号ID（关联用户表）
   */
  userAccountId?: string | number;

  /**
   * 用户收货地址（省市区+详细地址）
   */
  userAddress?: string;

  /**
   * 订单编号（唯一）
   */
  orderSn?: string;

  /**
   * 订单总金额（元）
   */
  totalAmount?: number;

  /**
   * 订单状态：pending_payment=待支付, paid=已支付, shipped=已发货, completed=已完成, cancelled=已取消
   */
  status?: string;

  /**
   * 创建人
   */
  createdBy?: string;

  /**
   * 创建时间
   */
  createdAt?: string;

  /**
   * 最后更新人
   */
  updatedBy?: string;

  /**
   * 最后更新时间
   */
  updatedAt?: string;
}

export interface OrderQuery extends PageQuery {
  /**
   * 用户昵称
   */
  userNickname?: string;

  /**
   * 真实姓名
   */
  userRealName?: string;

  /**
   * 身份证号
   */
  userIdCard?: string | number;

  /**
   * 账号ID（关联用户表）
   */
  userAccountId?: string | number;

  /**
   * 用户收货地址（省市区+详细地址）
   */
  userAddress?: string;

  /**
   * 订单编号（唯一）
   */
  orderSn?: string;

  /**
   * 订单总金额（元）
   */
  totalAmount?: number;

  /**
   * 订单状态：pending_payment=待支付, paid=已支付, shipped=已发货, completed=已完成, cancelled=已取消
   */
  status?: string;

  /**
   * 创建人
   */
  createdBy?: string;

  /**
   * 创建时间
   */
  createdAt?: string;

  /**
   * 最后更新人
   */
  updatedBy?: string;

  /**
   * 最后更新时间
   */
  updatedAt?: string;

  /**
   * 日期范围参数
   */
  params?: any;
}
