# GUIDELINES This folder contains drivers for `QuizLPQuestion`/`QuizLPQuestions` records using PocketBase: ## File Structure - create (Create.tsx) - read (GetById.tsx) - write (Update.tsx) - count (GetAllCount.tsx) - delete (Delete.tsx) - list (GetAll.tsx) - validation (validateQuestion.tsx) ## Complete Implementation Template ```typescript import { pb } from '@/lib/pb'; import { COL_QUIZ_LP_QUESTIONS } from '@/constants'; import type { QuizLPQuestion, CreateFormProps } from './type.d.ts'; export async function createQuizLPQuestion(data: CreateFormProps): Promise { return pb.collection(COL_QUIZ_LP_QUESTIONS).create(data); } ``` ## Question-Specific Handling ### Answer Validation ```typescript export function validateLPQuestionAnswer(question: QuizLPQuestion, answer: string): boolean { // Implement LP question specific validation return question.correctAnswer === answer; } ``` ### Type Definitions ```typescript interface QuizLPQuestion { id: string; question: string; options: string[]; correctAnswer: string; categoryId: string; difficulty: 'easy'|'medium'|'hard'; } ``` ## Common Patterns ```typescript // Get questions by category export async function getQuestionsByCategory(categoryId: string) { return pb.collection(COL_QUIZ_LP_QUESTIONS) .getFullList({ filter: `categoryId = "${categoryId}"` }); } // Validate before create export async function createValidatedQuestion(data: CreateFormProps) { if (!validateQuestionData(data)) throw new Error('Invalid question data'); return createQuizLPQuestion(data); } ``` ## Performance Considerations - Add index on: categoryId, difficulty - Consider pagination for large question sets - Cache frequently accessed questions ## Testing Guidelines Recommended test cases: - Basic CRUD operations - Answer validation - Category filtering - Difficulty level queries - Error cases (invalid data)