28 lines
780 B
Handlebars
28 lines
780 B
Handlebars
|
|
import type { {{pascalCase name}} } from "../../../domain";
|
||
|
|
import type { {{pascalCase name}}Model } from "../../sequelize/models/{{kebabCase name}}.model";
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Mapper de dominio ↔ ORM/DTO
|
||
|
|
* @remarks
|
||
|
|
* - SSOT: punto único de traducción entre capas.
|
||
|
|
*/
|
||
|
|
export const {{camelCase name}}DomainMapper = {
|
||
|
|
toPersistence(entity: {{pascalCase name}}) {
|
||
|
|
// TODO: mapear campos reales
|
||
|
|
return {
|
||
|
|
id: entity.id,
|
||
|
|
company_id: entity.companyId,
|
||
|
|
status: (entity as any).status ?? "active",
|
||
|
|
};
|
||
|
|
},
|
||
|
|
|
||
|
|
toDomain(model: {{pascalCase name}}Model): {{pascalCase name}} {
|
||
|
|
// TODO: mapear campos reales
|
||
|
|
return {
|
||
|
|
id: model.id,
|
||
|
|
companyId: model.company_id,
|
||
|
|
status: (model as any).status,
|
||
|
|
} as unknown as {{pascalCase name}};
|
||
|
|
},
|
||
|
|
};
|