import { api } from "@/lib/api"
import {
    WhatsAppTemplateData,
    UpdateWhatsAppTemplatePayload,
    TemplateDraftListResponse,
    TemplateDraftItem,
    CreateTemplateDraftPayload,
    UpdateTemplateDraftPayload
} from "@/types/whatsapp"

// Existing query keys
export const getWhatsAppTemplate = ["whatsapp", "template"] as const
export const getTemplateDraftList = ["whatsapp", "template", "draft-list"] as const
export const getTemplateDraftById = (id: string) => ["whatsapp", "template", "draft", id] as const

// Existing queries
export async function fetchWhatsAppTemplate(): Promise<WhatsAppTemplateData> {
    const { data } = await api.get("/whatsapp-template")
    return data
}

export async function updateWhatsAppTemplate(payload: UpdateWhatsAppTemplatePayload) {
    const { data } = await api.patch("/whatsapp-template/update", payload)
    return data
}

export async function resetWhatsAppTemplate() {
    const { data } = await api.post("/whatsapp-template/reset")
    return data
}

// Draft template queries
export async function fetchTemplateDraftList(): Promise<TemplateDraftListResponse> {
    const { data } = await api.get("/whatsapp-template")
    return data
}

export async function fetchTemplateDraftById(id: string): Promise<TemplateDraftItem> {
    const { data } = await api.get(`/whatsapp-template/template/${id}`)
    return data.template
}

export async function createTemplateDraft(payload: CreateTemplateDraftPayload): Promise<TemplateDraftItem> {
    const { data } = await api.post("/whatsapp-template/draft", payload)
    return data
}

export async function updateTemplateDraft(id: string, payload: UpdateTemplateDraftPayload): Promise<TemplateDraftItem> {
    const { data } = await api.patch(`/whatsapp-template/draft/${id}`, payload)
    return data
}

export async function submitTemplateDraft(id: string) {
    const { data } = await api.post(`/whatsapp-template/submit/${id}`)
    return data
}
