Commit Graph

37 Commits

Author SHA1 Message Date
Aaron Po
e1b6cba1d4 Upgrade MediatR to 12.5.0 and forward cancellation tokens through pipeline behaviors (#320) 2026-09-26 19:50:44 -04:00
Aaron Po
fbede956e9 Fix seed pipeline crash and make seeding failures fail CI (#309) 2026-09-12 17:11:02 -04:00
Aaron Po
78d0eaa739 Move Infrastructure.Configuration into Configuration (#291) 2026-09-12 15:59:37 -04:00
Aaron Po
180ed41e68 Move Infrastructure.FileUpload into Features.PhotoUpload (#290) 2026-09-12 00:22:19 -04:00
Aaron Po
9d5a463d93 Rename auth feature to Features.Users (#281) 2026-09-06 01:23:51 -04:00
Aaron Po
d9411eb00e refactor(database): update seed pipeline to use dapper (#277) 2026-09-05 00:37:14 -04:00
Aaron Po
d6e176bcd9 Split dbo schema into per-domain SQL schemas (#274) 2026-09-02 22:23:30 -04:00
Aaron Po
39c5a89ca7 Add user avatar and profile feature, consolidate Auth and UserManagement features (#257) 2026-08-31 00:11:48 -04:00
Aaron Po
be672b6ca9 Integrate SeaweedFS for S3-compatible file storage and photo upload (#254) 2026-08-29 23:37:11 -04:00
Aaron Po
a580314583 Add brewery discovery & detail pages with location-based search (#253) 2026-08-29 00:44:33 -04:00
fcee0f9213 Organise ddl statements into separate files per create table (#251) 2026-08-26 22:16:56 -04:00
4ca35de7ef Integrate NetTopologySuite and create CoordinateData mapping (#250) 2026-08-26 01:10:09 -04:00
ad1c09f139 Move brewery reverse geocoding from C# seeding to C++ pipeline (#249) 2026-08-25 22:24:11 -04:00
2b82d1918b Extract shared configuration helpers into Infrastructure.Configuration library (#248) 2026-08-25 14:16:57 -04:00
8a047e8d9f Update database handling code (#247) 2026-08-25 13:42:51 -04:00
Aaron Po
b64c42ebde formatting 2026-08-24 01:09:48 -04:00
cd5fd2d998 Add reverse geocoding for brewery street addresses (#245)
* Add geocoding to seed application, remove postal codes from generator

Update comments
2026-08-24 01:09:48 -04:00
e738fe484a Update generate pipeline to add OpenAI api as an additional backend (for comparison testing), add brewery coordinates (#244)
* add brewery coordinates

* Add openai mode

* Add coordinates to schema

* Fix C++ review findings in pipeline: k-prefixed enum values, include ordering, populated validation error messages, conventional const notation, and endl replaced with newline
2026-08-24 01:09:48 -04:00
Aaron Po
6a44afd6b6 Replace raw environment variable reads with IConfiguration in backend 2026-08-24 01:09:48 -04:00
Aaron Po
77c3407792 Migrate Database.Seed to UserManager<ApplicationUser> 2026-08-24 01:09:47 -04:00
Aaron Po
f433b21bc1 Fix code analysis warnings 2026-08-24 01:09:47 -04:00
de1e9ac02b Migrate Auth/Brewery/Location repositories to pure Dapper; rename Timer to RowVersion (#237)
* Integrate Spectre.Console into seed application, use async data loading

* Replace stored-procedure repositories with Dapper-based repositories

Removes the USP_* stored procedures for Auth, Location, and Brewery
data access in favour of services built with Dapper.

Adds a new Features.Locations slice and optimistic concurrency support
for the Brewery slice.

* Add new documentation for Dapper migration/database schema

* Update FluentAssertions to most recent open source ver

* Update XML doc comment in backend projects

* Modify brewery location dto to include denormalized data

* - Updated column names from 'Timer' to 'RowVersion' in schema.sql for
- Introduced new BeerPost entity and updated BreweryPost and BreweryPostLocation entities to use 'RowVersion' for concurrency.
- Modified UserAccount, UserCredential, UserVerification, City, StateProvince, and Country entities to use 'RowVersion' instead of 'Timer'.
- Updated tests and command handlers to reflect changes in concurrency token from 'Timer' to 'RowVersion'.
- Adjusted BreweryDto and BreweryDtoMapper to include 'RowVersion' and updated mapping logic accordingly.
- Ensured all repository methods and interfaces are aligned with the new concurrency handling approach.

* updates

* Add BeerStyle entity and related properties; refactor BreweryDto to remove BeerPosts

* Fix Api.Specs test failures: stale Timer column refs and missing test.user fixture

* Remove repository tests, usages of registration dto used in repo

* archive old stored procs/functions

* update stale docs

* Add instructions for generating cryptographically secure base64 secrets on macOS/Linux and Windows
2026-08-24 01:09:47 -04:00
Aaron Po
30cdb48491 remove comment 2026-08-24 01:09:47 -04:00
Aaron Po
37667db2f6 Format 2026-08-24 01:09:47 -04:00
Aaron Po
9862d1cff4 format sql 2026-08-24 01:09:47 -04:00
Aaron Po
c9a02dbedf Refactor user registration process to use UserRegistrationDto;
implement user registration in seed app
2026-08-24 01:09:47 -04:00
Aaron Po
d469c07250 Update database migration and seeding logic; adjust Docker port mapping 2026-08-24 01:09:47 -04:00
Aaron Po
76380d32c3 add wiring 2026-08-24 01:09:47 -04:00
Aaron Po
b2095e7bdd Create biergarten_seed_2026-07-20T05-46-02.993511Z.sqlite 2026-08-24 01:09:47 -04:00
Aaron Po
5fd60b33f7 Add sqlite load into Database.Seed 2026-08-24 01:09:47 -04:00
Aaron Po
8e7ecf2fc3 Pipeline: City rename, add address/postal-code generation, add xeger generation (#232) 2026-08-24 01:09:47 -04:00
Aaron Po
cd99c1fbc3 formatting 2026-08-24 01:09:47 -04:00
Aaron Po
254431928f code style cleanup 2026-06-20 15:54:53 -04:00
Aaron Po
fd341e332c Migrate Auth and Emails to vertical slices (Features.Auth, Features.Emails)
Auth and Emails land together since Auth's registration/resend flows need
Emails to exist first. Service.Auth's four services (Register, Login,
Confirmation, Token) collapse into MediatR commands/queries in
Features.Auth; TokenService stays as a slice-internal service since
multiple handlers call it. Auth no longer references Emails directly —
it sends SendRegistrationEmailCommand/SendResendConfirmationEmailCommand
(defined in Shared.Application) which Features.Emails handles, so neither
slice has a project reference on the other.

Service.Emails' IEmailService becomes Features.Emails' IEmailDispatcher,
simplified to take (firstName, email, token) instead of a full UserAccount
since that's all it ever used. API.Specs' TestApiFactory/MockEmailService
are updated to swap in the relocated interface.

Also deletes Infrastructure.Repository now that Breweries, UserManagement,
and Auth have all moved their repos out of it, and replaces the two
now-dead docker-compose test services (repository.tests, service.auth.tests,
both pointing at deleted Dockerfiles) with a single unit.tests service that
runs every Features.*.Tests project via Dockerfile.tests.
2026-06-20 15:54:53 -04:00
Aaron Po
86a0c50f6e finish brewery feature set 2026-06-20 15:54:53 -04:00
Aaron Po
3034020d56 add xmldoc comments 2026-06-20 15:54:53 -04:00
Aaron Po
189bce040b Move dotnet api into new directory 2026-04-27 18:47:39 -04:00