import type { BaseModel, ReduceForPageQuery, ReduceForSaveVO, ReduceForUpdateVO } from '@/apis';
import type { Nullable, Optional } from '@/types';

export interface BaseEmployee extends BaseModel {
  userId: string;
  realName: string;
  defUser: Nullable<
    {
      username: string;
      nickName: string;
    } & BaseModel
  >;
}

export type BaseEmployeeResultVO = Nullable<BaseEmployee>;

export type BaseEmployeeSaveVO = Partial<Omit<BaseEmployee, ReduceForSaveVO>>;

export type BaseEmployeeUpdateVO = Optional<Omit<BaseEmployee, ReduceForUpdateVO>>;

export type BaseEmployeePageQuery = Partial<Omit<BaseEmployee, ReduceForPageQuery>>;
