import { apiRequest } from "@/services/apiClient";

export interface CmsItem {
  id?: number;
  group: string;
  key: string;
  type?: string;
  value: string | Record<string, unknown>;
  meta?: Record<string, unknown>;
  active?: boolean;
  sortOrder?: number;
}

export const cmsService = {
  async getPublic(group: string) {
    const res = await apiRequest<Record<string, string>>(`/cms/${group}`);
    return res.data;
  },

  async listAdmin(token: string, group?: string) {
    const qs = group ? `?group=${encodeURIComponent(group)}` : "";
    return apiRequest<CmsItem[]>(`/admin/cms${qs}`, { token });
  },

  async upsert(token: string, item: CmsItem) {
    return apiRequest<CmsItem>("/admin/cms", { method: "POST", token, body: item });
  },

  async bulkUpsert(token: string, items: CmsItem[]) {
    return apiRequest<CmsItem[]>("/admin/cms/bulk", {
      method: "POST",
      token,
      body: { items },
    });
  },
};
