import { defineModule, defineRoute } from "../../shared/define-module"
import type {
  SettingsGetQuery,
  SettingsGetResponse,
  SettingsUpdateInput,
  SettingsUpdateResponse,
} from "./types"

/**
 * Settings module definition with nested routes
 */
export const settingsModule = defineModule({
  name: "settings",
  prefix: "/settings",
  routes: {
    // Basic settings operations
    get: defineRoute<SettingsGetQuery, SettingsGetResponse>("GET", "/"),

    update: defineRoute<SettingsUpdateInput, SettingsUpdateResponse>(
      "PATCH",
      "/{tab}",
    ),
  },
})

// Export the API type
export type SettingsAPI = typeof settingsModule.api

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