import { defineModule, defineRoute } from "../../shared/define-module"
import type {
  GetReferralDaysRequest,
  GetReferralDaysResponse,
  GetReferralsResponse,
  VerifyReceiptRequest,
  VerifyReceiptResponse,
} from "./types"

/**
 * Referrals module for referral system management
 */
export const referralsModule = defineModule({
  name: "referrals",
  prefix: "/referrals",
  routes: {
    // Get user referrals
    getReferrals: defineRoute<never, GetReferralsResponse>("GET", "/"),

    // Get referral cycle days by code
    getDays: defineRoute<GetReferralDaysRequest, GetReferralDaysResponse>(
      "GET",
      "/days",
    ),

    // Verify Apple Pay receipt
    verifyReceipt: defineRoute<VerifyReceiptRequest, VerifyReceiptResponse>(
      "POST",
      "/verify-receipt",
    ),
  },
})

// Export the API type
export type ReferralsAPI = typeof referralsModule.api
