export interface Permission {
  id: number;
  name: string;
  description: string;
}

export interface RoleType {
  id: number;
  key: string;
  name: string;
}

export interface Role {
  id: number;
  role_name: string;
  description: string;
  type: RoleType;
  permissions: Permission[];
}

export interface Province {
  id: number;
  name: string;
}

export interface City {
  id: number;
  name: string;
}

export interface Organization {
  id: number;
  name: string;
  type: RoleType;
  province: Province;
  city: City;
  parent_organization: Organization | null;
  national_unique_id: string;
}

export interface User {
  id: number;
  username: string;
  password: string;
  first_name: string;
  last_name: string;
  is_active: boolean;
  mobile: string;
  phone: string | null;
  national_code: string;
  birthdate: string | null;
  nationality: string | null;
  ownership: string;
  address: string | null;
  photo: string | null;
  province: Province | null;
  city: City | null;
  otp_status: boolean;
}

export interface UserProfile {
  id: number;
  user: User;
  organization: Organization;
  role: Role;
  permissions: Permission[];
}
