import { defineModule, defineRoute } from "../../shared/define-module"
import type {
  DiscoverRequest,
  DiscoverResponse,
  RSSHubAnalyticsQuery,
  RSSHubAnalyticsResponse,
  RSSHubQuery,
  RSSHubResponse,
  RSSHubRouteQuery,
  RSSHubRouteResponse,
} from "./types"

/**
 * Discover module definition - Feed and list discovery
 */
export const discoverModule = defineModule({
  name: "discover",
  prefix: "/discover",
  routes: {
    // Main discovery endpoint
    discover: defineRoute<DiscoverRequest, DiscoverResponse>("POST", "/"),

    // RSSHub integration endpoints
    rsshub: defineRoute<RSSHubQuery, RSSHubResponse>("GET", "/rsshub"),

    rsshubRoute: defineRoute<RSSHubRouteQuery, RSSHubRouteResponse>(
      "GET",
      "/rsshub/route",
    ),

    rsshubAnalytics: defineRoute<RSSHubAnalyticsQuery, RSSHubAnalyticsResponse>(
      "GET",
      "/rsshub-analytics",
    ),
  },
})

// Export the API type
export type DiscoverAPI = typeof discoverModule.api

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