xpeditis2.0/apps/backend/src/application/mappers/user.mapper.ts
David-Henri ARNAUD dc1c881842 feature phase 2
2025-10-09 15:03:53 +02:00

34 lines
800 B
TypeScript

import { User } from '../../domain/entities/user.entity';
import { UserResponseDto } from '../dto/user.dto';
/**
* User Mapper
*
* Maps between User domain entities and DTOs
*/
export class UserMapper {
/**
* Convert User entity to DTO (without sensitive fields)
*/
static toDto(user: User): UserResponseDto {
return {
id: user.id,
email: user.email.value,
firstName: user.firstName,
lastName: user.lastName,
role: user.role as any,
organizationId: user.organizationId,
isActive: user.isActive,
createdAt: user.createdAt,
updatedAt: user.updatedAt,
};
}
/**
* Convert array of User entities to DTOs
*/
static toDtoArray(users: User[]): UserResponseDto[] {
return users.map(user => this.toDto(user));
}
}