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>