fase(1): shared domain building blocks
This commit is contained in:
@@ -19,23 +19,23 @@
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Shared Domain — Building Blocks [PENDIENTE]
|
||||
## Phase 1: Shared Domain — Building Blocks [COMPLETO]
|
||||
Spec: `.ralph/specs/phase-01-shared-domain.md`
|
||||
|
||||
- [ ] 1.1: Crear directorio `src/shared/domain/`
|
||||
- [ ] 1.2: Crear `src/shared/domain/Result.ts` — Result<T, E> con Ok(), Err(), isOk(), isErr()
|
||||
- [ ] 1.3: Crear `src/shared/domain/UniqueId.ts` — UUID v4 wrapper con create(), toString(), equals()
|
||||
- [ ] 1.4: Crear `src/shared/domain/Entity.ts` — base class con _id: UniqueId, equals()
|
||||
- [ ] 1.5: Crear `src/shared/domain/AggregateRoot.ts` — extends Entity + domainEvents[], addDomainEvent(), clearEvents()
|
||||
- [ ] 1.6: Crear `src/shared/domain/ValueObject.ts` — base class inmutable con props frozen, equals()
|
||||
- [ ] 1.7: Crear `src/shared/domain/DomainEvent.ts` — interface: eventId, eventName, aggregateId, occurredOn, payload
|
||||
- [ ] 1.8: Crear `src/shared/application/UseCase.ts` — interface: execute(req) → Promise<Result<TRes, TErr>>
|
||||
- [ ] 1.9: Crear `src/shared/application/EventBus.ts` — interface: publish(event), subscribe(name, handler)
|
||||
- [ ] 1.10: Crear `src/shared/application/EventHandler.ts` — interface: handle(event) → Promise<void>
|
||||
- [ ] 1.11: Crear `src/shared/domain/index.ts` — barrel export de todo shared/domain
|
||||
- [ ] 1.12: Crear `src/shared/application/index.ts` — barrel export de todo shared/application
|
||||
- [ ] 1.13: Tests unitarios: Result (Ok/Err/isOk/isErr), Entity (equals by id), ValueObject (equals by props), UniqueId (create/equals)
|
||||
- [ ] 1.14: Verificar build completo + commit: `fase(1): shared domain building blocks`
|
||||
- [x] 1.1: Crear directorio `src/shared/domain/`
|
||||
- [x] 1.2: Crear `src/shared/domain/Result.ts` — Result<T, E> con Ok(), Err(), isOk(), isErr()
|
||||
- [x] 1.3: Crear `src/shared/domain/UniqueId.ts` — UUID v4 wrapper con create(), toString(), equals()
|
||||
- [x] 1.4: Crear `src/shared/domain/Entity.ts` — base class con _id: UniqueId, equals()
|
||||
- [x] 1.5: Crear `src/shared/domain/AggregateRoot.ts` — extends Entity + domainEvents[], addDomainEvent(), clearEvents()
|
||||
- [x] 1.6: Crear `src/shared/domain/ValueObject.ts` — base class inmutable con props frozen, equals()
|
||||
- [x] 1.7: Crear `src/shared/domain/DomainEvent.ts` — interface: eventId, eventName, aggregateId, occurredOn, payload
|
||||
- [x] 1.8: Crear `src/shared/application/UseCase.ts` — interface: execute(req) → Promise<Result<TRes, TErr>>
|
||||
- [x] 1.9: Crear `src/shared/application/EventBus.ts` — interface: publish(event), subscribe(name, handler)
|
||||
- [x] 1.10: Crear `src/shared/application/EventHandler.ts` — interface: handle(event) → Promise<void>
|
||||
- [x] 1.11: Crear `src/shared/domain/index.ts` — barrel export de todo shared/domain
|
||||
- [x] 1.12: Crear `src/shared/application/index.ts` — barrel export de todo shared/application
|
||||
- [x] 1.13: Tests unitarios: Result (Ok/Err/isOk/isErr), Entity (equals by id), ValueObject (equals by props), UniqueId (create/equals)
|
||||
- [x] 1.14: Verificar build completo + commit: `fase(1): shared domain building blocks`
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user