import type { PageParam } from '@/api';
import { AppUser } from '@/api/oa/app/user/model';
import { AppField } from '@/api/oa/app/field/model';

/**
 * 应用
 */
export interface App {
  // 应用id
  appId?: number;
  // 应用秘钥
  appSecret?: string;
  // 英文名称
  enName?: string;
  // 应用名称
  appName?: string;
  // 上级id, 0是顶级
  parentId?: number;
  // 应用编号
  appCode?: string;
  // 应用图标
  appIcon?: string;
  appQrcode?: string;
  // 应用截图
  images?: string;
  // 应用类型
  appType?: string;
  appTypeMultiple?: string[];
  // 菜单类型
  menuType?: number;
  // 应用地址
  appUrl?: string;
  // 后台管理地址
  adminUrl?: string;
  // 原型图地址
  prototypeUrl?: string;
  // 下载地址
  downUrl?: string;
  // 服务器接口地址
  serverUrl?: string;
  // 模块接口地址
  modulesUrl?: string;
  // 回调地址
  callbackUrl?: string;
  // 腾讯文档地址
  gitUrl?: string;
  docsUrl?: string;
  ipAddress?: string;
  fileUrl?: string;
  // 应用包名
  packageName?: string;
  // 点击次数
  clicks?: string;
  // 安装次数
  installs?: string;
  // 项目介绍
  content?: string;
  // 开发者(个人)
  developer?: string;
  director?: string;
  projectDirector?: string;
  salesman?: string;
  // 续费金额
  renewMoney?: string;
  // 软件定价
  price?: string;
  // 评分
  score?: string;
  // 星级
  star?: string;
  // 菜单组件地址
  component?: string;
  // 菜单路由地址
  path?: string;
  // 权限标识
  authority?: string;
  // 打开位置
  target?: string;
  // 是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)
  hide?: number;
  // 菜单侧栏选中的path
  active?: string;
  // 其它路由元信息
  meta?: string;
  // 版本
  edition?: string;
  // 版本号
  version?: string;
  // 是否已安装
  isUse?: number;
  // 排序
  sortNumber?: number;
  // 备注
  comments?: any;
  tenantName?: string;
  companyId?: number;
  companyName?: string;
  // 租户编号
  tenantCode?: string;
  // 租户id
  tenantId?: number;
  // 创建时间
  createTime?: string;
  // 过期时间
  expirationTime?: string;
  // 应用状态
  appStatus?: string;
  // 状态
  status?: number;
  // 发布者
  userId?: any;
  // 发布者昵称
  nickname?: string;
  // 子菜单
  children?: App[];
  // 权限树回显选中状态, 0未选中, 1选中
  checked?: boolean;
  //
  key?: number;
  //
  value?: number;
  //
  parentIds?: number[];
  //
  openType?: number;
  //
  search?: any;
  // 成员管理
  users?: AppUser[];
  fields?: AppField[];
  // 项目需求
  requirement?: string;
  phone?: string;
  file1?: string;
  file2?: string;
  file3?: string;
  showCase?: boolean;
  showIndex?: boolean;
  recommend?: boolean;
}

/**
 * 应用搜索条件
 */
export interface AppParam extends PageParam {
  userId?: number;
  appName?: any;
  appCode?: string;
  appId?: number;
  developer?: string;
  tenantCode?: string;
  parentId?: string;
  tenantName?: string;
  companyName?: string;
  companyId?: number;
  status?: number;
  nickname?: string;
  appStatus?: any;
  showCase?: boolean;
  showIndex?: boolean;
  showExpiration?: boolean;
  keywords?: any;
  sceneType?: string;
}
