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()), ); }; } }