Course data access repository providing comprehensive CRUD operations and advanced querying capabilities
for the WayrApp language learning platform. This repository serves as the primary data access layer for
course management, handling all database interactions through Prisma ORM with optimized query patterns,
pagination support, and robust error handling.
The repository implements standardized patterns for data transformation between Prisma models and
application DTOs, ensuring consistent data structures across the application. It provides advanced
filtering capabilities including text search across course names and descriptions, boolean filtering
for public/private courses, and comprehensive sorting options. All queries are optimized for performance
with proper indexing strategies and include relationship counting for efficient data retrieval.
Key architectural features include automatic data mapping between database schema and application models,
standardized pagination with configurable limits, comprehensive error handling for database operations,
and integration with the shared repository helper utilities for consistent query building patterns.
The repository supports both individual course operations and bulk querying with advanced filtering
capabilities essential for course discovery and management workflows.
Author
Exequiel Trujillo
Since
1.0.0
Example
// Initialize repository with Prisma client constcourseRepository = newCourseRepository(prisma);
// Create a new course constnewCourse = awaitcourseRepository.create({ id:'spanish-101', source_language:'en', target_language:'es', name:'Spanish for Beginners', description:'Learn basic Spanish vocabulary and grammar', is_public:true });
// Query courses with filtering and pagination constcourses = awaitcourseRepository.findAll({ search:'spanish', filters: { is_public:true }, page:1, limit:10, sortBy:'name', sortOrder:'asc' });
Course data access repository providing comprehensive CRUD operations and advanced querying capabilities for the WayrApp language learning platform. This repository serves as the primary data access layer for course management, handling all database interactions through Prisma ORM with optimized query patterns, pagination support, and robust error handling.
The repository implements standardized patterns for data transformation between Prisma models and application DTOs, ensuring consistent data structures across the application. It provides advanced filtering capabilities including text search across course names and descriptions, boolean filtering for public/private courses, and comprehensive sorting options. All queries are optimized for performance with proper indexing strategies and include relationship counting for efficient data retrieval.
Key architectural features include automatic data mapping between database schema and application models, standardized pagination with configurable limits, comprehensive error handling for database operations, and integration with the shared repository helper utilities for consistent query building patterns. The repository supports both individual course operations and bulk querying with advanced filtering capabilities essential for course discovery and management workflows.
Author
Exequiel Trujillo
Since
1.0.0
Example