Moves brewery CRUD from the Service.Breweries/Infrastructure.Repository
layered split into a single Features.Breweries project: MediatR
commands/queries replace BreweryService, and the repository moves in
alongside its own controller. Extracts Infrastructure.Sql out of
Infrastructure.Repository (just the generic ADO.NET connection/base-repo
plumbing) since Breweries no longer needs the rest of that project, while
Auth and UserAccount repos still do until their own migration.
Also fixes the API.Core and Infrastructure.Repository.Tests Dockerfiles,
which were restoring against COPY destinations that didn't match the
projects' actual relative paths (silently working only because of the
COPY . . that followed); both now restore against Core.slnx with correctly
nested paths, verified with a real docker build.
Begins the move to vertical-slice architecture. ResponseBody moves out of
API.Core into Shared.Contracts so slices won't have to depend on the API
host project for it. Shared.Application adds the MediatR pipeline's
ValidationBehavior plus the cross-slice email commands that Features.Auth
will send and Features.Emails will handle, keeping slices decoupled from
each other.
* Update class diagrams
* Implement BoundedChannel and multithreaded logging infra
* Integrate logging channel system
* Update string concatenations to use std::format
* Add pretty print log
Rationale:
HTTP is a supporting concern in the pipeline, used only for Wikipedia enrichment calls. libcurl's C API required significant boilerplate to wrap safely. cpp-httplib is a header-only library that covers the same functionality with far less overhead and no manual resource management.
* Add create brewery to brewery repository
* Implement brewery repo, SQL procs and tests
* Implement CRUD operations for Brewery, including service and repository layers
* Test updates
* DTO updates
* remove email out of register service
* Update auth service, move JWT handling out of controller
* add docker config for service auth test
* Update mock email system
* Format: ./src/Core/Service
* Refactor authentication payloads and services for registration and login processes
* Format: src/Core/API, src/Core/Service
* Add email functionality
* Add email template project and rendering service
* Update email template dir structure
* Add email header and footer components for user registration template
* update example env
* Refactor email templates namespace and components
* Format email dir