Lesson data access repository providing comprehensive CRUD operations and exercise management
capabilities for the WayrApp language learning platform. This repository serves as the primary
data access layer for lesson management, handling all database interactions through Prisma ORM
with advanced querying patterns, exercise assignment operations, and robust relationship management.
The repository implements sophisticated lesson-exercise relationship management through a many-to-many
association table, enabling flexible exercise assignment, reordering, and removal operations. It provides
comprehensive filtering capabilities including experience points range filtering, module-based querying,
and standardized pagination support. All queries are optimized for performance with proper relationship
loading and consistent data transformation patterns.
Key architectural features include automatic data mapping between database schema and application models,
transactional exercise reordering operations, comprehensive exercise assignment management, and integration
with shared repository helper utilities for consistent query building. The repository supports both
individual lesson operations and bulk querying with advanced filtering capabilities essential for
lesson discovery and content management workflows.
Exercise management capabilities include assignment and unassignment operations, order management for
exercise sequences within lessons, and atomic reordering operations using database transactions to
ensure data consistency. The repository maintains referential integrity across the lesson-exercise
relationship while providing flexible querying options for content delivery and management systems.
Author
Exequiel Trujillo
Since
1.0.0
Example
// Initialize repository with Prisma client constlessonRepository = newLessonRepository(prisma);
// Create a new lesson constnewLesson = awaitlessonRepository.create({ id:'lesson-basic-greetings', module_id:'module-conversation-basics', experience_points:15, order:1 });
Lesson data access repository providing comprehensive CRUD operations and exercise management capabilities for the WayrApp language learning platform. This repository serves as the primary data access layer for lesson management, handling all database interactions through Prisma ORM with advanced querying patterns, exercise assignment operations, and robust relationship management.
The repository implements sophisticated lesson-exercise relationship management through a many-to-many association table, enabling flexible exercise assignment, reordering, and removal operations. It provides comprehensive filtering capabilities including experience points range filtering, module-based querying, and standardized pagination support. All queries are optimized for performance with proper relationship loading and consistent data transformation patterns.
Key architectural features include automatic data mapping between database schema and application models, transactional exercise reordering operations, comprehensive exercise assignment management, and integration with shared repository helper utilities for consistent query building. The repository supports both individual lesson operations and bulk querying with advanced filtering capabilities essential for lesson discovery and content management workflows.
Exercise management capabilities include assignment and unassignment operations, order management for exercise sequences within lessons, and atomic reordering operations using database transactions to ensure data consistency. The repository maintains referential integrity across the lesson-exercise relationship while providing flexible querying options for content delivery and management systems.
Author
Exequiel Trujillo
Since
1.0.0
Example