/**
 * Example API Services - Barrel Export
 * Import all services and hooks from this single file
 *
 * Usage:
 * import { authService, useLogin, adminRolesService, useGetAllRoles } from '@/lib/api/example';
 */

// Services

export { usersService } from "./users/service";
export { adminUsersService } from "./admin/users/service";
export { adminRolesService } from "./admin/roles/service";
export { adminPermissionsService } from "./admin/permissions/service";

// Hooks - Auth
export {
  useLogin,
  useRegister,
  useRefreshToken,
  useLogout,
  AuthQueryKeys,
} from "./auth/use-hooks";

// Hooks - Users
export { useGetMe, UsersQueryKeys } from "./users/use-hooks";

// Hooks - Admin Users
export {
  useGetAllUsers,
  useToggleUserActive,
  useAssignRole,
  useRemoveRole,
  AdminUsersQueryKeys,
} from "./admin/users/use-hooks";

// Hooks - Admin Roles
export {
  useGetAllRoles,
  useCreateRole,
  useUpdateRole,
  useDeleteRole,
  useAssignPermission,
  useRemovePermission,
  AdminRolesQueryKeys,
} from "./admin/roles/use-hooks";

// Hooks - Admin Permissions
export {
  useGetAllPermissions,
  useCreatePermission,
  AdminPermissionsQueryKeys,
} from "./admin/permissions/use-hooks";

// Types - Auth
export type {
  LoginDto,
  RegisterDto,
  RefreshTokenDto,
  AuthResponse,
} from "./auth/types";

// Types - Users (Common)
export type { UserResponseDto, RoleInfo } from "./users/types";

// Types - Admin Users (Specific)
export type {
  UserRoleResponseDto,
  UsersQueryParams,
  PaginatedUsersResponse,
} from "./admin/users/types";

// Types - Admin Roles
export type {
  RoleResponseDto,
  CreateRoleDto,
  UpdateRoleDto,
  RolePermissionResponseDto,
  PermissionInfo,
} from "./admin/roles/types";

// Types - Admin Permissions
export type {
  PermissionResponseDto,
  CreatePermissionDto,
} from "./admin/permissions/types";
