Renombrar ficheros Value Object

This commit is contained in:
David Arranz 2026-10-09 10:38:19 +02:00
parent 22b2d1612f
commit 5cd16ee972
174 changed files with 240 additions and 216 deletions

View File

@ -25,7 +25,18 @@ La dependencia uuid 13 se usa para generar UUID v7, como en el ERP; se evita imp
Se conserva la organización y los nombres del ERP, con tipos estrictos y sin copiar sus dependencias o utilidades no utilizadas. Esta base escalar no introduce comparación genérica de objetos compuestos ni un bus de eventos sin consumidores.
Las raíces se declaran en archivos *.aggregate.ts; las entidades internas en *.entity.ts. Los Value Objects específicos de un módulo viven en domain/value-objects. Domain permanece libre de Express, DTOs de transporte y Sequelize. La validación propia de los Value Objects puede usar Zod, igual que en el ERP.
Las raíces se declaran en archivos *.aggregate.ts; las entidades internas en *.entity.ts.
Las implementaciones de Value Objects, incluida su base compartida, se declaran en
archivos `*.vo.ts`: por ejemplo, `email-address.vo.ts`, `unique-id.vo.ts` y
`ticket-values.vo.ts`. Los Value Objects específicos de un módulo viven en
domain/value-objects, salvo ámbitos existentes con organización propia, como
`domain/access/access-values.vo.ts`. Esta convención identifica las implementaciones,
no los schemas de entrada ni todos los ficheros que importan un Value Object.
Cuando un Value Object esté dentro de una entidad, separar su implementación sin
renombrar el fichero de la entidad; `ProcessReferenceValues` vive en
`domain/value-objects/process-reference-values.vo.ts` y `ProcessTask` conserva
`process-task.entity.ts`. Domain permanece libre de Express, DTOs de transporte y
Sequelize. La validación propia de los Value Objects puede usar Zod, igual que en el ERP.
## Ciclo de vida y fronteras

View File

@ -3,7 +3,7 @@ import { Maybe, Result } from "@repo/rdx-utils";
import type { AssetDefinitionSpec } from "../../common";
import { AssetCatalogError } from "../domain/asset-definition";
import { AssetDefinitionValues } from "../domain/value-objects/asset-definition-values";
import { AssetDefinitionValues } from "../domain/value-objects/asset-definition-values.vo";
import type { IAssetCatalogRepository } from "./asset-catalog.repository";

View File

@ -4,7 +4,7 @@ import { Maybe, Result } from "@repo/rdx-utils";
import type { Asset } from "../domain/asset.aggregate";
import { AssetCatalogError } from "../domain/asset-definition";
import type { AssetInput } from "../domain/asset-values";
import { AssetSpecification, AssetValues } from "../domain/value-objects/asset-values";
import { AssetSpecification, AssetValues } from "../domain/value-objects/asset-values.vo";
import type { InventoryContext } from "./asset.repository";

View File

@ -4,7 +4,7 @@ import { Maybe, Result } from "@repo/rdx-utils";
import type { RelationshipInputDTO } from "../../common/relationships";
import { AssetCatalogError } from "../domain/asset-definition";
import { AssetRelationship } from "../domain/asset-relationship.aggregate";
import { AssetRelationshipValues } from "../domain/value-objects/asset-relationship-values";
import { AssetRelationshipValues } from "../domain/value-objects/asset-relationship-values.vo";
import type { IAssetRepository, InventoryContext } from "./asset.repository";

View File

