export const queryKeys = { auth: { user: ["auth", "user"] as const, }, users: { all: ["users"] as const, list: (params: Record) => ["users", "list", params] as const, detail: (id: number) => ["users", id] as const, }, entities: { all: ["entities"] as const, list: (params?: Record) => ["entities", "list", params] as const, detail: (id: number) => ["entities", id] as const, roles: (entityId: number) => ["entities", entityId, "roles"] as const, permissions: (entityId: number) => ["entities", entityId, "permissions"] as const, }, exams: { all: ["exams"] as const, list: (module: string, params?: Record) => ["exams", module, params] as const, detail: (module: string, id: number) => ["exams", module, id] as const, rubrics: (params?: Record) => ["exams", "rubrics", params] as const, rubricGroups: (params?: Record) => ["exams", "rubric-groups", params] as const, structures: (params?: Record) => ["exams", "structures", params] as const, avatars: ["exams", "avatars"] as const, }, assignments: { all: ["assignments"] as const, list: (params?: Record) => ["assignments", "list", params] as const, detail: (id: number) => ["assignments", id] as const, }, classrooms: { all: ["classrooms"] as const, list: (params?: Record) => ["classrooms", "list", params] as const, detail: (id: number) => ["classrooms", id] as const, }, stats: { sessions: (params?: Record) => ["stats", "sessions", params] as const, stats: (params?: Record) => ["stats", "stats", params] as const, statistical: (params?: Record) => ["stats", "statistical", params] as const, performance: (params?: Record) => ["stats", "performance", params] as const, }, training: { all: ["training"] as const, tips: (params?: Record) => ["training", "tips", params] as const, walkthroughs: (module?: string) => ["training", "walkthroughs", module] as const, }, subscriptions: { packages: ["subscriptions", "packages"] as const, payments: (params?: Record) => ["subscriptions", "payments", params] as const, discounts: (params?: Record) => ["subscriptions", "discounts", params] as const, }, tickets: { all: ["tickets"] as const, list: (params?: Record) => ["tickets", "list", params] as const, assigned: ["tickets", "assigned"] as const, }, approvals: { all: ["approvals"] as const, list: (params?: Record) => ["approvals", "list", params] as const, }, taxonomy: { subjects: ["taxonomy", "subjects"] as const, subject: (id: number) => ["taxonomy", "subjects", id] as const, tree: (subjectId: number) => ["taxonomy", "tree", subjectId] as const, domains: (params?: Record) => ["taxonomy", "domains", params] as const, topics: (params?: Record) => ["taxonomy", "topics", params] as const, }, adaptive: { proficiency: (params?: Record) => ["adaptive", "proficiency", params] as const, summary: ["adaptive", "proficiency", "summary"] as const, plan: (params?: Record) => ["adaptive", "plan", params] as const, topicContent: (topicId: number) => ["adaptive", "topic", topicId, "content"] as const, diagnostic: (sessionId: number) => ["adaptive", "diagnostic", sessionId] as const, }, resources: { all: ["resources"] as const, list: (params?: Record) => ["resources", "list", params] as const, }, lms: { courses: (params?: Record) => ["lms", "courses", params] as const, course: (id: number) => ["lms", "courses", id] as const, batches: (params?: Record) => ["lms", "batches", params] as const, batch: (id: number) => ["lms", "batches", id] as const, timetable: (params?: Record) => ["lms", "timetable", params] as const, attendance: (params?: Record) => ["lms", "attendance", params] as const, grades: (params?: Record) => ["lms", "grades", params] as const, }, analytics: { student: (params?: Record) => ["analytics", "student", params] as const, class: (params?: Record) => ["analytics", "class", params] as const, subject: (params?: Record) => ["analytics", "subject", params] as const, contentGaps: (params?: Record) => ["analytics", "content-gaps", params] as const, alerts: ["analytics", "alerts"] as const, }, academicYears: { all: ["academic-years"] as const, list: (params?: Record) => ["academic-years", "list", params] as const, detail: (id: number) => ["academic-years", id] as const, }, academicTerms: { all: ["academic-terms"] as const, list: (params?: Record) => ["academic-terms", "list", params] as const, detail: (id: number) => ["academic-terms", id] as const, }, departments: { all: ["departments"] as const, list: (params?: Record) => ["departments", "list", params] as const, detail: (id: number) => ["departments", id] as const, }, admissionRegisters: { all: ["admission-registers"] as const, list: (params?: Record) => ["admission-registers", "list", params] as const, detail: (id: number) => ["admission-registers", id] as const, }, admissions: { all: ["admissions"] as const, list: (params?: Record) => ["admissions", "list", params] as const, detail: (id: number) => ["admissions", id] as const, }, instExamSessions: { all: ["inst-exam-sessions"] as const, list: (params?: Record) => ["inst-exam-sessions", "list", params] as const, detail: (id: number) => ["inst-exam-sessions", id] as const, }, examTypes: { all: ["exam-types"] as const, list: (params?: Record) => ["exam-types", "list", params] as const, }, gradeConfigs: { all: ["grade-configs"] as const, list: (params?: Record) => ["grade-configs", "list", params] as const, }, resultTemplates: { all: ["result-templates"] as const, list: (params?: Record) => ["result-templates", "list", params] as const, }, marksheets: { all: ["marksheets"] as const, list: (params?: Record) => ["marksheets", "list", params] as const, detail: (id: number) => ["marksheets", id] as const, }, courseAssignments: { all: ["course-assignments"] as const, list: (params?: Record) => ["course-assignments", "list", params] as const, detail: (id: number) => ["course-assignments", id] as const, }, assignmentTypes: { all: ["assignment-types"] as const, list: (params?: Record) => ["assignment-types", "list", params] as const, }, subjectRegistrations: { all: ["subject-registrations"] as const, list: (params?: Record) => ["subject-registrations", "list", params] as const, available: (params?: Record) => ["subject-registrations", "available", params] as const, }, chapters: (courseId: number) => ["chapters", "list", courseId] as const, chapter: (id: number) => ["chapters", "detail", id] as const, chapterMaterials: (chapterId: number) => ["chapter-materials", chapterId] as const, chapterProgress: (chapterId: number) => ["chapter-progress", chapterId] as const, discussionBoards: (params?: Record) => ["discussion-boards", params] as const, posts: (boardId: number, params?: Record) => ["posts", boardId, params] as const, announcements: (params?: Record) => ["announcements", params] as const, messages: (params?: Record) => ["messages", params] as const, sentMessages: (params?: Record) => ["messages", "sent", params] as const, unreadMessages: ["messages", "unread-count"] as const, notifications: (params?: Record) => ["notifications", params] as const, unreadNotifications: ["notifications", "unread-count"] as const, notificationRules: ["notification-rules"] as const, notificationPreferences: ["notification-preferences"] as const, faqCategories: (audience?: string) => ["faq", "categories", audience] as const, faqItems: (params?: Record) => ["faq", "items", params] as const, };