export type TUser = {
  id: number;
  last_login: string;
  first_name: string;
  last_name: string;
  date_joined: string;
  username: string;
  mobile_number: string | null;
  email: string | null;
  required_change_password: boolean;
  is_active: boolean;
  is_staff: boolean;
  is_superuser: boolean;
  created_at: string;
  updated_at: string;
  groups: IGroup[];
  user_permissions: IUserPermissions[];
}

export type TAuthResponse = {
  message: string;
  refresh: string; // JWT refresh token
  access: string;  // JWT access token
  user: TUser;
}

export type TLoginRequest = {
  username: string;
  password: string;
}

export type IUserPermissions = {
  id: number,
  name: string,
  codename: string,
  content_type: number
}

export type IGroup = {
  id: number,
  name: string,
  permissions: number[]
}