Consistent with ReservationFactory — moves Reconstitute out of the entity
into a dedicated factory class, and makes the reconstitution constructor
internal to restrict direct instantiation to within the domain assembly.
Adds unit tests for all three factories.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the Reconstitute static method on Reservation with a dedicated
ReservationFactory class. The reconstitution constructor is now internal,
restricting direct instantiation to within the domain assembly while
keeping the factory as the explicit entry point for rehydrating from storage.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Introduce dedicated *Record POCOs (ReservationRecord, UserRecord,
WorkplaceRecord) as EF Core targets, keeping domain entities free of
persistence concerns. Static mapper classes handle conversion between
layers, and repositories track (domain, record) pairs to sync mutations
back before saving. Domain entities gain Reconstitute() factory methods
to bypass validation when rehydrating from storage.
Also fixes GetByEmployeeAsync to exclude past reservations (Date >= today).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>