territory/src/modules/territories/mappers/territory.profile.ts

30 lines
961 B
TypeScript

import { createMap, forMember, ignore, Mapper } from '@automapper/core';
import { AutomapperProfile, InjectMapper } from '@automapper/nestjs';
import { Injectable } from '@nestjs/common';
import { TerritoryPresenter } from '../adapters/primaries/territory.presenter';
import { CreateTerritoryRequest } from '../domain/dtos/create-territory.request';
import { UpdateTerritoryRequest } from '../domain/dtos/update-territory.request';
import { Territory } from '../domain/entities/territory';
@Injectable()
export class TerritoryProfile extends AutomapperProfile {
constructor(@InjectMapper() mapper: Mapper) {
super(mapper);
}
override get profile() {
return (mapper) => {
createMap(mapper, Territory, TerritoryPresenter);
createMap(mapper, CreateTerritoryRequest, Territory);
createMap(
mapper,
UpdateTerritoryRequest,
Territory,
forMember((dest) => dest.uuid, ignore()),
);
};
}
}