/**
 * 项目：-
 * @Author: xiongwei
 * @Date: 2022-06-28 11:50:00
 */

import { BasePageParams, PageResult, ApiResponse } from './baseModel';

export interface AuthorityParams extends BasePageParams {
  /**
   * Id
   */
  id?: number;
  /**
   * Id IN值List
   */
  idList?: Array<number>;
  /**
   * 父级Id
   */
  authorityId?: number;
  /**
   * 权限类型
   */
  type?: String;
  /**
   * 权限类型 IN值List
   */
  typeList?: Array<string>;
  /**
   * 名称
   */
  name?: string;
  /**
   * 路径
   */
  path?: string;
  /**
   * 重定向路径
   */
  redirect?: string;
  /**
   * 内嵌Url
   */
  frameSrc?: string;
  /**
   * 是否缓存
   */
  keepAlive?: boolean;
  /**
   * 是否隐藏
   */
  hidden?: boolean;
  /**
   * 页面组件
   */
  component?: string;
  /**
   * 标题
   */
  title?: string;
  /**
   * 图标
   */
  icon?: string;
  /**
   * 序号
   */
  sortOrder?: number;
  /**
   * 操作人Id
   */
  editorId?: number;
  /**
   * 操作人
   */
  editorName?: string;
  /**
   * create_time
   */
  createTime?: Date;
  /**
   *  下限值(大于等于)
   */
  createTimeFrom?: Date;
  /**
   *  上限值(小于)
   */
  createTimeTo?: Date;
  /**
   * update_time
   */
  updateTime?: Date;
  /**
   *  下限值(大于等于)
   */
  updateTimeFrom?: Date;
  /**
   *  上限值(小于)
   */
  updateTimeTo?: Date;
  /**
   * 其他参数
   */
  [key: string]: any;
}

export interface Authority {
  /**
   * Id
   */
  id?: number;
  /**
   * Id
   */
  children?: Array<Authority>;
  /**
   * 父级Id
   */
  authorityId?: number;
  /**
   * 权限类型
   */
  type?: String;
  /**
   * 名称
   */
  name?: string;
  /**
   * 路径
   */
  path?: string;
  /**
   * 重定向路径
   */
  redirect?: string;
  /**
   * 内嵌Url
   */
  frameSrc?: string;
  /**
   * 是否缓存
   */
  keepAlive?: boolean;
  /**
   * 是否隐藏
   */
  hidden?: boolean;
  /**
   * 页面组件
   */
  component?: string;
  /**
   * 标题
   */
  title?: string;
  /**
   * 图标
   */
  icon?: string;
  /**
   * 序号
   */
  sortOrder?: number;
  /**
   * 操作人Id
   */
  editorId?: number;
  /**
   * 操作人
   */
  editorName?: string;
  /**
   * create_time
   */
  createTime?: Date;
  /**
   * update_time
   */
  updateTime?: Date;
}

export type AuthorityPageResult = PageResult<Authority>;

export type AuthorityPageResponse = ApiResponse<AuthorityPageResult>;

export type AuthorityResponse = ApiResponse<Authority>;
