export interface User {
  id: string;
  full_name: string;
  username: string | null;
  employee_code: string | null;
  email: string;
  department_id: number | null;
  department_name: string | null;
  position_id: number | null;
  position_name: string | null;
  company_name: string | null;
  hired_at: string | null;
  organization_id: string | null;
  organization_name: string | null;
  organization_role: 'admin' | 'user' | null;
  status: 'Active' | 'Inactive';
  created_at: string;
  updated_at: string;
}

export type UserFilters = {
  page?: number;
  limit?: number;
  roles?: string;
  search?: string;
  sort?: string;
};

export type UsersResponse = {
  success: boolean;
  time: string;
  message: string;
  total_users: number;
  offset: number;
  limit: number;
  users: User[];
};

export type UserMutationPayload = {
  full_name: string;
  email: string;
  username?: string;
  password?: string;
  employee_code?: string;
  department_id?: string;
  position_id?: string;
  organization_id?: string;
  organization_role: 'admin' | 'user';
  is_active: boolean;
};

export interface UserMasterOption {
  value: string;
  label: string;
}

export interface UserMasterOptionsResponse {
  departments: UserMasterOption[];
  positions: UserMasterOption[];
  users: UserMasterOption[];
}
