48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { apiGet, apiPatch, apiPost } from "./axios";
|
|
import type { AxiosResponse } from "axios";
|
|
import type { ApiListResponse } from "../types/api";
|
|
|
|
export interface FaqCategory {
|
|
id: string;
|
|
study_id?: string | null;
|
|
name: string;
|
|
description?: string | null;
|
|
sort_order: number;
|
|
is_active: boolean;
|
|
created_at: string;
|
|
updated_at: string;
|
|
}
|
|
|
|
export interface FaqItem {
|
|
id: string;
|
|
study_id?: string | null;
|
|
category_id: string;
|
|
question: string;
|
|
answer: string;
|
|
keywords?: string | null;
|
|
version: number;
|
|
is_active: boolean;
|
|
created_by?: string;
|
|
created_at: string;
|
|
updated_at: string;
|
|
}
|
|
|
|
export const fetchFaqCategories = (params?: Record<string, any>): Promise<AxiosResponse<ApiListResponse<FaqCategory>>> =>
|
|
apiGet("/api/v1/faqs/categories", { params });
|
|
|
|
export const createFaqCategory = (payload: Record<string, any>) =>
|
|
apiPost<FaqCategory>("/api/v1/faqs/categories", payload);
|
|
|
|
export const updateFaqCategory = (categoryId: string, payload: Record<string, any>) =>
|
|
apiPatch<FaqCategory>(`/api/v1/faqs/categories/${categoryId}`, payload);
|
|
|
|
export const fetchFaqItems = (params?: Record<string, any>): Promise<AxiosResponse<ApiListResponse<FaqItem>>> =>
|
|
apiGet("/api/v1/faqs/items", { params });
|
|
|
|
export const fetchFaqItem = (itemId: string) => apiGet<FaqItem>(`/api/v1/faqs/items/${itemId}`);
|
|
|
|
export const createFaqItem = (payload: Record<string, any>) => apiPost<FaqItem>("/api/v1/faqs/items", payload);
|
|
|
|
export const updateFaqItem = (itemId: string, payload: Record<string, any>) =>
|
|
apiPatch<FaqItem>(`/api/v1/faqs/items/${itemId}`, payload);
|