import http from "@/api/http-client" import { type FiltersOptions, type ModelOrder, type Policy, type WhereOptions } from "@/api/base-api" export type Flashcard = { id: number flashcardDeckId: number creatorId: number cardType: string front: string back: string | null createdAt: string updatedAt: string } export type FlashcardWhereOptions = WhereOptions export type FlashcardFiltersOptions = FiltersOptions<{ search: string | string[] }> export type FlashcardQueryOptions = { where?: FlashcardWhereOptions filters?: FlashcardFiltersOptions order?: ModelOrder[] page?: number perPage?: number } export const flashcardsApi = { async list(params: FlashcardQueryOptions = {}): Promise<{ flashcards: Flashcard[] totalCount: number }> { const { data } = await http.get("/api/flashcards", { params }) return data }, async get(flashcardId: number): Promise<{ flashcard: Flashcard policy: Policy }> { const { data } = await http.get(`/api/flashcards/${flashcardId}`) return data }, async create(attributes: Partial): Promise<{ flashcard: Flashcard }> { const { data } = await http.post("/api/flashcards", attributes) return data }, async update( flashcardId: number, attributes: Partial ): Promise<{ flashcard: Flashcard }> { const { data } = await http.patch(`/api/flashcards/${flashcardId}`, attributes) return data }, async delete(flashcardId: number): Promise { const { data } = await http.delete(`/api/flashcards/${flashcardId}`) return data }, } export default flashcardsApi