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

    Module user.schemas

    User management validation schemas for WayrApp language learning platform

    This module provides comprehensive Zod validation schemas for all user management operations in the WayrApp language learning platform. It serves as the data validation foundation for user profile management, administrative user operations, and user discovery functionality, ensuring data integrity, security, and consistency across all user-related operations.

    The schemas support the platform's user management system by providing robust validation for profile updates, role management, and user querying operations. They ensure that user data maintains quality standards while supporting flexible user management workflows for both self-service profile management and administrative user operations.

    Key architectural features include optional profile field updates that support progressive profile completion, role-based access control through administrative schemas, comprehensive user discovery through flexible query parameters, and security-focused validation that prevents unauthorized data manipulation and maintains user privacy standards.

    The module implements user experience optimization through optional field validation that doesn't force users to provide all information immediately, administrative efficiency through streamlined role management schemas, and system scalability through efficient query parameter validation that supports large user bases and complex filtering requirements.

    Security considerations include input sanitization for all user-provided data, role validation to prevent privilege escalation, query parameter validation to prevent injection attacks, and comprehensive validation of profile data to maintain platform quality and user safety standards.

    Exequiel Trujillo

    1.0.0

    // Basic usage with validation middleware
    import { UserProfileUpdateSchema, UserRoleUpdateSchema } from '@/shared/schemas/user.schemas';
    import { validate } from '@/shared/middleware/validation';

    router.put('/profile', validate({ body: UserProfileUpdateSchema }), userController.updateProfile);
    router.put('/users/:id/role', validate({ body: UserRoleUpdateSchema }), adminController.updateUserRole);
    // Type inference for user operations
    import { UserProfileUpdateRequest, UserQueryParams } from '@/shared/schemas/user.schemas';

    const updateUserProfile = async (userId: string, updates: UserProfileUpdateRequest) => {
    // updates is fully typed with validation constraints
    return await userService.updateProfile(userId, updates);
    };
    // User management and discovery
    import { UserQuerySchema } from '@/shared/schemas/user.schemas';

    router.get('/users', validate({ query: UserQuerySchema }), (req, res) => {
    const { page, limit, role, is_active, search } = req.query;
    // All query parameters are properly typed and validated
    });

    Type Aliases

    UserProfileUpdateRequest
    UserRoleUpdateRequest
    UserQueryParams

    Variables

    UserProfileUpdateSchema
    UserRoleUpdateSchema
    UserQuerySchema