@ -6,7 +6,7 @@ import type { AssetCatalog } from "../domain/asset-catalog.aggregate";
import { AssetCatalogError } from "../domain/asset-definition";
import type { AssetRelationship } from "../domain/asset-relationship.aggregate";
import type { Brand } from "../domain/brand.aggregate";
import type { AssetValues } from "../domain/value-objects/asset-values";
import type { AssetValues } from "../domain/value-objects/asset-values.vo";
import type { Workstation } from "../domain/workstation.aggregate";
export type InventoryContext = Readonly<{

View File

@ -3,7 +3,7 @@ import { Result } from "@repo/rdx-utils";
import type { SupportConnection } from "../domain/support-connection.aggregate";
import type { SupportInput } from "../domain/support-values";
import { SupportError } from "../domain/support-values";
import { SupportValues } from "../domain/value-objects/support-values";
import { SupportValues } from "../domain/value-objects/support-values.vo";
import type { SupportContext } from "./support.repository";
export function mapSupportInput(

View File

@ -1,7 +1,7 @@
import { Result } from "@repo/rdx-utils";
import { AssetCatalogError } from "../domain/asset-definition";
import { WorkstationValues } from "../domain/value-objects/workstation-values";
import { WorkstationValues } from "../domain/value-objects/workstation-values.vo";
import type { Workstation } from "../domain/workstation.aggregate";
import type { WorkstationInput } from "../domain/workstation-values";

View File

@ -1,6 +1,6 @@
import type { AssetCatalog } from "./asset-catalog.aggregate";
import type { AssetDefinitionSpec, AssetFieldType } from "./asset-definition";
import { AssetDefinitionValues } from "./value-objects/asset-definition-values";
import { AssetDefinitionValues } from "./value-objects/asset-definition-values.vo";
const FIELDS: readonly [string, string, AssetFieldType, string][] = [
["brand", "Marca", "text", ""],

View File

@ -4,7 +4,7 @@ import { Maybe, Result } from "@repo/rdx-utils";
import { AssetCatalogError } from "./asset-definition";
import { AssetDefinition, CatalogAvailability } from "./asset-definition.entity";
import type { AssetDefinitionValues } from "./value-objects/asset-definition-values";
import type { AssetDefinitionValues } from "./value-objects/asset-definition-values.vo";
type CatalogProps = {
definitions: readonly AssetDefinition[];

View File

@ -7,7 +7,7 @@ import { Maybe } from "@repo/rdx-utils";
import { AssetCatalog } from "./asset-catalog.aggregate";
import { seedAssetCatalog } from "./asset-catalog-seed";
import type { AssetDefinitionSpec } from "./asset-definition";
import { AssetDefinitionValues } from "./value-objects/asset-definition-values";
import { AssetDefinitionValues } from "./value-objects/asset-definition-values.vo";
const global = Maybe.none<UniqueID>();
function values(spec: AssetDefinitionSpec) {

View File

@ -3,7 +3,7 @@ import { DomainEntity } from "@repo/rdx-ddd";
import { Maybe, Result } from "@repo/rdx-utils";
import { AssetCatalogError } from "./asset-definition";
import type { AssetDefinitionValues } from "./value-objects/asset-definition-values";
import type { AssetDefinitionValues } from "./value-objects/asset-definition-values.vo";
export class TemplateField extends DomainEntity<{ fieldId: UniqueID; required: boolean }> {
static create(fieldId: UniqueID, required: boolean, id?: UniqueID) {

View File

@ -4,7 +4,7 @@ import { Maybe, Result } from "@repo/rdx-utils";
import { z } from "zod/v4";
import { AssetCatalogError } from "./asset-definition";
import type { AssetRelationshipValues } from "./value-objects/asset-relationship-values";
import type { AssetRelationshipValues } from "./value-objects/asset-relationship-values.vo";
type RelationshipProps = Readonly<{
companyId: UniqueID;

View File

@ -7,9 +7,9 @@ import { Maybe } from "@repo/rdx-utils";
import { AssetCatalog } from "./asset-catalog.aggregate";
import { seedAssetCatalog } from "./asset-catalog-seed";
import { AssetRelationship } from "./asset-relationship.aggregate";
import { AssetDefinitionValues } from "./value-objects/asset-definition-values";
import type { RelationshipValuesData } from "./value-objects/asset-relationship-values";
import { AssetRelationshipValues } from "./value-objects/asset-relationship-values";
import { AssetDefinitionValues } from "./value-objects/asset-definition-values.vo";
import type { RelationshipValuesData } from "./value-objects/asset-relationship-values.vo";
import { AssetRelationshipValues } from "./value-objects/asset-relationship-values.vo";
const sourceId = UniqueID.generateNewID().toPrimitive();
const targetId = UniqueID.generateNewID().toPrimitive();

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { AssetValues } from "./value-objects/asset-values";
import type { AssetValues } from "./value-objects/asset-values.vo";
export type AssetRevisionProps = Readonly<{
values: AssetValues;
actorId: UniqueID;

View File

@ -4,7 +4,7 @@ import { Result } from "@repo/rdx-utils";
import { AssetCatalogError } from "./asset-definition";
import { AssetRevision } from "./asset-revision.entity";
import type { AssetSpecification, AssetValues } from "./value-objects/asset-values";
import type { AssetSpecification, AssetValues } from "./value-objects/asset-values.vo";
type AssetProps = Readonly<{
companyId: UniqueID;

View File

@ -5,7 +5,7 @@ import { UniqueID } from "@repo/rdx-ddd";
import { Asset } from "./asset.aggregate";
import type { AssetInput } from "./asset-values";
import { AssetSpecification, AssetValues } from "./value-objects/asset-values";
import { AssetSpecification, AssetValues } from "./value-objects/asset-values.vo";
const company = UniqueID.generateNewID();
const actor = UniqueID.generateNewID();

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { SupportValues } from "./value-objects/support-values";
import type { SupportValues } from "./value-objects/support-values.vo";
export type SupportConnectionRevisionProps = Readonly<{
values: SupportValues;
actorId: UniqueID;

View File

@ -5,7 +5,7 @@ import { z } from "zod/v4";
import { SupportConnectionRevision } from "./support-connection-revision.entity";
import { SupportError } from "./support-values";
import type { SupportValues } from "./value-objects/support-values";
import type { SupportValues } from "./value-objects/support-values.vo";
type SupportConnectionProps = Readonly<{
companyId: UniqueID;

View File

@ -9,7 +9,7 @@ import { SupportPersistenceMapper } from "../infrastructure/persistence/support-
import { SupportConnection } from "./support-connection.aggregate";
import { SupportTool } from "./support-tool.aggregate";
import { SupportValuesSchema } from "./support-values";
import { SupportValues } from "./value-objects/support-values";
import { SupportValues } from "./value-objects/support-values.vo";
const company = UniqueID.generateNewID();
const asset = UniqueID.generateNewID();

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { WorkstationValues } from "./value-objects/workstation-values";
import type { WorkstationValues } from "./value-objects/workstation-values.vo";
export type WorkstationRevisionProps = Readonly<{
values: WorkstationValues;
actorId: UniqueID;

View File

@ -4,7 +4,7 @@ import { Result } from "@repo/rdx-utils";
import { z } from "zod/v4";
import { AssetCatalogError } from "./asset-definition";
import type { WorkstationValues } from "./value-objects/workstation-values";
import type { WorkstationValues } from "./value-objects/workstation-values.vo";
import { WorkstationRevision } from "./workstation-revision.entity";
type WorkstationProps = Readonly<{

View File

@ -3,7 +3,7 @@ import { test } from "node:test";
import { UniqueID } from "@repo/rdx-ddd";
import { WorkstationValues } from "./value-objects/workstation-values";
import { WorkstationValues } from "./value-objects/workstation-values.vo";
import { Workstation } from "./workstation.aggregate";
import type { WorkstationInput } from "./workstation-values";

View File

@ -8,7 +8,7 @@ import {
CatalogAvailability,
TemplateField,
} from "../../domain/asset-definition.entity";
import { AssetDefinitionValues } from "../../domain/value-objects/asset-definition-values";
import { AssetDefinitionValues } from "../../domain/value-objects/asset-definition-values.vo";
import type {
AvailabilityModel,

View File

@ -4,7 +4,7 @@ import { z } from "zod/v4";
import { Asset } from "../../domain/asset.aggregate";
import { AssetRevision } from "../../domain/asset-revision.entity";
import { AssetInputSchema, AssetSpecificationSchema } from "../../domain/asset-values";
import { AssetSpecification, AssetValues } from "../../domain/value-objects/asset-values";
import { AssetSpecification, AssetValues } from "../../domain/value-objects/asset-values.vo";
import type { AssetModel, AssetRevisionModel } from "./asset.model";
export function inventoryIdentity(value: string) {

View File

@ -5,7 +5,7 @@ import { AssetRelationship } from "../../domain/asset-relationship.aggregate";
import {
AssetRelationshipValues,
RelationshipValuesSchema,
} from "../../domain/value-objects/asset-relationship-values";
} from "../../domain/value-objects/asset-relationship-values.vo";
import { inventoryIdentity } from "./asset-persistence.mapper";
import type { RelationshipModel } from "./asset-relationship.model";

View File

@ -5,7 +5,7 @@ import { SupportConnection } from "../../domain/support-connection.aggregate";
import { SupportConnectionRevision } from "../../domain/support-connection-revision.entity";
import { SupportTool } from "../../domain/support-tool.aggregate";
import { SupportValuesSchema } from "../../domain/support-values";
import { SupportValues } from "../../domain/value-objects/support-values";
import { SupportValues } from "../../domain/value-objects/support-values.vo";
const RootSchema = z.strictObject({
id: z.uuid(),

View File

@ -1,6 +1,6 @@
import { z } from "zod/v4";
import { WorkstationValues } from "../../domain/value-objects/workstation-values";
import { WorkstationValues } from "../../domain/value-objects/workstation-values.vo";
import { Workstation } from "../../domain/workstation.aggregate";
import { WorkstationRevision } from "../../domain/workstation-revision.entity";
import { WorkstationInputSchema } from "../../domain/workstation-values";

View File

@ -1,6 +1,6 @@
import { z } from "zod/v4";
import { RelationshipValuesSchema } from "../api/domain/value-objects/asset-relationship-values";
import { RelationshipValuesSchema } from "../api/domain/value-objects/asset-relationship-values.vo";
export const RelationshipInputSchema = z.strictObject({
sourceId: z.uuid(),

View File

@ -4,7 +4,7 @@ import { Maybe, Result } from "@repo/rdx-utils";
import type { AccessFieldsDTO } from "../../common/dto/shared/access.dto";
import { AccessError } from "../domain/access/access-error";
import { AccessItem } from "../domain/access/access-item.entity";
import { AccessValues } from "../domain/access/access-values";
import { AccessValues } from "../domain/access/access-values.vo";
import type { IAccessRepository } from "./access.repository";
export class AccessUseCases {

View File

@ -3,7 +3,7 @@ import { Result } from "@repo/rdx-utils";
import type { ApplicationConfiguration } from "../domain/application-configuration.aggregate";
import type { ApplicationConfigurationInput } from "../domain/application-configuration-values";
import { ApplicationConfigurationError } from "../domain/application-configuration-values";
import { ApplicationConfigurationValues } from "../domain/value-objects/application-configuration-values";
import { ApplicationConfigurationValues } from "../domain/value-objects/application-configuration-values.vo";
import type { ApplicationContext } from "./application-configuration.repository";
import { applicationAvailable, applicationReferences } from "./application-configuration-policy";

View File

@ -1,4 +1,4 @@
import type { ApplicationConfigurationValues } from "../domain/value-objects/application-configuration-values";
import type { ApplicationConfigurationValues } from "../domain/value-objects/application-configuration-values.vo";
import type { ApplicationContext } from "./application-configuration.repository";
export function applicationReferences(

View File

@ -3,7 +3,7 @@ import { Result } from "@repo/rdx-utils";
import type { CertificateConfiguration } from "../domain/certificate-configuration.aggregate";
import type { CertificateConfigurationInput } from "../domain/certificate-configuration-values";
import { CertificateConfigurationError } from "../domain/certificate-configuration-values";
import { CertificateConfigurationValues } from "../domain/value-objects/certificate-configuration-values";
import { CertificateConfigurationValues } from "../domain/value-objects/certificate-configuration-values.vo";
import type { CertificateContext } from "./certificate-configuration.repository";
import { certificateAvailable, certificateReferences } from "./certificate-configuration-policy";

View File

@ -1,4 +1,4 @@
import type { CertificateConfigurationValues } from "../domain/value-objects/certificate-configuration-values";
import type { CertificateConfigurationValues } from "../domain/value-objects/certificate-configuration-values.vo";
import type { CertificateContext } from "./certificate-configuration.repository";
export function certificateReferences(

View File

@ -10,9 +10,9 @@ import type {
SiteRequestDTO,
} from "../../common";
import { CompanyError } from "../domain/company-error";
import { CalendarDate } from "../domain/value-objects/calendar-date";
import { PhoneNumber } from "../domain/value-objects/phone-number";
import { SiteAddress } from "../domain/value-objects/site-address";
import { CalendarDate } from "../domain/value-objects/calendar-date.vo";
import { PhoneNumber } from "../domain/value-objects/phone-number.vo";
import { SiteAddress } from "../domain/value-objects/site-address.vo";
function optional<T>(
value: string | null,

View File

@ -3,7 +3,7 @@ import { Result } from "@repo/rdx-utils";
import type { FolderMapping } from "../domain/folder-mapping.aggregate";
import type { FolderMappingInput } from "../domain/folder-mapping-values";
import { FolderMappingError } from "../domain/folder-mapping-values";
import { FolderMappingValues } from "../domain/value-objects/folder-mapping-values";
import { FolderMappingValues } from "../domain/value-objects/folder-mapping-values.vo";
import type { FolderContext } from "./folder-mapping.repository";
import { folderAvailable, folderReferences } from "./folder-mapping-policy";

View File

@ -1,6 +1,6 @@
import { projectAccess } from "../domain/access/access-projection";
import type { FolderMappingValues } from "../domain/value-objects/folder-mapping-values";
import { SharedFolderPath } from "../domain/value-objects/shared-folder-path";
import type { FolderMappingValues } from "../domain/value-objects/folder-mapping-values.vo";
import { SharedFolderPath } from "../domain/value-objects/shared-folder-path.vo";
import type { FolderContext } from "./folder-mapping.repository";
export function folderReferences(values: FolderMappingValues, context: FolderContext) {

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import type { Result } from "@repo/rdx-utils";
import type { AccessValues } from "../domain/access/access-values";
import type { AccessValues } from "../domain/access/access-values.vo";
import type { FolderMapping } from "../domain/folder-mapping.aggregate";
import type { FolderMappingError } from "../domain/folder-mapping-values";
import type { WorkProfile } from "../domain/work-profile.aggregate";

View File

@ -3,7 +3,7 @@ import { Result } from "@repo/rdx-utils";
import type { Intervention } from "../domain/intervention.aggregate";
import type { InterventionInput } from "../domain/intervention-values";
import { InterventionError } from "../domain/intervention-values";
import { InterventionValues } from "../domain/value-objects/intervention-values";
import { InterventionValues } from "../domain/value-objects/intervention-values.vo";
import type { InterventionSaveContext } from "./intervention.repository";
import { targetOptions } from "./ticket.repository";

View File

@ -5,7 +5,7 @@ import type { SaveInterventionTemplateInput } from "../../common/intervention-te
import { SaveInterventionTemplateSchema } from "../../common/intervention-templates";
import { InterventionTemplate } from "../domain/intervention-template.aggregate";
import { InterventionTemplateError } from "../domain/intervention-template-values";
import { InterventionTemplateValues } from "../domain/value-objects/intervention-template-values";
import { InterventionTemplateValues } from "../domain/value-objects/intervention-template-values.vo";
import type { IInterventionTemplateRepository } from "./intervention-template.repository";

View File

@ -5,8 +5,8 @@ import type { SaveInterventionInput } from "../../common/interventions";
import { SaveInterventionSchema } from "../../common/interventions";
import { Intervention } from "../domain/intervention.aggregate";
import { InterventionError } from "../domain/intervention-values";
import { InterventionProcedure } from "../domain/value-objects/intervention-procedure";
import { InterventionValues } from "../domain/value-objects/intervention-values";
import { InterventionProcedure } from "../domain/value-objects/intervention-procedure.vo";
import { InterventionValues } from "../domain/value-objects/intervention-values.vo";
import type { IInterventionRepository, InterventionSaveContext } from "./intervention.repository";
import { mapInterventionInput } from "./intervention-input.mapper";

View File

@ -4,7 +4,7 @@ import { Result } from "@repo/rdx-utils";
import type { MailConfiguration } from "../domain/mail-configuration.aggregate";
import type { MailConfigurationInput } from "../domain/mail-configuration-values";
import { MailConfigurationError } from "../domain/mail-configuration-values";
import { MailConfigurationValues } from "../domain/value-objects/mail-configuration-values";
import { MailConfigurationValues } from "../domain/value-objects/mail-configuration-values.vo";
import type { MailContext } from "./mail-configuration.repository";
import { mailAuthorized } from "./mail-configuration-policy";

View File

@ -1,4 +1,4 @@
import type { MailConfigurationValues } from "../domain/value-objects/mail-configuration-values";
import type { MailConfigurationValues } from "../domain/value-objects/mail-configuration-values.vo";
import type { MailContext } from "./mail-configuration.repository";
export function mailAuthorized(values: MailConfigurationValues, context: MailContext) {

View File

@ -4,8 +4,8 @@ import type { Mailbox } from "../domain/mailbox.aggregate";
import type { MailboxUse } from "../domain/mailbox-use.aggregate";
import type { MailboxInput, MailboxUseInput } from "../domain/mailbox-values";
import { MailboxError } from "../domain/mailbox-values";
import { MailboxUseValues } from "../domain/value-objects/mailbox-use-values";
import { MailboxValues } from "../domain/value-objects/mailbox-values";
import { MailboxUseValues } from "../domain/value-objects/mailbox-use-values.vo";
import { MailboxValues } from "../domain/value-objects/mailbox-values.vo";
import type { MailboxContext } from "./mailbox.repository";

View File

@ -3,7 +3,7 @@ import { Result } from "@repo/rdx-utils";
import type { PrinterConfiguration } from "../domain/printer-configuration.aggregate";
import type { PrinterConfigurationInput } from "../domain/printer-configuration-values";
import { PrinterConfigurationError } from "../domain/printer-configuration-values";
import { PrinterConfigurationValues } from "../domain/value-objects/printer-configuration-values";
import { PrinterConfigurationValues } from "../domain/value-objects/printer-configuration-values.vo";
import type { PrinterContext } from "./printer-configuration.repository";
import { printerAvailable, printerReferences } from "./printer-configuration-policy";

View File

@ -1,4 +1,4 @@
import type { PrinterConfigurationValues } from "../domain/value-objects/printer-configuration-values";
import type { PrinterConfigurationValues } from "../domain/value-objects/printer-configuration-values.vo";
import type { PrinterContext } from "./printer-configuration.repository";
export function printerReferences(values: PrinterConfigurationValues, context: PrinterContext) {

View File

@ -10,8 +10,8 @@ import type {
UpdateProcessInput,
} from "../domain/process-values";
import { ProcessError } from "../domain/process-values";
import { ProcessTemplateValues } from "../domain/value-objects/process-template-values";
import { ProcessValues } from "../domain/value-objects/process-values";
import { ProcessTemplateValues } from "../domain/value-objects/process-template-values.vo";
import { ProcessValues } from "../domain/value-objects/process-values.vo";
import type { IProcessRepository } from "./process.repository";
export class ProcessUseCases {

View File

@ -3,7 +3,7 @@ import { Result } from "@repo/rdx-utils";
import type { RemoteConnection } from "../domain/remote-connection.aggregate";
import type { RemoteConnectionInput } from "../domain/remote-connection-values";
import { RemoteConnectionError } from "../domain/remote-connection-values";
import { RemoteConnectionValues } from "../domain/value-objects/remote-connection-values";
import { RemoteConnectionValues } from "../domain/value-objects/remote-connection-values.vo";
import type { RemoteContext } from "./remote-connection.repository";
import { remoteReferences } from "./remote-connection-policy";

View File

@ -1,4 +1,4 @@
import type { RemoteConnectionValues } from "../domain/value-objects/remote-connection-values";
import type { RemoteConnectionValues } from "../domain/value-objects/remote-connection-values.vo";
import type { RemoteContext } from "./remote-connection.repository";
import { teleworkAuthorizationState } from "./telework-authorization-policy";

View File

@ -3,7 +3,7 @@ import { Result } from "@repo/rdx-utils";
import type { TeleworkAuthorization } from "../domain/telework-authorization.aggregate";
import type { TeleworkAuthorizationInput } from "../domain/telework-authorization-values";
import { TeleworkAuthorizationError } from "../domain/telework-authorization-values";
import { TeleworkAuthorizationValues } from "../domain/value-objects/telework-authorization-values";
import { TeleworkAuthorizationValues } from "../domain/value-objects/telework-authorization-values.vo";
import type { TeleworkAuthorizationContext } from "./telework-authorization.repository";

View File

@ -3,7 +3,7 @@ import { Result } from "@repo/rdx-utils";
import type { Ticket } from "../domain/ticket.aggregate";
import type { TicketInput } from "../domain/ticket-values";
import { TicketError } from "../domain/ticket-values";
import { TicketValues } from "../domain/value-objects/ticket-values";
import { TicketValues } from "../domain/value-objects/ticket-values.vo";
import type { TicketOption, TicketSaveContext } from "./ticket.repository";
import { targetOptions } from "./ticket.repository";

View File

@ -4,7 +4,7 @@ import { Result } from "@repo/rdx-utils";
import type { SaveTicketInput } from "../../common/tickets";
import { Ticket } from "../domain/ticket.aggregate";
import { TicketError } from "../domain/ticket-values";
import { TicketValues } from "../domain/value-objects/ticket-values";
import { TicketValues } from "../domain/value-objects/ticket-values.vo";
import type { ITicketRepository } from "./ticket.repository";
import { mapTicketInput } from "./ticket-input.mapper";

View File

@ -1,6 +1,6 @@
import { Result } from "@repo/rdx-utils";
import { WorkProfileValues } from "../domain/value-objects/work-profile-values";
import { WorkProfileValues } from "../domain/value-objects/work-profile-values.vo";
import type { WorkProfile } from "../domain/work-profile.aggregate";
import type { WorkProfileInput } from "../domain/work-profile-values";
import { WorkProfileError } from "../domain/work-profile-values";

View File

@ -5,7 +5,7 @@ import { Result } from "@repo/rdx-utils";
import type { AccessDefinition } from "./access-definition";
import { AccessError } from "./access-error";
import { AccessValues } from "./access-values";
import { AccessValues } from "./access-values.vo";
export type AuditContext = Readonly<{ actorId: UniqueID; recordedAt: string }>;
export class AccessRevision extends DomainEntity<AuditContext & { values: AccessValues }> {

View File

@ -1,7 +1,7 @@
import { Name, UniqueID } from "@repo/rdx-ddd";
import { Maybe, Result } from "@repo/rdx-utils";
import { CalendarDate } from "../value-objects/calendar-date";
import { CalendarDate } from "../value-objects/calendar-date.vo";
import type { AccessDefinition } from "./access-definition";
import { AccessDefinitionSchema } from "./access-definition";

View File

@ -14,7 +14,7 @@ import {
checkConfiguration,
checkRelations,
} from "./access-policy";
import type { AccessValues } from "./access-values";
import type { AccessValues } from "./access-values.vo";
export type AccessContext = Readonly<{
catalog: readonly AccessItem[];

View File

@ -10,7 +10,7 @@ import { Person } from "../person.entity";
import type { AccessDefinition } from "./access-definition";
import { AccessDefinitionSchema } from "./access-definition";
import { AccessItem } from "./access-item.entity";
import { AccessValues } from "./access-values";
import { AccessValues } from "./access-values.vo";
import type { AccessContext } from "./access-workspace.aggregate";
import { AccessWorkspace } from "./access-workspace.aggregate";

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { ApplicationConfigurationValues } from "./value-objects/application-configuration-values";
import type { ApplicationConfigurationValues } from "./value-objects/application-configuration-values.vo";
export type ApplicationConfigurationRevisionProps = Readonly<{
values: ApplicationConfigurationValues;
actorId: UniqueID;

View File

@ -8,7 +8,7 @@ import {
APPLICATION_STATE_TRANSITIONS,
ApplicationConfigurationError,
} from "./application-configuration-values";
import type { ApplicationConfigurationValues } from "./value-objects/application-configuration-values";
import type { ApplicationConfigurationValues } from "./value-objects/application-configuration-values.vo";
type Props = Readonly<{
companyId: UniqueID;

View File

@ -11,8 +11,8 @@ import { ApplicationConfigurationPersistenceMapper } from "../infrastructure/per
import { ApplicationConfiguration } from "./application-configuration.aggregate";
import type { ApplicationConfigurationInput } from "./application-configuration-values";
import { ApplicationConfigurationInputSchema } from "./application-configuration-values";
import { ApplicationConfigurationValues } from "./value-objects/application-configuration-values";
import { WorkProfileValues } from "./value-objects/work-profile-values";
import { ApplicationConfigurationValues } from "./value-objects/application-configuration-values.vo";
import { WorkProfileValues } from "./value-objects/work-profile-values.vo";
import { WorkProfile } from "./work-profile.aggregate";
const company = UniqueID.generateNewID();

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { CertificateConfigurationValues } from "./value-objects/certificate-configuration-values";
import type { CertificateConfigurationValues } from "./value-objects/certificate-configuration-values.vo";
export type CertificateConfigurationRevisionProps = Readonly<{
values: CertificateConfigurationValues;
actorId: UniqueID;

View File

@ -8,7 +8,7 @@ import {
CERTIFICATE_STATE_TRANSITIONS,
CertificateConfigurationError,
} from "./certificate-configuration-values";
import type { CertificateConfigurationValues } from "./value-objects/certificate-configuration-values";
import type { CertificateConfigurationValues } from "./value-objects/certificate-configuration-values.vo";
type Props = Readonly<{
companyId: UniqueID;

View File

@ -11,8 +11,8 @@ import { CertificateConfigurationPersistenceMapper } from "../infrastructure/per
import { CertificateConfiguration } from "./certificate-configuration.aggregate";
import type { CertificateConfigurationInput } from "./certificate-configuration-values";
import { CertificateConfigurationInputSchema } from "./certificate-configuration-values";
import { CertificateConfigurationValues } from "./value-objects/certificate-configuration-values";
import { WorkProfileValues } from "./value-objects/work-profile-values";
import { CertificateConfigurationValues } from "./value-objects/certificate-configuration-values.vo";
import { WorkProfileValues } from "./value-objects/work-profile-values.vo";
import { WorkProfile } from "./work-profile.aggregate";
const company = UniqueID.generateNewID();

View File

@ -5,7 +5,7 @@ import { Result } from "@repo/rdx-utils";
import { CompanyError } from "./company-error";
import { sameOptional } from "./person.entity";
import type { CalendarDate } from "./value-objects/calendar-date";
import type { CalendarDate } from "./value-objects/calendar-date.vo";
export type AssignmentValues = Readonly<{
position: Maybe<Name>;

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { FolderMappingValues } from "./value-objects/folder-mapping-values";
import type { FolderMappingValues } from "./value-objects/folder-mapping-values.vo";
export type FolderMappingRevisionProps = Readonly<{
values: FolderMappingValues;
actorId: UniqueID;

View File

@ -5,7 +5,7 @@ import { z } from "zod/v4";
import { FolderMappingRevision } from "./folder-mapping-revision.entity";
import { FOLDER_STATE_TRANSITIONS, FolderMappingError } from "./folder-mapping-values";
import type { FolderMappingValues } from "./value-objects/folder-mapping-values";
import type { FolderMappingValues } from "./value-objects/folder-mapping-values.vo";
type Props = Readonly<{
companyId: UniqueID;

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { InterventionValues } from "./value-objects/intervention-values";
import type { InterventionValues } from "./value-objects/intervention-values.vo";
export type InterventionRevisionProps = Readonly<{
values: InterventionValues;
actorId: UniqueID;

View File

@ -2,7 +2,7 @@ import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { Maybe } from "@repo/rdx-utils";
import type { InterventionTemplateValues } from "./value-objects/intervention-template-values";
import type { InterventionTemplateValues } from "./value-objects/intervention-template-values.vo";
type Props = Readonly<{
values: InterventionTemplateValues;

View File

@ -2,7 +2,7 @@ import { UniqueID } from "@repo/rdx-ddd";
import { Maybe } from "@repo/rdx-utils";
import { InterventionTemplate } from "./intervention-template.aggregate";
import { InterventionTemplateValues } from "./value-objects/intervention-template-values";
import { InterventionTemplateValues } from "./value-objects/intervention-template-values.vo";
const definitions = [
[

View File

@ -5,7 +5,7 @@ import { z } from "zod/v4";
import { InterventionTemplateRevision } from "./intervention-template-revision.entity";
import { InterventionTemplateError } from "./intervention-template-values";
import type { InterventionTemplateValues } from "./value-objects/intervention-template-values";
import type { InterventionTemplateValues } from "./value-objects/intervention-template-values.vo";
type Props = Readonly<{
companyId: Maybe<UniqueID>;

View File

@ -11,7 +11,7 @@ import { InterventionTemplate } from "./intervention-template.aggregate";
import { interventionTemplateSeeds } from "./intervention-template-seed";
import type { InterventionTemplateInput } from "./intervention-template-values";
import { InterventionTemplateInputSchema } from "./intervention-template-values";
import { InterventionTemplateValues } from "./value-objects/intervention-template-values";
import { InterventionTemplateValues } from "./value-objects/intervention-template-values.vo";
const actor = UniqueID.generateNewID();
const date = "2026-10-07T10:00:00.000Z";

View File

@ -6,8 +6,8 @@ import { z } from "zod/v4";
import { InterventionRevision } from "./intervention-revision.entity";
import { InterventionError } from "./intervention-values";
import type { InterventionProcedure } from "./value-objects/intervention-procedure";
import type { InterventionValues } from "./value-objects/intervention-values";
import type { InterventionProcedure } from "./value-objects/intervention-procedure.vo";
import type { InterventionValues } from "./value-objects/intervention-values.vo";
type InterventionProps = Readonly<{
companyId: UniqueID;

View File

@ -9,8 +9,8 @@ import { InterventionPersistenceMapper } from "../infrastructure/persistence/int
import { Intervention } from "./intervention.aggregate";
import type { InterventionInput } from "./intervention-values";
import { InterventionInputSchema } from "./intervention-values";
import { InterventionProcedure } from "./value-objects/intervention-procedure";
import { InterventionValues } from "./value-objects/intervention-values";
import { InterventionProcedure } from "./value-objects/intervention-procedure.vo";
import { InterventionValues } from "./value-objects/intervention-values.vo";
const actor = UniqueID.generateNewID();
function input(): InterventionInput {

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { MailConfigurationValues } from "./value-objects/mail-configuration-values";
import type { MailConfigurationValues } from "./value-objects/mail-configuration-values.vo";
export type MailRevisionProps = Readonly<{
values: MailConfigurationValues;
actorId: UniqueID;

View File

@ -5,7 +5,7 @@ import { z } from "zod/v4";
import { MailConfigurationRevision } from "./mail-configuration-revision.entity";
import { MAIL_STATE_TRANSITIONS, MailConfigurationError } from "./mail-configuration-values";
import type { MailConfigurationValues } from "./value-objects/mail-configuration-values";
import type { MailConfigurationValues } from "./value-objects/mail-configuration-values.vo";
type Props = Readonly<{
companyId: UniqueID;

View File

@ -13,10 +13,10 @@ import { MailConfigurationRevision } from "./mail-configuration-revision.entity"
import type { MailConfigurationInput, MailSnapshot } from "./mail-configuration-values";
import { Mailbox } from "./mailbox.aggregate";
import { MailboxUse } from "./mailbox-use.aggregate";
import { MailConfigurationValues } from "./value-objects/mail-configuration-values";
import { MailboxUseValues } from "./value-objects/mailbox-use-values";
import { MailboxValues } from "./value-objects/mailbox-values";
import { WorkProfileValues } from "./value-objects/work-profile-values";
import { MailConfigurationValues } from "./value-objects/mail-configuration-values.vo";
import { MailboxUseValues } from "./value-objects/mailbox-use-values.vo";
import { MailboxValues } from "./value-objects/mailbox-values.vo";
import { WorkProfileValues } from "./value-objects/work-profile-values.vo";
import { WorkProfile } from "./work-profile.aggregate";
const company = UniqueID.generateNewID();

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { MailboxValues } from "./value-objects/mailbox-values";
import type { MailboxValues } from "./value-objects/mailbox-values.vo";
export type MailboxRevisionProps = Readonly<{
values: MailboxValues;
actorId: UniqueID;

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { MailboxUseValues } from "./value-objects/mailbox-use-values";
import type { MailboxUseValues } from "./value-objects/mailbox-use-values.vo";
export type MailboxUseRevisionProps = Readonly<{
values: MailboxUseValues;
actorId: UniqueID;

View File

@ -5,7 +5,7 @@ import { z } from "zod/v4";
import { MailboxUseRevision } from "./mailbox-use-revision.entity";
import { MailboxError } from "./mailbox-values";
import type { MailboxUseValues } from "./value-objects/mailbox-use-values";
import type { MailboxUseValues } from "./value-objects/mailbox-use-values.vo";
type MailboxUseProps = Readonly<{
companyId: UniqueID;

View File

@ -5,7 +5,7 @@ import { z } from "zod/v4";
import { MailboxRevision } from "./mailbox-revision.entity";
import { MailboxError } from "./mailbox-values";
import type { MailboxValues } from "./value-objects/mailbox-values";
import type { MailboxValues } from "./value-objects/mailbox-values.vo";
type MailboxProps = Readonly<{
companyId: UniqueID;

View File

@ -9,8 +9,8 @@ import { MailboxPersistenceMapper } from "../infrastructure/persistence/mailbox-
import { Mailbox } from "./mailbox.aggregate";
import { MailboxUse } from "./mailbox-use.aggregate";
import { MailboxUseValues } from "./value-objects/mailbox-use-values";
import { MailboxValues } from "./value-objects/mailbox-values";
import { MailboxUseValues } from "./value-objects/mailbox-use-values.vo";
import { MailboxValues } from "./value-objects/mailbox-values.vo";
const company = UniqueID.generateNewID();
const actor = UniqueID.generateNewID();

View File

@ -4,7 +4,7 @@ import type { Maybe } from "@repo/rdx-utils";
import { Result } from "@repo/rdx-utils";
import { CompanyError } from "./company-error";
import type { PhoneNumber } from "./value-objects/phone-number";
import type { PhoneNumber } from "./value-objects/phone-number.vo";
export type PersonProps = Readonly<{
companyId: UniqueID;

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { PrinterConfigurationValues } from "./value-objects/printer-configuration-values";
import type { PrinterConfigurationValues } from "./value-objects/printer-configuration-values.vo";
export type PrinterConfigurationRevisionProps = Readonly<{
values: PrinterConfigurationValues;
actorId: UniqueID;

View File

@ -8,7 +8,7 @@ import {
PRINTER_STATE_TRANSITIONS,
PrinterConfigurationError,
} from "./printer-configuration-values";
import type { PrinterConfigurationValues } from "./value-objects/printer-configuration-values";
import type { PrinterConfigurationValues } from "./value-objects/printer-configuration-values.vo";
type Props = Readonly<{
companyId: UniqueID;

View File

@ -11,8 +11,8 @@ import { PrinterConfigurationPersistenceMapper } from "../infrastructure/persist
import { PrinterConfiguration } from "./printer-configuration.aggregate";
import type { PrinterConfigurationInput } from "./printer-configuration-values";
import { PrinterConfigurationInputSchema } from "./printer-configuration-values";
import { PrinterConfigurationValues } from "./value-objects/printer-configuration-values";
import { WorkProfileValues } from "./value-objects/work-profile-values";
import { PrinterConfigurationValues } from "./value-objects/printer-configuration-values.vo";
import { WorkProfileValues } from "./value-objects/work-profile-values.vo";
import { WorkProfile } from "./work-profile.aggregate";
const company = UniqueID.generateNewID();

View File

@ -2,7 +2,7 @@ import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { Maybe } from "@repo/rdx-utils";
import type { ProcessValues } from "./value-objects/process-values";
import type { ProcessValues } from "./value-objects/process-values.vo";
type Props = Readonly<{ values: ProcessValues; actorId: Maybe<UniqueID>; recordedAt: string }>;
export class PersonProcessRevision extends DomainEntity<Props> {

View File

@ -2,49 +2,9 @@ import { DomainEntity, Name, UniqueID } from "@repo/rdx-ddd";
import { Maybe } from "@repo/rdx-utils";
import type { ProcessReferenceInput, ProcessTaskInput } from "./process-values";
import { ProcessReferenceSchema, ProcessTaskSchema } from "./process-values";
import { ProcessTaskSchema } from "./process-values";
import { ProcessReferenceValues } from "./value-objects/process-reference-values.vo";
class ProcessReferenceValues {
private constructor(
public readonly id: UniqueID,
public readonly label: Name,
public readonly kind: ProcessReferenceInput["kind"],
public readonly sourceKind: Maybe<ProcessReferenceInput["sourceKind"]>
) {
Object.freeze(this);
}
static create(input: ProcessReferenceInput) {
const value = ProcessReferenceSchema.parse(input);
const id = UniqueID.create(value.id);
const label = Name.create(value.label, 500);
if (!(id.isSuccess && label.isSuccess)) {
throw new Error("Referencia de tarea inconsistente.");
}
return new ProcessReferenceValues(
id.data,
label.data,
value.kind,
value.sourceKind ? Maybe.some(value.sourceKind) : Maybe.none()
);
}
toPrimitive(): ProcessReferenceInput {
const sourceKind = this.sourceKind.getOrUndefined();
return {
kind: this.kind,
id: this.id.toPrimitive(),
label: this.label.toPrimitive(),
...(sourceKind ? { sourceKind } : {}),
};
}
equals(other: ProcessReferenceValues) {
return (
this.id.equals(other.id) &&
this.label.equals(other.label) &&
this.kind === other.kind &&
this.sourceKind.getOrUndefined() === other.sourceKind.getOrUndefined()
);
}
}
type Values = {
title: Name;
status: ProcessTaskInput["status"];

View File

@ -2,7 +2,7 @@ import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { Maybe } from "@repo/rdx-utils";
import type { ProcessTemplateValues } from "./value-objects/process-template-values";
import type { ProcessTemplateValues } from "./value-objects/process-template-values.vo";
type Props = Readonly<{
values: ProcessTemplateValues;

View File

@ -5,7 +5,7 @@ import { z } from "zod/v4";
import { ProcessTemplateRevision } from "./process-template-revision.entity";
import { ProcessError } from "./process-values";
import type { ProcessTemplateValues } from "./value-objects/process-template-values";
import type { ProcessTemplateValues } from "./value-objects/process-template-values.vo";
type Props = Readonly<{
values: ProcessTemplateValues;

View File

@ -7,7 +7,7 @@ import { PersonProcessRevision } from "./process-revision.entity";
import { ProcessTask } from "./process-task.entity";
import type { ProcessReferenceInput } from "./process-values";
import { ProcessError } from "./process-values";
import { ProcessValues } from "./value-objects/process-values";
import { ProcessValues } from "./value-objects/process-values.vo";
type Props = Readonly<{
companyId: UniqueID;

View File

@ -17,8 +17,8 @@ import {
ProcessValuesSchema,
StartProcessInputSchema,
} from "./process-values";
import { ProcessTemplateValues } from "./value-objects/process-template-values";
import { ProcessValues } from "./value-objects/process-values";
import { ProcessTemplateValues } from "./value-objects/process-template-values.vo";
import { ProcessValues } from "./value-objects/process-values.vo";
const company = UniqueID.generateNewID();
const actor = UniqueID.generateNewID();

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { RemoteConnectionValues } from "./value-objects/remote-connection-values";
import type { RemoteConnectionValues } from "./value-objects/remote-connection-values.vo";
export type RemoteConnectionRevisionProps = Readonly<{
values: RemoteConnectionValues;
actorId: UniqueID;

View File

@ -5,7 +5,7 @@ import { z } from "zod/v4";
import { RemoteConnectionRevision } from "./remote-connection-revision.entity";
import { REMOTE_STATE_TRANSITIONS, RemoteConnectionError } from "./remote-connection-values";
import type { RemoteConnectionValues } from "./value-objects/remote-connection-values";
import type { RemoteConnectionValues } from "./value-objects/remote-connection-values.vo";
type Props = Readonly<{
companyId: UniqueID;

View File

@ -12,8 +12,8 @@ import { RemoteConnection } from "./remote-connection.aggregate";
import type { RemoteConnectionInput } from "./remote-connection-values";
import { RemoteConnectionInputSchema } from "./remote-connection-values";
import { TeleworkAuthorization } from "./telework-authorization.aggregate";
import { RemoteConnectionValues } from "./value-objects/remote-connection-values";
import { TeleworkAuthorizationValues } from "./value-objects/telework-authorization-values";
import { RemoteConnectionValues } from "./value-objects/remote-connection-values.vo";
import { TeleworkAuthorizationValues } from "./value-objects/telework-authorization-values.vo";
const company = UniqueID.generateNewID();
const person = UniqueID.generateNewID();

View File

@ -4,7 +4,7 @@ import type { Maybe } from "@repo/rdx-utils";
import { Result } from "@repo/rdx-utils";
import { CompanyError } from "./company-error";
import type { SiteAddress } from "./value-objects/site-address";
import type { SiteAddress } from "./value-objects/site-address.vo";
export type SiteProps = Readonly<{ companyId: UniqueID; name: Name; address: Maybe<SiteAddress> }>;
export class Site extends DomainEntity<SiteProps> {

View File

@ -1,7 +1,7 @@
import type { UniqueID } from "@repo/rdx-ddd";
import { DomainEntity } from "@repo/rdx-ddd";
import type { TeleworkAuthorizationValues } from "./value-objects/telework-authorization-values";
import type { TeleworkAuthorizationValues } from "./value-objects/telework-authorization-values.vo";
export type TeleworkAuthorizationRevisionProps = Readonly<{
values: TeleworkAuthorizationValues;
actorId: UniqueID;

Some files were not shown because too many files have changed in this diff Show More