export interface GetFileItem {
  /** 文件路径 */
  filePath: string;
  /** 文件名称 */
  fileName: string;
  /** 文件ID */
  id: string;
  /** 文件URL(由addingPrefixToFile函数添加) */
  url: string;
  /** 文件名称(由addingPrefixToFile函数添加) */
  name: string;
  [key: string]: any;
}

export interface BaseParams {
  /** 文件类型 */
  eqType: number;
}

export interface SingleGetFileOptions extends BaseParams {
  /** 外键ID */
  eqForeignKey: string;
  /** 是否单文件获取 */
  single?: true;
}

export interface MultipleGetFileOptions extends BaseParams {
  /** dataSource 中外键ID的 key */
  foreignKey: string;
  /** 是否单文件获取 */
  single: false;
  /** 数据源 */
  dataSource: Record<string, any>[];
}

export type SingleFileResponse = GetFileItem[];

export type MultipleFileResponse = Array<Record<string, any> & { files: GetFileItem[] }>;

export interface GetFileFunction {
  (options: SingleGetFileOptions): Promise<SingleFileResponse>;
  (options: MultipleGetFileOptions): Promise<MultipleFileResponse>;
}

/**
 * 获取文件
 */
export default function useGetFile(returnType: "array"): [boolean, GetFileFunction];
export default function useGetFile(returnType?: "object"): { loading: boolean; getFile: GetFileFunction };
