Add aftersales stats to dashboard and service-layer tests

- CompanyStatsOverviewDTO and GetStats() now include aftersales counts
  (total, pending confirmation, closed, rejected) and a recentAftersales list
- aftersales_service_test.go covers YYMMNN sequence, owner-only submit,
  state machine, phone last-4 check, reject increment, force-close
- users_service_test.go covers duplicate username, self-demotion guard,
  last-admin guard, password reset, assignable filter

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Frudrax Cheng
2026-05-26 11:04:23 +08:00
parent 3ddd4db126
commit 128bb7cda6
7 changed files with 571 additions and 17 deletions
+4 -2
View File
@@ -68,8 +68,10 @@ backend-go/
│ ├── companies_service.go # Company CRUD
│ ├── employees_service.go # Employee serials: generate, query, update, revoke, qrcode
│ ├── serials_service.go # Company serials: generate, query, update, revoke, qrcode
│ ├── services_test.go # Unit tests
── users_service.go # User CRUD, role management, password reset (admin)
│ ├── aftersales_service_test.go # Aftersales unit tests
── services_test.go # Auth / Serials / Employees / Companies unit tests
│ ├── users_service.go # User CRUD, role management, password reset (admin)
│ └── users_service_test.go # Users unit tests
├── tests/ # Integration tests
│ └── main_test.go # End-to-end tests
├── data/ # SQLite data directory