WayrApp Backend & Ecosystem Documentation - v1.0.0
    Preparing search index...

    Module content.schemas

    Content validation schemas for WayrApp language learning platform

    This module provides comprehensive Zod validation schemas for all content-related operations in the WayrApp language learning platform. It serves as the data validation foundation for educational content including courses, levels, sections, modules, lessons, and exercises, ensuring data integrity, consistency, and security across all content management operations.

    The schemas implement the hierarchical structure of educational content in the platform: courses contain levels, levels contain sections, sections contain modules, modules contain lessons, and lessons contain exercises. Each schema enforces appropriate validation rules for its level in the hierarchy while maintaining referential integrity and educational workflow requirements.

    Key architectural features include hierarchical content organization with proper ordering and sequencing, multi-language support for international content delivery, flexible exercise types supporting various learning modalities, comprehensive metadata validation for content management, and robust query parameter validation for content discovery and filtering operations.

    Security considerations include input sanitization to prevent injection attacks, ID format validation to ensure URL safety and database compatibility, length limits to prevent buffer overflow and denial-of-service attacks, and comprehensive validation of user-generated content to maintain platform quality and safety standards.

    The module supports the platform's educational methodology by enforcing pedagogical constraints such as language pair validation (preventing same-language courses), proper content sequencing through order validation, experience point allocation for gamification, and flexible exercise data structures that accommodate various learning activities.

    Exequiel Trujillo

    1.0.0

    // Basic usage with validation middleware
    import { CourseSchema, LessonSchema, ExerciseSchema } from '@/shared/schemas/content.schemas';
    import { validate } from '@/shared/middleware/validation';

    router.post('/courses', validate({ body: CourseSchema }), courseController.create);
    router.post('/lessons', validate({ body: LessonSchema }), lessonController.create);
    router.post('/exercises', validate({ body: ExerciseSchema }), exerciseController.create);
    // Type inference for content operations
    import { CourseRequest, LessonRequest } from '@/shared/schemas/content.schemas';

    const createCourse = async (courseData: CourseRequest) => {
    // courseData is fully typed with validation constraints
    return await courseService.create(courseData);
    };
    // Content hierarchy validation
    import { ContentQuerySchema } from '@/shared/schemas/content.schemas';

    router.get('/content/search', validate({ query: ContentQuerySchema }), (req, res) => {
    const { page, limit, search, source_language, target_language } = req.query;
    // All query parameters are properly typed and validated
    });

    Type Aliases

    CourseRequest
    LevelRequest
    SectionRequest
    ModuleRequest
    LessonRequest
    ExerciseRequest
    LessonExerciseRequest
    ExerciseReorderRequest
    ContentQueryParams

    Variables

    CourseSchema
    LevelSchema
    SectionSchema
    ModuleSchema
    LessonSchema
    ExerciseSchema
    LessonExerciseSchema
    ExerciseReorderSchema
    ContentQuerySchema