import { defineModule, defineRoute } from "../../shared/define-module"
import type {
  GetProfileRequest,
  GetProfileResponse,
  GetProfilesBatchRequest,
  GetProfilesBatchResponse,
} from "./types"

/**
 * Profiles module for user profile management
 */
export const profilesModule = defineModule({
  name: "profiles",
  prefix: "/profiles",
  routes: {
    // Get single profile by ID or handle
    getProfile: defineRoute<GetProfileRequest, GetProfileResponse>("GET", "/"),

    // Get multiple profiles by IDs
    getBatch: defineRoute<GetProfilesBatchRequest, GetProfilesBatchResponse>(
      "POST",
      "/batch",
    ),
  },
})

// Export the API type
export type ProfilesAPI = typeof profilesModule.api

// Re-export types for external consumption
export type * from "./types"
