import type { PathDetailsForm, PathDetailsVO } from '../pathDetails/types';
import type { WcsBaseEntity } from '../types';

export type PathInfoId = string | number;
export type PathInfoIds = PathInfoId[];

export interface PathInfoVO {
  /**
   * 主键标识
   */
  objId: string | number;

  /**
   * 路径编号
   */
  pathCode: string;

  /**
   * 路径名称
   */
  pathName: string;

  /**
   * 是否标识：1-是；0-否
   */
  isFlag: number;

  /**
   * 备注
   */
  remark: string;

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

  /** 路径明细列表 */
  details: PathDetailsVO[];

  /** 创建人 */
  createBy: string | number;
  /** 更新人 */
  updateBy: string | number;
  /** 创建人名称 */
  createByName: string;
  /** 更新人名称 */
  updateByName: string;
}

export interface PathInfoForm extends WcsBaseEntity {
  /**
   * 主键标识
   */
  objId?: string | number;

  /**
   * 路径编号
   */
  pathCode?: string;

  /**
   * 路径名称
   */
  pathName?: string;

  /**
   * 是否标识：1-是；0-否
   */
  isFlag?: number;

  /**
   * 备注
   */
  remark?: string;

  /**
   * 路径明细列表
   * 主子表保存时随主表一并提交，避免页面侧使用 any 绕过类型检查。
   */
  details?: PathDetailsForm[];
}

export interface PathInfoQuery extends PageQuery {
  /**
   * 路径编号
   */
  pathCode?: string;

  /**
   * 路径名称
   */
  pathName?: string;

  /**
   * 是否标识：1-是；0-否
   */
  isFlag?: number;

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

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