export interface IUser {
  id: number;
  first_name: string;
  last_name: string;
  email: string;
  is_active: boolean;
  is_superuser: boolean;
  roles: IRoles[];
}

export interface IUserSubmit extends Omit<IUser, 'id' | 'roles'> {
  id?: number;
  password?: string;
}

export interface IUserDisplay {
  id: number;
  firstName: string;
  lastName: string;
  fullName: string;
  fullNameSearch: string;
  email: string;
  isActive: boolean;
  isSuperuser: boolean;
}

export interface IUserRolesDisplay extends IUserDisplay {
  roles: IRolesDisplay[];
  roleIds: number[];
}

export interface IRoles {
  id: number;
  name: string;
  description: string;
  level: number;
}

export interface IRolesDisplay {
  id: number;
  name: string;
  key: string;
  level: number;
}
