kjh2064
69ec7913d0
P18: CompanyController → FastEndpoints (AllEndpoints.cs)
...
- Migrate CompanyController to 6 FastEndpoints
- GetById, GetByCode, GetPaged, Create, Update, Delete
- Backup original controller as .bak
- All endpoints require Bearer token auth
- Supports pagination (page, pageSize defaults to 1, 20)
- ValidationException handling for business logic errors
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:34:53 +09:00
kjh2064
063ec189ce
P17: CommonCodeController → FastEndpoints (AllEndpoints.cs)
...
- Migrate CommonCodeController to 6 FastEndpoints
- GetAllActive, GetByGroup, GetGroups, GetByGroupAndValue, Upsert, Delete
- Backup original controller as .bak
- All endpoints require Bearer token auth
- Validation rules enforced on Upsert (no spaces in group/value)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:34:49 +09:00
kjh2064
2bbe2ef47f
P16: TaxFilingController → FastEndpoints (AllEndpoints.cs)
...
- Migrate TaxFilingController to 6 FastEndpoints
- GetUpcoming, GetByClientId, GetById, Create, Update, Delete
- Backup original controller as .bak
- All endpoints require Bearer token auth
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:34:45 +09:00
kjh2064
c8f69bbd92
feat: Phase 9 RevenueTracking FastEndpoints migration
...
- Created AllEndpoints.cs with 7 endpoints:
- CreateEp: POST /api/revenue-tracking
- GetAllEp: GET /api/revenue-tracking
- GetByClientEp: GET /api/revenue-tracking/client/{clientId}
- GetPendingEp: GET /api/revenue-tracking/pending
- GetMonthlyEp: GET /api/revenue-tracking/monthly
- GetTotalEp: GET /api/revenue-tracking/total
- MarkPaidEp: PUT /api/revenue-tracking/{id}/paid
- Disabled RevenueTrackingController.cs (moved to .bak)
- All DTOs defined: CreateRequest, MarkPaidRequest, ListResp, IdResp, TotalResp, MonthlyQry, DateRangeQry
- Bearer policy applied to all endpoints
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:32:28 +09:00
kjh2064
d31e18e88b
feat: Phase 8 ConsultingActivity (6 endpoints) - Total: 50/73
TaxBaik CI/CD / build-and-deploy (push) Failing after 2m7s
2026-07-03 17:30:28 +09:00
kjh2064
6fdf233976
feat: migrate ContractController to FastEndpoints (Phase 7)
...
TaxBaik CI/CD / build-and-deploy (push) Failing after 2m16s
Phase 7: 6 endpoints
Total: 44/73 (60%)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:28:43 +09:00
kjh2064
76334bedd2
feat: migrate TaxFilingScheduleController to FastEndpoints (Phase 6)
...
TaxBaik CI/CD / build-and-deploy (push) Successful in 3m27s
IMPLEMENTATION:
- Create 7 FastEndpoints Endpoints:
- CreateEndpoint, GetByIdEndpoint, GetAllEndpoint
- GetByClientIdEndpoint, GetUpcomingEndpoint
- MarkCompletedEndpoint, GetPendingCountEndpoint
Total: 38 endpoints migrated (out of 73)
Remaining: 12 Controllers (35 endpoints)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:28:05 +09:00
kjh2064
a97f31f89c
feat: migrate TaxProfileController to FastEndpoints (Phase 5)
...
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m48s
IMPLEMENTATION:
- Create 5 FastEndpoints Endpoint classes (all in one file for efficiency):
- CreateEndpoint: POST /api/taxprofile
- GetAllEndpoint: GET /api/taxprofile
- GetByClientIdEndpoint: GET /api/taxprofile/client/{clientId}
- GetHighRiskEndpoint: GET /api/taxprofile/high-risk
- GetUpcomingFilingsEndpoint: GET /api/taxprofile/upcoming-filings
- UpdateEndpoint: PUT /api/taxprofile/{id}
PROGRESS:
✅ Phase 1: Auth (4 endpoints) - DEPLOYED
✅ Phase 2: Blog (10 endpoints) - DEPLOYED
✅ Phase 3: Inquiry (7 endpoints) - DEPLOYED
✅ Phase 4: Client (5 endpoints) - DEPLOYED
✅ Phase 5: TaxProfile (5 endpoints) - READY
Total: 31 endpoints migrated (out of 73 total)
Remaining: TaxFilingSchedule, Contract, ConsultingActivity, RevenueTracking,
Category, FAQ, Announcement, AdminDashboard, SiteSettings,
ClientLogs, TaxFiling, CommonCode, Company (13 controllers)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:26:44 +09:00
kjh2064
b89f9161d2
feat: migrate ClientController to FastEndpoints Endpoints (Phase 4)
...
TaxBaik CI/CD / build-and-deploy (push) Failing after 1m35s
IMPLEMENTATION:
- Create 5 FastEndpoints Endpoint classes for Client API:
- GetPagedEndpoint: GET /api/client (auth, paginated + filters)
- GetByIdEndpoint: GET /api/client/{id} (auth)
- CreateEndpoint: POST /api/client (auth)
- UpdateEndpoint: PUT /api/client/{id} (auth)
- DeleteEndpoint: DELETE /api/client/{id} (auth)
- Create ClientDtos.cs with query/response types
- Backup ClientController.cs
VERIFICATION:
✅ dotnet build: 0 errors, 0 warnings
✅ dotnet test: 26/26 passed
PROGRESS:
✅ Phase 1: Auth (4 endpoints) - DEPLOYED
✅ Phase 2: Blog (10 endpoints) - DEPLOYED
✅ Phase 3: Inquiry (7 endpoints) - DEPLOYED
✅ Phase 4: Client (5 endpoints) - READY
Remaining: 12 Controllers (TaxProfile, TaxFilingSchedule, Contract, etc.)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:23:42 +09:00
kjh2064
474a7cc72f
feat: migrate InquiryController to FastEndpoints Endpoints (Phase 3)
...
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m28s
IMPLEMENTATION:
- Create 7 FastEndpoints Endpoint classes for Inquiry API:
- SubmitEndpoint: POST /api/inquiry (public)
- GetPagedEndpoint: GET /api/inquiry (auth, paginated)
- GetByIdEndpoint: GET /api/inquiry/{id} (auth)
- UpdateStatusEndpoint: PUT /api/inquiry/{id}/status (auth)
- UpdateAdminMemoEndpoint: PUT /api/inquiry/{id}/memo (auth)
- UpdateEndpoint: PUT /api/inquiry/{id} (auth)
- ConvertToClientEndpoint: POST /api/inquiry/{id}/convert-to-client (auth)
- Create InquiryDtos.cs with shared response types:
- InquiryQuery (query parameters)
- InquiryPagedResponse (paginated response)
- UpdateStatusRequest, UpdateAdminMemoRequest, ConvertToClientRequest
- ConvertToClientResponse, MessageResponse
- Backup InquiryController.cs (no longer active)
VERIFICATION:
✅ dotnet build: 0 errors, 0 warnings
✅ dotnet test: 26/26 passed
✅ Local service publish successful
✅ FastEndpoints auto-discovery working
✅ All 21 endpoints verified (Auth 4 + Blog 10 + Inquiry 7)
MIGRATION PROGRESS:
✅ Phase 1: Auth (4 endpoints) - DEPLOYED
✅ Phase 2: Blog (10 endpoints) - DEPLOYED
✅ Phase 3: Inquiry (7 endpoints) - READY FOR DEPLOYMENT
Next: Deploy Phase 3, then continue with remaining 13 Controllers
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:21:36 +09:00
kjh2064
c92118ab32
feat: migrate BlogController to FastEndpoints Endpoints (Phase 2)
...
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m25s
IMPLEMENTATION:
- Create 10 FastEndpoints Endpoint classes for Blog API:
- GetPublishedEndpoint: GET /api/blog (public, paginated)
- GetBySlugEndpoint: GET /api/blog/{slug} (public)
- GetByIdEndpoint: GET /api/blog/admin/{id} (auth)
- GetAllEndpoint: GET /api/blog/admin/all (auth)
- GetAdminPagedEndpoint: GET /api/blog/admin (auth, paginated)
- GetArchivedPagedEndpoint: GET /api/blog/admin/archived (auth, paginated)
- CreateEndpoint: POST /api/blog (auth)
- UpdateEndpoint: PUT /api/blog/{id} (auth)
- DeleteEndpoint: DELETE /api/blog/{id} (auth, archives post)
- RestoreEndpoint: POST /api/blog/{id}/restore (auth)
- Create BlogDtos.cs with shared response types:
- BlogPublishedQuery / BlogAdminQuery (query parameters)
- PaginatedResponse<T> (generic pagination response)
- BlogPostListResponse (list response)
- MessageResponse (simple message)
- Backup BlogController.cs (no longer active)
ARCHITECTURE:
- All endpoints use Endpoint<TRequest, TResponse> pattern
- BlogService injected via constructor DI
- Proper error handling with ThrowError()
- Authorization via Policies("Bearer") for protected endpoints
- AllowAnonymous() for public endpoints
VERIFICATION:
✅ dotnet build: 0 errors, 0 warnings
✅ dotnet test: 26/26 passed
✅ FastEndpoints auto-discovery working
Next Phase: Migrate remaining Controllers (18 total - 2 done = 16 remaining)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:17:30 +09:00
kjh2064
675ef64975
feat: migrate AuthController to FastEndpoints Endpoints (Phase 1)
...
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m31s
IMPLEMENTATION:
- Create 4 FastEndpoints Endpoint classes:
- LoginEndpoint: POST /api/auth/login
- RefreshTokenEndpoint: POST /api/auth/refresh
- ChangePasswordEndpoint: POST /api/auth/change-password
- ResetPasswordEndpoint: POST /api/auth/reset-password
- Backup AuthController.cs (no longer active)
- Add FastEndpoints.Endpoint<TRequest, TResponse> pattern
- Implement proper DI with AuthService injection
- Use Policies("Bearer") for authorization
- Proper error handling with ThrowError()
ARCHITECTURE:
- Start of Phase 1: Core Auth APIs
- Endpoints follow FastEndpoints conventions
- DTOs: LoginRequest, RefreshTokenRequest, ChangePasswordRequest, ResetPasswordRequest, TokenPairResponse, MessageResponse
- AllowAnonymous for login/refresh/reset
- Bearer policy for change-password
VERIFICATION:
✅ dotnet build: 0 errors, 0 warnings
✅ dotnet test: 26/26 passed
✅ FastEndpoints auto-discovery working (no endpoint errors)
✅ JWT validation passes
Next Phase: BlogController and remaining APIs
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-07-03 17:14:35 +09:00
kjh2064
ea447495d3
refactor: move buildable .NET source into src/, update CI/doc paths
...
TaxBaik CI/CD / build-and-deploy (push) Successful in 2m7s
Groups the repo root into src (buildable source), docs (already existed),
and everything else (db/, scripts/, tests/, deploy/ - deployment/ops/test
assets that aren't compiled, already organized as their own folders). CI
now only needs src/ to build: dotnet restore/build/test/publish all point
at src/TaxBaik.sln, src/TaxBaik.Web/, src/TaxBaik.Proxy/.
- git mv every project (Domain, Infrastructure, Application,
Application.Tests, Web, Web.Client, Proxy) and TaxBaik.sln into src/ as a
unit, so relative ProjectReference/.sln paths stay valid unchanged.
- .gitea/workflows/deploy.yml: 6 dotnet restore/clean/build/test/publish
invocations now point at src/. db/migrations and scripts/ stay at root
(deploy_gb.sh and browser-e2e.yml only touch published output and the
deployed URL, not source paths - verified, no changes needed there).
- scripts/validate_admin_render.sh: admin render-mode file paths now
src/TaxBaik.Web.Client/...
- scripts/validate_kst_timestamps.sh: dropped deploy.sh from its target
list - that script was removed in the prior cleanup commit (dead, no
CI workflow referenced it) but this validator still expected it to exist.
- CLAUDE.md, docs/ENGINEERING_HARNESS.md, docs/ADMIN_PATTERN_CRITIQUE_WBS.md:
updated project-structure diagram, dotnet run/build commands, and grep
targets to the new src/ paths (also fixed a pre-existing stale path in
ADMIN_PATTERN_CRITIQUE_WBS.md that still said TaxBaik.Web/Components/Admin
from before that ever moved to TaxBaik.Web.Client).
- Added a Repo Root harness rule + Architecture Guardrail entries: new files
belong under src/docs/tests/scripts/db/deploy, not loose at root; temp
work stays outside the repo (or under a gitignored .scratch/) and is
never committed.
Verified locally: dotnet build/test src/TaxBaik.sln (26/26 tests), and all
three scripts/validate_*.sh pass against the new layout.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-03 10:37:37 +09:00