docs: add project structure cleanup spec

This commit is contained in:
2026-05-06 23:08:43 +02:00
parent 403d4e50bb
commit 6c4642904f

View File

@@ -0,0 +1,38 @@
# Design Spec: Project Structure Cleanup and Standardization
Standardize the Go project structure, consolidate database packages, and remove redundant files to improve maintainability and idiomatic code patterns.
## 1. Database Package Consolidation
### Current State
- `internal/db` contains `sqlc` generated code in package `database`.
- `internal/db/sqlite/sqlite.go` is in a separate package for DB initialization.
- Imports are scattered between `mal/internal/db` (often aliased) and `mal/internal/db/sqlite`.
### Changes
- **Package Renaming:** Change package `database` to `db` in all `internal/db/*.go` files.
- **sqlc configuration:** Update `sqlc.yaml` to use `package: db`.
- **Flattening:** Move `internal/db/sqlite/sqlite.go` to `internal/db/sqlite.go`.
- **Import Cleanup:** Update all consumers to use `mal/internal/db` directly.
## 2. Redundant File Removal
### Changes
- Delete all `.go` files in `tmp/scripts/` (`fix_json.go`, `fix_proxy.go`, `test_jikan.go`, etc.).
- Remove the empty directory `internal/db/sqlite` after moving the file.
## 3. Asset Build Optimization
### Changes
- Investigate `dist/` duplication.
- Update `package.json` build scripts if necessary to ensure `dist/` has a flat, clean structure matching what `NewRouter` expects.
## 4. Verification Plan
### Automated Checks
- `go build ./...`: Verify all Go imports and package renames.
- `bun run typecheck`: Verify TS/JS integrity.
- `sqlc generate`: Verify that regeneration doesn't break the new package naming.
### Manual Checks
- Verify server starts and database migrations apply correctly.