All files / web/src/lib/classroom index.ts

0% Statements 0/105
0% Branches 0/1
0% Functions 0/1
0% Lines 0/105

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106                                                                                                                                                                                                                   
/**
 * Classroom Module
 *
 * Central module for the classroom/teacher/parent system.
 *
 * This module provides:
 * - Access control (who can see/control what)
 * - Family management (parent-child relationships)
 * - Enrollment management (consent workflow)
 * - Presence management (live classroom state)
 * - Classroom CRUD operations
 */

// Access Control
export {
  type AccessLevel,
  type PlayerAccess,
  type PlayerAction,
  type AccessiblePlayers,
  type RemediationType,
  type AuthorizationError,
  getPlayerAccess,
  canPerformAction,
  getAccessiblePlayers,
  isParentOf,
  getParentedPlayerIds,
  isTeacherOf,
  generateAuthorizationError,
} from './access-control'

// Family Management
export {
  type LinkResult,
  type FamilyCodeResult,
  MAX_PARENTS_PER_CHILD,
  FAMILY_CODE_EXPIRY_DAYS,
  linkParentToChild,
  getLinkedParents,
  getLinkedParentIds,
  getLinkedChildren,
  unlinkParentFromChild,
  getOrCreateFamilyCode,
  regenerateFamilyCode,
  generateFamilyCode,
  getRecentFamilyEvents,
} from './family-manager'

// Enrollment Management
export {
  type CreateEnrollmentRequestParams,
  type ApprovalResult,
  type EnrollmentRequestWithRelations,
  createEnrollmentRequest,
  approveEnrollmentRequest,
  denyEnrollmentRequest,
  cancelEnrollmentRequest,
  getPendingRequestsForClassroom,
  getRequestsAwaitingParentApproval,
  getPendingRequestsForParent,
  isEnrolled,
  getEnrolledStudents,
  unenrollStudent,
  getEnrolledClassrooms,
  batchGetEnrolledClassrooms,
  directEnrollStudent,
  getRequiredApprovals,
  isFullyApproved,
  isDenied,
} from './enrollment-manager'

// Presence Management
export {
  type EnterClassroomParams,
  type EnterClassroomResult,
  type PresenceWithClassroom,
  type PresenceWithPlayer,
  enterClassroom,
  leaveClassroom,
  leaveSpecificClassroom,
  clearClassroomPresence,
  getStudentPresence,
  batchGetStudentPresence,
  isStudentPresent,
  isStudentPresentIn,
  getClassroomPresence,
  getPresenceCount,
  getPresentPlayerIds,
} from './presence-manager'

// Classroom Management
export {
  type CreateClassroomParams,
  type CreateClassroomResult,
  type ClassroomWithTeacher,
  type UpdateClassroomParams,
  createClassroom,
  getClassroom,
  getTeacherClassroom,
  isTeacher,
  getClassroomByCode,
  updateClassroom,
  regenerateClassroomCode,
  deleteClassroom,
  generateClassroomCode,
} from './classroom-manager'