import { FleioId, IBaseFleioObjectModel } from '../../base-model/base-fleio-object.model';
import { IPermissionsModel } from '../../base-model/IPermissionsModel';
import { IClientModel } from './client.model';
import { IUserGroupModel } from '@fleio-api/client-user/model/user-group.model';
import { IRoleModel } from '@fleio-api/client-user/roles/model/role.model';

export interface IUserModel extends IBaseFleioObjectModel {
  sfa_enabled: boolean;
  email: string;
  first_name: string;
  last_name: string;
  date_joined: Date;
  last_login: Date;
  is_active: boolean;
  clients: Array<IClientModel>;
  external_billing_id: string;
  full_name: string;
  is_staff: boolean;
  is_superuser: boolean;
  permissions: IPermissionsModel;
  user_groups: IUserGroupModel[];
  language: string;
  email_verified: boolean;
  password?: string;
  unregistered?: boolean;
  roles?: IRoleModel[];
  invitation?: boolean;
  display?: string;
  staff_notifications?: Record<string, Record<string, string>>;
}
