From e65524ea3cf12b57bf32906fa95282638deddc6c Mon Sep 17 00:00:00 2001 From: david Date: Thu, 4 Sep 2025 12:02:24 +0200 Subject: [PATCH] Facturas de cliente --- modules/core/src/common/dto/base.schemas.ts | 2 +- modules/core/src/common/dto/percentage.dto.ts | 2 +- modules/core/src/common/dto/quantity.dto.ts | 2 +- .../assembler/get-invoice-items.assembler.ts | 41 ++++++++--------- .../assembler/get-invoice.assembler.ts | 42 +++++++++++++++-- .../get-customer-invoice.use-case.ts | 4 +- ...map-dto-to-customer-invoice-items-props.ts | 4 +- .../customer-invoice-item.ts | 4 +- .../invoice-customer/invoice-address.ts | 7 ++- .../customer-invoice-address-type.ts | 6 +-- .../customer-invoice-item-description.ts | 6 +-- .../customer-invoice-item-subtotal-amount.ts | 2 +- .../customer-invoice-item-total-amount.ts | 4 +- .../customer-invoice-item-unit-amount.ts | 4 +- .../value-objects/customer-invoice-number.ts | 6 +-- .../value-objects/customer-invoice-serie.ts | 6 +-- .../value-objects/customer-invoice-status.ts | 6 +-- .../mappers/customer-invoice-item.mapper.ts | 8 ++-- .../create-customer-invoice.request.dto.ts | 10 ++--- ...get-customer-invoice-by-id.response.dto.ts | 12 ++++- .../value-objects/customer-address-type.ts | 6 +-- .../domain/value-objects/customer-number.ts | 6 +-- .../domain/value-objects/customer-serie.ts | 6 +-- .../domain/value-objects/customer-status.ts | 6 +-- .../__tests__/email-address.test.ts | 4 +- .../__tests__/money-value.test.ts | 32 ++++++------- .../__tests__/percentage.test.ts | 16 +++---- .../__tests__/phone-number.test.ts | 2 +- .../src/value-objects/__tests__/slug.spec.ts | 2 +- .../__tests__/tin-number.test.ts | 2 +- packages/rdx-ddd/src/value-objects/city.ts | 4 +- packages/rdx-ddd/src/value-objects/country.ts | 4 +- .../src/value-objects/currency-code.ts | 2 +- .../src/value-objects/email-address.ts | 4 +- .../src/value-objects/language-code.ts | 2 +- .../rdx-ddd/src/value-objects/money-value.ts | 45 +++++++++---------- packages/rdx-ddd/src/value-objects/name.ts | 4 +- .../rdx-ddd/src/value-objects/percentage.ts | 24 +++++----- .../rdx-ddd/src/value-objects/phone-number.ts | 4 +- .../src/value-objects/postal-address.ts | 4 +- .../rdx-ddd/src/value-objects/postal-code.ts | 2 +- .../rdx-ddd/src/value-objects/province.ts | 4 +- .../rdx-ddd/src/value-objects/quantity.ts | 36 +++++++-------- packages/rdx-ddd/src/value-objects/slug.ts | 4 +- packages/rdx-ddd/src/value-objects/street.ts | 4 +- .../rdx-ddd/src/value-objects/tax-code.ts | 4 +- .../rdx-ddd/src/value-objects/text-value.ts | 4 +- .../rdx-ddd/src/value-objects/tin-number.ts | 2 +- .../rdx-ddd/src/value-objects/unique-id.ts | 6 +-- .../rdx-ddd/src/value-objects/url-address.ts | 4 +- .../rdx-ddd/src/value-objects/utc-date.ts | 2 +- .../rdx-ddd/src/value-objects/value-object.ts | 2 +- 52 files changed, 235 insertions(+), 196 deletions(-) diff --git a/modules/core/src/common/dto/base.schemas.ts b/modules/core/src/common/dto/base.schemas.ts index aef3a04f..acf86435 100644 --- a/modules/core/src/common/dto/base.schemas.ts +++ b/modules/core/src/common/dto/base.schemas.ts @@ -14,6 +14,6 @@ export const NumericStringSchema = z // Cantidad de dinero (base): solo para la cantidad y la escala, sin moneda export const AmountBaseSchema = z.object({ - amount: NumericStringSchema, + value: NumericStringSchema, scale: NumericStringSchema, }); diff --git a/modules/core/src/common/dto/percentage.dto.ts b/modules/core/src/common/dto/percentage.dto.ts index 6117fd1c..d9b1d253 100644 --- a/modules/core/src/common/dto/percentage.dto.ts +++ b/modules/core/src/common/dto/percentage.dto.ts @@ -7,7 +7,7 @@ import { NumericStringSchema } from "./base.schemas"; */ export const PercentageSchema = z.object({ - amount: NumericStringSchema, + value: NumericStringSchema, scale: NumericStringSchema, }); diff --git a/modules/core/src/common/dto/quantity.dto.ts b/modules/core/src/common/dto/quantity.dto.ts index e1370a0a..efc8845c 100644 --- a/modules/core/src/common/dto/quantity.dto.ts +++ b/modules/core/src/common/dto/quantity.dto.ts @@ -7,7 +7,7 @@ import { NumericStringSchema } from "./base.schemas"; */ export const QuantitySchema = z.object({ - amount: NumericStringSchema, + value: NumericStringSchema, scale: NumericStringSchema, }); diff --git a/modules/customer-invoices/src/api/application/get-customer-invoice/assembler/get-invoice-items.assembler.ts b/modules/customer-invoices/src/api/application/get-customer-invoice/assembler/get-invoice-items.assembler.ts index 134c2923..c9e8a7a5 100644 --- a/modules/customer-invoices/src/api/application/get-customer-invoice/assembler/get-invoice-items.assembler.ts +++ b/modules/customer-invoices/src/api/application/get-customer-invoice/assembler/get-invoice-items.assembler.ts @@ -8,41 +8,38 @@ export class GetCustomerInvoiceItemsAssembler { toDTO(invoice: CustomerInvoice): GetCustomerInvoiceItemsByInvoiceIdResponseDTO { const { items } = invoice; return items.map((item, index) => ({ - //id: item. - position: index, + id: item.id.toString(), + position: String(index), description: toEmptyString(item.description, (value) => value.toPrimitive()), quantity: item.quantity.match( (quantity) => { - const { amount, scale } = quantity.toPrimitive(); - return { amount: amount.toString(), scale: scale.toString() }; + const { value, scale } = quantity.toPrimitive(); + return { value: value.toString(), scale: scale.toString() }; }, - () => ({ amount: "", scale: "" }) + () => ({ value: "", scale: "" }) ), - unit_price_amount: item.unitAmount.match( - (unitPrice) => { - const { amount, scale } = unitPrice.toPrimitive(); - return { amount: amount.toString(), scale: scale.toString() }; + unit_amount: item.unitAmount.match( + (unitAmount) => { + const { value, scale } = unitAmount.toPrimitive(); + return { value: value.toString(), scale: scale.toString() }; }, - () => ({ amount: "", scale: "" }) + () => ({ value: "", scale: "" }) ), - discount: item.discount.match( - (discount) => { - const { amount, scale } = discount.toPrimitive(); - return { amount: amount.toString(), scale: scale.toString() }; + discount_percentage: item.discountPercentage.match( + (discountPercentage) => { + const { value, scale } = discountPercentage.toPrimitive(); + return { value: value.toString(), scale: scale.toString() }; }, - () => ({ amount: "", scale: "" }) + () => ({ value: "", scale: "" }) ), - total_amount: item.totalPrice.match( - (discount) => { - const { amount, scale } = discount.toPrimitive(); - return { amount: amount.toString(), scale: scale.toString() }; - }, - () => ({ amount: "", scale: "" }) - ), + total_amount: { + value: item.totalAmount.toPrimitive().value.toString(), + scale: item.totalAmount.toPrimitive().scale.toString(), + }, })); } } diff --git a/modules/customer-invoices/src/api/application/get-customer-invoice/assembler/get-invoice.assembler.ts b/modules/customer-invoices/src/api/application/get-customer-invoice/assembler/get-invoice.assembler.ts index 1bc2808b..bf658a32 100644 --- a/modules/customer-invoices/src/api/application/get-customer-invoice/assembler/get-invoice.assembler.ts +++ b/modules/customer-invoices/src/api/application/get-customer-invoice/assembler/get-invoice.assembler.ts @@ -1,13 +1,17 @@ import { GetCustomerInvoiceByIdResponseDTO } from "@erp/customer-invoices/common/dto"; import { toEmptyString } from "@repo/rdx-ddd"; import { CustomerInvoice } from "../../../domain"; +import { GetCustomerInvoiceItemsAssembler } from "./get-invoice-items.assembler"; export class GetCustomerInvoiceAssembler { - private _itemsAssembler!: GetCu; - constructor() {} + private _itemsAssembler!: GetCustomerInvoiceItemsAssembler; + + constructor() { + this._itemsAssembler = new GetCustomerInvoiceItemsAssembler(); + } public toDTO(invoice: CustomerInvoice): GetCustomerInvoiceByIdResponseDTO { - //const items = invoice.items. + const items = this._itemsAssembler.toDTO(invoice); return { id: invoice.id.toPrimitive(), @@ -25,6 +29,38 @@ export class GetCustomerInvoiceAssembler { language_code: invoice.languageCode.toPrimitive(), currency_code: invoice.currencyCode.toPrimitive(), + subtotal_amount: { + value: invoice.subtotalAmount.value.toString(), + scale: invoice.subtotalAmount.scale.toString(), + }, + + discount_percentage: { + value: invoice.discountPercentage.value.toString(), + scale: invoice.discountPercentage.scale.toString(), + }, + + discount_amount: { + value: invoice.discountAmount.value.toString(), + scale: invoice.discountAmount.scale.toString(), + }, + + taxable_amount: { + value: invoice.taxableAmount.value.toString(), + scale: invoice.taxableAmount.scale.toString(), + }, + + tax_amount: { + value: invoice.taxAmount.value.toString(), + scale: invoice.taxAmount.scale.toString(), + }, + + total_amount: { + value: invoice.totalAmount.value.toString(), + scale: invoice.totalAmount.scale.toString(), + }, + + items, + metadata: { entity: "customer-invoices", }, diff --git a/modules/customer-invoices/src/api/application/get-customer-invoice/get-customer-invoice.use-case.ts b/modules/customer-invoices/src/api/application/get-customer-invoice/get-customer-invoice.use-case.ts index 96ea7a16..3888aea2 100644 --- a/modules/customer-invoices/src/api/application/get-customer-invoice/get-customer-invoice.use-case.ts +++ b/modules/customer-invoices/src/api/application/get-customer-invoice/get-customer-invoice.use-case.ts @@ -2,7 +2,7 @@ import { ITransactionManager } from "@erp/core/api"; import { UniqueID } from "@repo/rdx-ddd"; import { Result } from "@repo/rdx-utils"; import { CustomerInvoiceService } from "../../domain"; -import { GetCustomerInvoiceItemsAssembler } from "./assembler"; +import { GetCustomerInvoiceAssembler } from "./assembler"; type GetCustomerInvoiceUseCaseInput = { companyId: UniqueID; @@ -13,7 +13,7 @@ export class GetCustomerInvoiceUseCase { constructor( private readonly service: CustomerInvoiceService, private readonly transactionManager: ITransactionManager, - private readonly assembler: GetCustomerInvoiceItemsAssembler + private readonly assembler: GetCustomerInvoiceAssembler ) {} public execute(params: GetCustomerInvoiceUseCaseInput) { diff --git a/modules/customer-invoices/src/api/application/helpers/map-dto-to-customer-invoice-items-props.ts b/modules/customer-invoices/src/api/application/helpers/map-dto-to-customer-invoice-items-props.ts index 2fce4862..86790761 100644 --- a/modules/customer-invoices/src/api/application/helpers/map-dto-to-customer-invoice-items-props.ts +++ b/modules/customer-invoices/src/api/application/helpers/map-dto-to-customer-invoice-items-props.ts @@ -37,7 +37,7 @@ export function mapDTOToCustomerInvoiceItemsProps( const unitPrice = extractOrPushError( CustomerInvoiceItemUnitAmount.create({ - amount: item.unitPrice.amount, + value: item.unitPrice.amount, scale: item.unitPrice.scale, currency_code: item.unitPrice.currency, }), @@ -47,7 +47,7 @@ export function mapDTOToCustomerInvoiceItemsProps( const discount = extractOrPushError( CustomerInvoiceItemDiscount.create({ - amount: item.discount.amount, + value: item.discount.amount, scale: item.discount.scale, }), path("discount"), diff --git a/modules/customer-invoices/src/api/domain/entities/customer-invoice-items/customer-invoice-item.ts b/modules/customer-invoices/src/api/domain/entities/customer-invoice-items/customer-invoice-item.ts index 75b09d01..080fb5b4 100644 --- a/modules/customer-invoices/src/api/domain/entities/customer-invoice-items/customer-invoice-item.ts +++ b/modules/customer-invoices/src/api/domain/entities/customer-invoice-items/customer-invoice-item.ts @@ -59,11 +59,11 @@ export class CustomerInvoiceItem extends DomainEntity return this._subtotalAmount; } - get discount(): Maybe { + get discountPercentage(): Maybe { return this.props.discount; } - get totalPrice(): CustomerInvoiceItemTotalAmount { + get totalAmount(): CustomerInvoiceItemTotalAmount { if (!this._totalAmount) { this._totalAmount = this.calculateTotal(); } diff --git a/modules/customer-invoices/src/api/domain/entities/invoice-customer/invoice-address.ts b/modules/customer-invoices/src/api/domain/entities/invoice-customer/invoice-address.ts index 488bf642..ea67b13d 100644 --- a/modules/customer-invoices/src/api/domain/entities/invoice-customer/invoice-address.ts +++ b/modules/customer-invoices/src/api/domain/entities/invoice-customer/invoice-address.ts @@ -19,7 +19,10 @@ export interface ICustomerInvoiceAddress { phone: PhoneNumber; } -export class CustomerInvoiceAddress extends ValueObject implements ICustomerInvoiceAddress { +export class CustomerInvoiceAddress + extends ValueObject + implements ICustomerInvoiceAddress +{ public static create(props: ICustomerInvoiceAddressProps) { return Result.ok(new CustomerInvoiceAddress(props)); } @@ -62,7 +65,7 @@ export class CustomerInvoiceAddress extends ValueObject Maybe.some(value)); } - getValue(): string { + getProps(): string { return this.props.value; } toString(): string { - return this.getValue(); + return this.getProps(); } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-subtotal-amount.ts b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-subtotal-amount.ts index 13d4179d..e0217cda 100644 --- a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-subtotal-amount.ts +++ b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-subtotal-amount.ts @@ -3,7 +3,7 @@ import { MoneyValue, MoneyValueProps } from "@repo/rdx-ddd"; export class CustomerInvoiceItemSubtotalAmount extends MoneyValue { public static DEFAULT_SCALE = 4; - static create({ amount, currency_code, scale }: MoneyValueProps) { + static create({ value: amount, currency_code, scale }: MoneyValueProps) { const props = { amount: Number(amount), scale: scale ?? MoneyValue.DEFAULT_SCALE, diff --git a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-total-amount.ts b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-total-amount.ts index 07463a47..3d351285 100644 --- a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-total-amount.ts +++ b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-total-amount.ts @@ -3,9 +3,9 @@ import { MoneyValue, MoneyValueProps } from "@repo/rdx-ddd"; export class CustomerInvoiceItemTotalAmount extends MoneyValue { public static DEFAULT_SCALE = 4; - static create({ amount, currency_code, scale }: MoneyValueProps) { + static create({ value, currency_code, scale }: MoneyValueProps) { const props = { - amount: Number(amount), + value: Number(value), scale: scale ?? MoneyValue.DEFAULT_SCALE, currency_code, }; diff --git a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-unit-amount.ts b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-unit-amount.ts index f85d6681..e53736bd 100644 --- a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-unit-amount.ts +++ b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-item-unit-amount.ts @@ -3,7 +3,7 @@ import { MoneyValue, MoneyValueProps } from "@repo/rdx-ddd"; export class CustomerInvoiceItemUnitAmount extends MoneyValue { public static DEFAULT_SCALE = 4; - static create({ amount, currency_code, scale }: MoneyValueProps) { + static create({ value: amount, currency_code, scale }: MoneyValueProps) { const props = { amount: Number(amount), scale: scale ?? MoneyValue.DEFAULT_SCALE, @@ -14,7 +14,7 @@ export class CustomerInvoiceItemUnitAmount extends MoneyValue { static zero(currency_code: string, scale: number = CustomerInvoiceItemUnitAmount.DEFAULT_SCALE) { const props: MoneyValueProps = { - amount: 0, + value: 0, scale, currency_code, }; diff --git a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-number.ts b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-number.ts index 2444b1c7..dbd17f15 100644 --- a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-number.ts +++ b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-number.ts @@ -38,15 +38,15 @@ export class CustomerInvoiceNumber extends ValueObject Maybe.some(value)); } - getValue(): string { + getProps(): string { return this.props.value; } toString(): string { - return this.getValue(); + return this.getProps(); } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-status.ts b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-status.ts index 7ade4596..92ecd299 100644 --- a/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-status.ts +++ b/modules/customer-invoices/src/api/domain/value-objects/customer-invoice-status.ts @@ -71,12 +71,12 @@ export class CustomerInvoiceStatus extends ValueObject return Result.ok(new CustomerAddressType({ value })); } - getValue(): string { + getProps(): string { return this.props.value; } toString(): string { - return this.getValue(); + return this.getProps(); } toPrimitive(): string { - return this.getValue(); + return this.getProps(); } } diff --git a/modules/customers/src/api/domain/value-objects/customer-number.ts b/modules/customers/src/api/domain/value-objects/customer-number.ts index 0132e50d..3825ce13 100644 --- a/modules/customers/src/api/domain/value-objects/customer-number.ts +++ b/modules/customers/src/api/domain/value-objects/customer-number.ts @@ -34,15 +34,15 @@ export class CustomerNumber extends ValueObject { return Result.ok(new CustomerNumber({ value })); } - getValue(): string { + getProps(): string { return this.props.value; } toString(): string { - return this.getValue(); + return this.getProps(); } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/modules/customers/src/api/domain/value-objects/customer-serie.ts b/modules/customers/src/api/domain/value-objects/customer-serie.ts index f2c0bf8e..c75fba6a 100644 --- a/modules/customers/src/api/domain/value-objects/customer-serie.ts +++ b/modules/customers/src/api/domain/value-objects/customer-serie.ts @@ -42,15 +42,15 @@ export class CustomerSerie extends ValueObject { return CustomerSerie.create(value).map((value) => Maybe.some(value)); } - getValue(): string { + getProps(): string { return this.props.value; } toString(): string { - return this.getValue(); + return this.getProps(); } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/modules/customers/src/api/domain/value-objects/customer-status.ts b/modules/customers/src/api/domain/value-objects/customer-status.ts index f66d4a7f..ce2c898d 100644 --- a/modules/customers/src/api/domain/value-objects/customer-status.ts +++ b/modules/customers/src/api/domain/value-objects/customer-status.ts @@ -45,12 +45,12 @@ export class CustomerStatus extends ValueObject { return this.props.value === CUSTOMER_STATUS.ACTIVE; } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive() { - return this.getValue(); + return this.getProps(); } canTransitionTo(nextStatus: string): boolean { @@ -67,6 +67,6 @@ export class CustomerStatus extends ValueObject { } toString(): string { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/__tests__/email-address.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/email-address.test.ts index e33600aa..ddd73a45 100644 --- a/packages/rdx-ddd/src/value-objects/__tests__/email-address.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/email-address.test.ts @@ -5,7 +5,7 @@ describe("EmailAddress Value Object", () => { const result = EmailAddress.create("user@example.com"); expect(result.isSuccess).toBe(true); - expect(result.data.getValue()).toBe("user@example.com"); + expect(result.data.getProps()).toBe("user@example.com"); }); it("should return an error for invalid email format", () => { @@ -43,6 +43,6 @@ describe("EmailAddress Value Object", () => { const email = EmailAddress.create("test@example.com"); expect(email.isSuccess).toBe(true); - expect(email.data.getValue()).toBe("test@example.com"); + expect(email.data.getProps()).toBe("test@example.com"); }); }); diff --git a/packages/rdx-ddd/src/value-objects/__tests__/money-value.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/money-value.test.ts index 69ffda11..e8055a14 100644 --- a/packages/rdx-ddd/src/value-objects/__tests__/money-value.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/money-value.test.ts @@ -2,50 +2,50 @@ import { MoneyValue } from "../money-value"; describe("MoneyValue", () => { test("should correctly instantiate with amount, scale, and currency", () => { - const money = new MoneyValue({ amount: 10000, scale: 2, currency_code: "EUR" }); - expect(money.amount).toBe(100); + const money = new MoneyValue({ value: 10000, scale: 2, currency_code: "EUR" }); + expect(money.value).toBe(100); expect(money.currency).toBe("EUR"); expect(money.scale).toBe(2); }); test("should add two MoneyValue instances with the same currency", () => { - const money1 = new MoneyValue({ amount: 10000, scale: 2, currency_code: "EUR" }); - const money2 = new MoneyValue({ amount: 5000, scale: 2, currency_code: "EUR" }); + const money1 = new MoneyValue({ value: 10000, scale: 2, currency_code: "EUR" }); + const money2 = new MoneyValue({ value: 5000, scale: 2, currency_code: "EUR" }); const result = money1.add(money2); - expect(result.amount).toBe(150); + expect(result.value).toBe(150); }); test("should subtract two MoneyValue instances with the same currency", () => { - const money1 = new MoneyValue({ amount: 20000, scale: 2, currency_code: "EUR" }); - const money2 = new MoneyValue({ amount: 5000, scale: 2, currency_code: "EUR" }); + const money1 = new MoneyValue({ value: 20000, scale: 2, currency_code: "EUR" }); + const money2 = new MoneyValue({ value: 5000, scale: 2, currency_code: "EUR" }); const result = money1.subtract(money2); - expect(result.amount).toBe(150); + expect(result.value).toBe(150); }); test("should throw an error when adding different currencies", () => { - const money1 = new MoneyValue({ amount: 10000, scale: 2, currency_code: "EUR" }); - const money2 = new MoneyValue({ amount: 5000, scale: 2, currency_code: "USD" }); + const money1 = new MoneyValue({ value: 10000, scale: 2, currency_code: "EUR" }); + const money2 = new MoneyValue({ value: 5000, scale: 2, currency_code: "USD" }); expect(() => money1.add(money2)).toThrow( "You must provide a Dinero instance with the same currency" ); }); test("should correctly convert scale", () => { - const money = new MoneyValue({ amount: 10000, scale: 2, currency_code: "EUR" }); + const money = new MoneyValue({ value: 10000, scale: 2, currency_code: "EUR" }); const converted = money.convertScale(4); - expect(converted.amount).toBe(100); + expect(converted.value).toBe(100); expect(converted.scale).toBe(4); }); test("should format correctly according to locale", () => { - const money = new MoneyValue({ amount: 123456, scale: 2, currency_code: "EUR" }); + const money = new MoneyValue({ value: 123456, scale: 2, currency_code: "EUR" }); expect(money.format("en-US")).toBe("€1,234.56"); }); test("should compare MoneyValue instances correctly", () => { - const money1 = new MoneyValue({ amount: 10000, scale: 2, currency_code: "EUR" }); - const money2 = new MoneyValue({ amount: 10000, scale: 2, currency_code: "EUR" }); - const money3 = new MoneyValue({ amount: 5000, scale: 2, currency_code: "EUR" }); + const money1 = new MoneyValue({ value: 10000, scale: 2, currency_code: "EUR" }); + const money2 = new MoneyValue({ value: 10000, scale: 2, currency_code: "EUR" }); + const money3 = new MoneyValue({ value: 5000, scale: 2, currency_code: "EUR" }); expect(money1.equalsTo(money2)).toBe(true); expect(money1.greaterThan(money3)).toBe(true); diff --git a/packages/rdx-ddd/src/value-objects/__tests__/percentage.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/percentage.test.ts index dcda91d5..9b483fb7 100644 --- a/packages/rdx-ddd/src/value-objects/__tests__/percentage.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/percentage.test.ts @@ -2,49 +2,49 @@ import { Percentage } from "../percentage"; // Ajusta la ruta según sea necesar describe("Percentage Value Object", () => { test("Debe crear un porcentaje válido con escala por defecto", () => { - const result = Percentage.create({ amount: 200 }); // 2.00% + const result = Percentage.create({ value: 200 }); // 2.00% expect(result.isSuccess).toBe(true); expect(result.data?.toString()).toBe("2.00%"); }); test("Debe crear un porcentaje válido con escala definida", () => { - const result = Percentage.create({ amount: 2150, scale: 2 }); // 21.50% + const result = Percentage.create({ value: 2150, scale: 2 }); // 21.50% expect(result.isSuccess).toBe(true); expect(result.data?.toString()).toBe("21.50%"); }); test("Debe devolver error si la cantidad supera el 100%", () => { - const result = Percentage.create({ amount: 48732000, scale: 4 }); + const result = Percentage.create({ value: 48732000, scale: 4 }); expect(result.isSuccess).toBe(false); expect(result.error.message).toBe("La escala debe estar entre 0 y 2."); }); test("Debe devolver error si la cantidad es negativa", () => { - const result = Percentage.create({ amount: -100, scale: 2 }); + const result = Percentage.create({ value: -100, scale: 2 }); expect(result.isSuccess).toBe(false); expect(result.error.message).toContain("La cantidad no puede ser negativa."); }); test("Debe devolver error si la escala es menor a 0", () => { - const result = Percentage.create({ amount: 100, scale: -1 }); + const result = Percentage.create({ value: 100, scale: -1 }); expect(result.isSuccess).toBe(false); expect(result.error.message).toContain("Number must be greater than or equal to 0"); }); test("Debe devolver error si la escala es mayor a 10", () => { - const result = Percentage.create({ amount: 100, scale: 11 }); + const result = Percentage.create({ value: 100, scale: 11 }); expect(result.isSuccess).toBe(false); expect(result.error.message).toContain("La escala debe estar entre 0 y 2."); }); test("Debe representar correctamente el valor como string", () => { - const result = Percentage.create({ amount: 750, scale: 2 }); // 7.50% + const result = Percentage.create({ value: 750, scale: 2 }); // 7.50% expect(result.isSuccess).toBe(true); expect(result.data?.toString()).toBe("7.50%"); }); test("Debe manejar correctamente el caso de 0%", () => { - const result = Percentage.create({ amount: 0, scale: 2 }); + const result = Percentage.create({ value: 0, scale: 2 }); expect(result.isSuccess).toBe(true); expect(result.data?.toString()).toBe("0.00%"); }); diff --git a/packages/rdx-ddd/src/value-objects/__tests__/phone-number.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/phone-number.test.ts index 30af29a4..7c1714ba 100644 --- a/packages/rdx-ddd/src/value-objects/__tests__/phone-number.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/phone-number.test.ts @@ -24,7 +24,7 @@ describe("PhoneNumber", () => { const result = PhoneNumber.create(validPhone); expect(result.isSuccess).toBe(true); const phoneNumber = result.data; - expect(phoneNumber?.getValue()).toBe(validPhone); + expect(phoneNumber?.getProps()).toBe(validPhone); }); test("debe obtener el código de país del número", () => { diff --git a/packages/rdx-ddd/src/value-objects/__tests__/slug.spec.ts b/packages/rdx-ddd/src/value-objects/__tests__/slug.spec.ts index f5e398c7..7df17ea3 100644 --- a/packages/rdx-ddd/src/value-objects/__tests__/slug.spec.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/slug.spec.ts @@ -4,7 +4,7 @@ describe("Slug Value Object", () => { test("Debe crear un Slug válido", () => { const slugResult = Slug.create("valid-slug-123"); expect(slugResult.isSuccess).toBe(true); - expect(slugResult.data.getValue()).toBe("valid-slug-123"); + expect(slugResult.data.getProps()).toBe("valid-slug-123"); }); test("Debe fallar si el Slug contiene caracteres inválidos", () => { diff --git a/packages/rdx-ddd/src/value-objects/__tests__/tin-number.test.ts b/packages/rdx-ddd/src/value-objects/__tests__/tin-number.test.ts index 250ad5d7..57c41ea9 100644 --- a/packages/rdx-ddd/src/value-objects/__tests__/tin-number.test.ts +++ b/packages/rdx-ddd/src/value-objects/__tests__/tin-number.test.ts @@ -4,7 +4,7 @@ describe("TINNumber", () => { it("debería crear un TINNumber válido", () => { const result = TINNumber.create("12345"); expect(result.isSuccess).toBe(true); - expect(result.data.getValue()).toBe("12345"); + expect(result.data.getProps()).toBe("12345"); }); it("debería fallar si el valor es demasiado corto", () => { diff --git a/packages/rdx-ddd/src/value-objects/city.ts b/packages/rdx-ddd/src/value-objects/city.ts index 2ac23b1b..83019c13 100644 --- a/packages/rdx-ddd/src/value-objects/city.ts +++ b/packages/rdx-ddd/src/value-objects/city.ts @@ -28,11 +28,11 @@ export class City extends ValueObject { return Result.ok(new City({ value })); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/country.ts b/packages/rdx-ddd/src/value-objects/country.ts index 90107862..fe2edd3f 100644 --- a/packages/rdx-ddd/src/value-objects/country.ts +++ b/packages/rdx-ddd/src/value-objects/country.ts @@ -28,11 +28,11 @@ export class Country extends ValueObject { return Result.ok(new Country({ value })); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/currency-code.ts b/packages/rdx-ddd/src/value-objects/currency-code.ts index 215ac57d..51287f35 100644 --- a/packages/rdx-ddd/src/value-objects/currency-code.ts +++ b/packages/rdx-ddd/src/value-objects/currency-code.ts @@ -38,7 +38,7 @@ export class CurrencyCode extends ValueObject { return Result.ok(new CurrencyCode({ value: valueIsValid.data })); } - getValue(): string { + getProps(): string { return this.props.value; } diff --git a/packages/rdx-ddd/src/value-objects/email-address.ts b/packages/rdx-ddd/src/value-objects/email-address.ts index 84262830..af90786e 100644 --- a/packages/rdx-ddd/src/value-objects/email-address.ts +++ b/packages/rdx-ddd/src/value-objects/email-address.ts @@ -38,11 +38,11 @@ export class EmailAddress extends ValueObject { return this.getDomain().split(".")[0]; } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/language-code.ts b/packages/rdx-ddd/src/value-objects/language-code.ts index 78efdee6..2338361d 100644 --- a/packages/rdx-ddd/src/value-objects/language-code.ts +++ b/packages/rdx-ddd/src/value-objects/language-code.ts @@ -38,7 +38,7 @@ export class LanguageCode extends ValueObject { return Result.ok(new LanguageCode({ value: valueIsValid.data })); } - getValue(): string { + getProps(): string { return this.props.value; } diff --git a/packages/rdx-ddd/src/value-objects/money-value.ts b/packages/rdx-ddd/src/value-objects/money-value.ts index 74e39586..dd716bef 100644 --- a/packages/rdx-ddd/src/value-objects/money-value.ts +++ b/packages/rdx-ddd/src/value-objects/money-value.ts @@ -19,17 +19,17 @@ export type RoundingMode = | "DOWN"; export interface MoneyValueProps { - amount: number; + value: number; scale?: number; currency_code?: string; } export interface IMoneyValue { - amount: number; + value: number; scale: number; currency: Dinero.Currency; - getValue(): MoneyValueProps; + getProps(): MoneyValueProps; convertScale(newScale: number): MoneyValue; add(addend: MoneyValue): MoneyValue; subtract(subtrahend: MoneyValue): MoneyValue; @@ -53,9 +53,9 @@ export class MoneyValue extends ValueObject implements IMoneyVa static DEFAULT_SCALE = DEFAULT_SCALE; static DEFAULT_CURRENCY_CODE = DEFAULT_CURRENCY_CODE; - static create({ amount, currency_code, scale }: MoneyValueProps) { + static create({ value, currency_code, scale }: MoneyValueProps) { const props = { - amount: Number(amount), + value: Number(value), scale: scale ?? MoneyValue.DEFAULT_SCALE, currency_code: currency_code ?? MoneyValue.DEFAULT_CURRENCY_CODE, }; @@ -64,7 +64,7 @@ export class MoneyValue extends ValueObject implements IMoneyVa constructor(props: MoneyValueProps) { super(props); - const { amount, scale, currency_code } = props; + const { value: amount, scale, currency_code } = props; this.dinero = Object.freeze( DineroFactory({ amount, @@ -74,7 +74,7 @@ export class MoneyValue extends ValueObject implements IMoneyVa ); // 🔒 Garantiza inmutabilidad } - get amount(): number { + get value(): number { return this.dinero.getAmount() / 10 ** this.dinero.getPrecision(); // ** => Math.pow } @@ -86,27 +86,22 @@ export class MoneyValue extends ValueObject implements IMoneyVa return this.dinero.getPrecision(); } - getValue(): MoneyValueProps { + getProps(): MoneyValueProps { return this.props; } - /** Serializa el VO a una cadena del tipo "EUR:123400:2" */ - toPersistence(): string { - return `${this.currency}:${this.dinero.getAmount()}:${this.scale}`; - } - /** Reconstruye el VO desde la cadena persistida */ static fromPersistence(value: string): MoneyValue { const [currencyCode, amountStr, scaleStr] = value.split(":"); const amount = Number.parseInt(amountStr, 10); const scale = Number.parseInt(scaleStr, 10); const currency = currencyCode; - return new MoneyValue({ amount, scale, currency_code: currency }); + return new MoneyValue({ value: amount, scale, currency_code: currency }); } toPrimitive() { return { - amount: this.amount, + value: this.value, scale: this.scale, currency_code: this.currency, }; @@ -115,7 +110,7 @@ export class MoneyValue extends ValueObject implements IMoneyVa convertScale(newScale: number, roundingMode: RoundingMode = "HALF_UP"): MoneyValue { const _newDinero = this.dinero.convertPrecision(newScale, roundingMode); return new MoneyValue({ - amount: _newDinero.getAmount(), + value: _newDinero.getAmount(), scale: _newDinero.getPrecision(), currency_code: _newDinero.getCurrency(), }); @@ -123,7 +118,7 @@ export class MoneyValue extends ValueObject implements IMoneyVa add(addend: MoneyValue): MoneyValue { return new MoneyValue({ - amount: this.dinero.add(addend.dinero).getAmount(), + value: this.dinero.add(addend.dinero).getAmount(), scale: this.scale, currency_code: this.currency, }); @@ -131,7 +126,7 @@ export class MoneyValue extends ValueObject implements IMoneyVa subtract(subtrahend: MoneyValue): MoneyValue { return new MoneyValue({ - amount: this.dinero.subtract(subtrahend.dinero).getAmount(), + value: this.dinero.subtract(subtrahend.dinero).getAmount(), scale: this.scale, currency_code: this.currency, }); @@ -142,7 +137,7 @@ export class MoneyValue extends ValueObject implements IMoneyVa const _newDinero = this.dinero.multiply(_multiplier, roundingMode); return new MoneyValue({ - amount: _newDinero.getAmount(), + value: _newDinero.getAmount(), scale: _newDinero.getPrecision(), currency_code: _newDinero.getCurrency(), }); @@ -153,7 +148,7 @@ export class MoneyValue extends ValueObject implements IMoneyVa const _newDinero = this.dinero.divide(_divisor, roundingMode); return new MoneyValue({ - amount: _newDinero.getAmount(), + value: _newDinero.getAmount(), scale: _newDinero.getPrecision(), currency_code: _newDinero.getCurrency(), }); @@ -164,7 +159,7 @@ export class MoneyValue extends ValueObject implements IMoneyVa const _newDinero = this.dinero.percentage(_percentage, roundingMode); return new MoneyValue({ - amount: _newDinero.getAmount(), + value: _newDinero.getAmount(), scale: _newDinero.getPrecision(), currency_code: _newDinero.getCurrency(), }); @@ -187,11 +182,11 @@ export class MoneyValue extends ValueObject implements IMoneyVa } isPositive(): boolean { - return this.amount > 0; + return this.value > 0; } isNegative(): boolean { - return this.amount < 0; + return this.value < 0; } hasSameCurrency(comparator: MoneyValue): boolean { @@ -209,7 +204,7 @@ export class MoneyValue extends ValueObject implements IMoneyVa * @returns Importe formateado */ format(locale: string): string { - const amount = this.amount; + const value = this.value; const currency = this.currency; const scale = this.scale; @@ -219,6 +214,6 @@ export class MoneyValue extends ValueObject implements IMoneyVa minimumFractionDigits: scale, maximumFractionDigits: scale, useGrouping: true, - }).format(amount); + }).format(value); } } diff --git a/packages/rdx-ddd/src/value-objects/name.ts b/packages/rdx-ddd/src/value-objects/name.ts index 20e8b4f9..41630a42 100644 --- a/packages/rdx-ddd/src/value-objects/name.ts +++ b/packages/rdx-ddd/src/value-objects/name.ts @@ -44,11 +44,11 @@ export class Name extends ValueObject { return Name.generateAcronym(this.toString()); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/percentage.ts b/packages/rdx-ddd/src/value-objects/percentage.ts index 75a7d2d7..b64d663a 100644 --- a/packages/rdx-ddd/src/value-objects/percentage.ts +++ b/packages/rdx-ddd/src/value-objects/percentage.ts @@ -11,7 +11,7 @@ const DEFAULT_MIN_SCALE = 0; const DEFAULT_MAX_SCALE = 2; export interface PercentageProps { - amount: number; + value: number; scale: number; } @@ -25,7 +25,7 @@ export class Percentage extends ValueObject { protected static validate(values: PercentageProps) { const schema = z.object({ - amount: z.number().int().min(Percentage.MIN_VALUE, "La cantidad no puede ser negativa."), + value: z.number().int().min(Percentage.MIN_VALUE, "La cantidad no puede ser negativa."), scale: z .number() .int() @@ -39,43 +39,43 @@ export class Percentage extends ValueObject { return schema.safeParse(values); } - static create(props: { amount: number; scale?: number }): Result { - const { amount, scale = Percentage.DEFAULT_SCALE } = props; + static create(props: { value: number; scale?: number }): Result { + const { value, scale = Percentage.DEFAULT_SCALE } = props; - const validationResult = Percentage.validate({ amount, scale }); + const validationResult = Percentage.validate({ value, scale }); if (!validationResult.success) { return Result.fail(new Error(validationResult.error.issues.map((e) => e.message).join(", "))); } // Cálculo del valor real del porcentaje - const realValue = amount / 10 ** scale; // ** => Math.pow + const realValue = value / 10 ** scale; // ** => Math.pow // Validación de rango if (realValue > Percentage.MAX_VALUE) { return Result.fail(new Error("El porcentaje no puede ser mayor a 100%.")); } - return Result.ok(new Percentage({ amount, scale })); + return Result.ok(new Percentage({ value, scale })); } - get amount(): number { - return this.props.amount; + get value(): number { + return this.props.value; } get scale(): number { return this.props.scale; } - getValue(): PercentageProps { + getProps(): PercentageProps { return this.props; } toPrimitive() { - return this.getValue(); + return this.getProps(); } toNumber(): number { - return this.amount / 10 ** this.scale; // ** => Math.pow + return this.value / 10 ** this.scale; // ** => Math.pow } toString(): string { diff --git a/packages/rdx-ddd/src/value-objects/phone-number.ts b/packages/rdx-ddd/src/value-objects/phone-number.ts index 78b35c6c..8f386fdf 100644 --- a/packages/rdx-ddd/src/value-objects/phone-number.ts +++ b/packages/rdx-ddd/src/value-objects/phone-number.ts @@ -51,12 +51,12 @@ export class PhoneNumber extends ValueObject { return Result.ok(new PhoneNumber({ value: valueIsValid.data })); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive(): string { - return this.getValue(); + return this.getProps(); } getCountryCode(): string | undefined { diff --git a/packages/rdx-ddd/src/value-objects/postal-address.ts b/packages/rdx-ddd/src/value-objects/postal-address.ts index 5ae793ab..3689f345 100644 --- a/packages/rdx-ddd/src/value-objects/postal-address.ts +++ b/packages/rdx-ddd/src/value-objects/postal-address.ts @@ -73,12 +73,12 @@ export class PostalAddress extends ValueObject { return this.props.country; } - getValue(): PostalAddressProps { + getProps(): PostalAddressProps { return this.props; } toPrimitive() { - return this.getValue(); + return this.getProps(); } toFormat(): string { diff --git a/packages/rdx-ddd/src/value-objects/postal-code.ts b/packages/rdx-ddd/src/value-objects/postal-code.ts index f1712c9b..40da0970 100644 --- a/packages/rdx-ddd/src/value-objects/postal-code.ts +++ b/packages/rdx-ddd/src/value-objects/postal-code.ts @@ -36,7 +36,7 @@ export class PostalCode extends ValueObject { return Result.ok(new PostalCode({ value: valueIsValid.data })); } - getValue(): string { + getProps(): string { return this.props.value; } diff --git a/packages/rdx-ddd/src/value-objects/province.ts b/packages/rdx-ddd/src/value-objects/province.ts index 6df1c814..d01c1de1 100644 --- a/packages/rdx-ddd/src/value-objects/province.ts +++ b/packages/rdx-ddd/src/value-objects/province.ts @@ -28,11 +28,11 @@ export class Province extends ValueObject { return Result.ok(new Province({ value })); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/quantity.ts b/packages/rdx-ddd/src/value-objects/quantity.ts index 855b19a1..48fcb92f 100644 --- a/packages/rdx-ddd/src/value-objects/quantity.ts +++ b/packages/rdx-ddd/src/value-objects/quantity.ts @@ -7,14 +7,14 @@ const DEFAULT_MIN_SCALE = 0; const DEFAULT_MAX_SCALE = 2; export interface QuantityProps { - amount: number; + value: number; scale: number; } export class Quantity extends ValueObject { protected static validate(values: QuantityProps) { const schema = z.object({ - amount: z.number().int(), + value: z.number().int(), scale: z.number().int().min(Quantity.MIN_SCALE).max(Quantity.MAX_SCALE), }); @@ -25,9 +25,9 @@ export class Quantity extends ValueObject { static MIN_SCALE = DEFAULT_MIN_SCALE; static MAX_SCALE = DEFAULT_MAX_SCALE; - static create({ amount, scale }: QuantityProps) { + static create({ value, scale }: QuantityProps) { const props = { - amount: Number(amount), + value: Number(value), scale: scale ?? Quantity.DEFAULT_SCALE, }; const checkProps = Quantity.validate(props); @@ -38,24 +38,24 @@ export class Quantity extends ValueObject { return Result.ok(new Quantity({ ...(checkProps.data as QuantityProps) })); } - get amount(): number { - return this.props.amount; + get value(): number { + return this.props.value; } get scale(): number { return this.props.scale; } - getValue(): QuantityProps { + getProps(): QuantityProps { return this.props; } toPrimitive() { - return this.getValue(); + return this.getProps(); } toNumber(): number { - return this.amount / 10 ** this.scale; // ** => Math.pow + return this.value / 10 ** this.scale; // ** => Math.pow } toString(): string { @@ -63,21 +63,21 @@ export class Quantity extends ValueObject { } isZero(): boolean { - return this.amount === 0; + return this.value === 0; } isPositive(): boolean { - return this.amount > 0; + return this.value > 0; } isNegative(): boolean { - return this.amount < 0; + return this.value < 0; } increment(anotherQuantity?: Quantity): Result { if (!anotherQuantity) { return Quantity.create({ - amount: Number(this.amount) + 1, + value: Number(this.value) + 1, scale: this.scale, }); } @@ -87,7 +87,7 @@ export class Quantity extends ValueObject { } return Quantity.create({ - amount: Number(this.amount) + Number(anotherQuantity.amount), + value: Number(this.value) + Number(anotherQuantity.value), scale: this.scale, }); } @@ -95,7 +95,7 @@ export class Quantity extends ValueObject { decrement(anotherQuantity?: Quantity): Result { if (!anotherQuantity) { return Quantity.create({ - amount: Number(this.amount) - 1, + value: Number(this.value) - 1, scale: this.scale, }); } @@ -105,7 +105,7 @@ export class Quantity extends ValueObject { } return Quantity.create({ - amount: Number(this.amount) - Number(anotherQuantity.amount), + value: Number(this.value) - Number(anotherQuantity.value), scale: this.scale, }); } @@ -120,11 +120,11 @@ export class Quantity extends ValueObject { } const oldFactor = 10 ** this.scale; // ** => Math.pow - const value = Number(this.amount) / oldFactor; + const value = Number(this.value) / oldFactor; const newFactor = 10 ** newScale; // ** => Math.pow const newValue = Math.round(value * newFactor); - return Quantity.create({ amount: newValue, scale: newScale }); + return Quantity.create({ value: newValue, scale: newScale }); } } diff --git a/packages/rdx-ddd/src/value-objects/slug.ts b/packages/rdx-ddd/src/value-objects/slug.ts index 1112d8ea..a003e13a 100644 --- a/packages/rdx-ddd/src/value-objects/slug.ts +++ b/packages/rdx-ddd/src/value-objects/slug.ts @@ -32,11 +32,11 @@ export class Slug extends ValueObject { return Result.ok(new Slug({ value: valueIsValid.data! })); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive(): string { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/street.ts b/packages/rdx-ddd/src/value-objects/street.ts index 6fc4c3be..177c1b78 100644 --- a/packages/rdx-ddd/src/value-objects/street.ts +++ b/packages/rdx-ddd/src/value-objects/street.ts @@ -28,11 +28,11 @@ export class Street extends ValueObject { return Result.ok(new Street({ value })); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/tax-code.ts b/packages/rdx-ddd/src/value-objects/tax-code.ts index 2c6db6a5..2f0aba9c 100644 --- a/packages/rdx-ddd/src/value-objects/tax-code.ts +++ b/packages/rdx-ddd/src/value-objects/tax-code.ts @@ -36,11 +36,11 @@ export class TaxCode extends ValueObject { return Result.ok(new TaxCode({ value: valueIsValid.data! })); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive(): string { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/text-value.ts b/packages/rdx-ddd/src/value-objects/text-value.ts index 7ea1d397..2eb25433 100644 --- a/packages/rdx-ddd/src/value-objects/text-value.ts +++ b/packages/rdx-ddd/src/value-objects/text-value.ts @@ -29,11 +29,11 @@ export class TextValue extends ValueObject { return Result.ok(new TextValue({ value })); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive(): string { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/tin-number.ts b/packages/rdx-ddd/src/value-objects/tin-number.ts index 95dfa162..172d388f 100644 --- a/packages/rdx-ddd/src/value-objects/tin-number.ts +++ b/packages/rdx-ddd/src/value-objects/tin-number.ts @@ -33,7 +33,7 @@ export class TINNumber extends ValueObject { return Result.ok(new TINNumber({ value: valueIsValid.data })); } - getValue(): string { + getProps(): string { return this.props.value; } diff --git a/packages/rdx-ddd/src/value-objects/unique-id.ts b/packages/rdx-ddd/src/value-objects/unique-id.ts index f1693fae..5cdcaed7 100644 --- a/packages/rdx-ddd/src/value-objects/unique-id.ts +++ b/packages/rdx-ddd/src/value-objects/unique-id.ts @@ -32,15 +32,15 @@ export class UniqueID extends ValueObject { return Result.ok(new UniqueID(generateUUIDv4())); } - getValue(): string { + getProps(): string { return this.props; } toString(): string { - return this.getValue(); + return this.getProps(); } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/url-address.ts b/packages/rdx-ddd/src/value-objects/url-address.ts index f2f6076b..934bf9b8 100644 --- a/packages/rdx-ddd/src/value-objects/url-address.ts +++ b/packages/rdx-ddd/src/value-objects/url-address.ts @@ -22,11 +22,11 @@ export class URLAddress extends ValueObject { return schema.safeParse(value); } - getValue(): string { + getProps(): string { return this.props.value; } toPrimitive() { - return this.getValue(); + return this.getProps(); } } diff --git a/packages/rdx-ddd/src/value-objects/utc-date.ts b/packages/rdx-ddd/src/value-objects/utc-date.ts index 7ce4788b..fe4de788 100644 --- a/packages/rdx-ddd/src/value-objects/utc-date.ts +++ b/packages/rdx-ddd/src/value-objects/utc-date.ts @@ -40,7 +40,7 @@ export class UtcDate extends ValueObject { return Result.ok(new UtcDate({ value: isoDateString })); } - getValue(): string { + getProps(): string { return this.props.value; } diff --git a/packages/rdx-ddd/src/value-objects/value-object.ts b/packages/rdx-ddd/src/value-objects/value-object.ts index d356a178..e489eb2f 100644 --- a/packages/rdx-ddd/src/value-objects/value-object.ts +++ b/packages/rdx-ddd/src/value-objects/value-object.ts @@ -7,7 +7,7 @@ export abstract class ValueObject { this.props = Object.freeze(props); // 🔒 Garantiza inmutabilidad } - abstract getValue(): any; + abstract getProps(): any; abstract toPrimitive(): any;