|
|
||
|---|---|---|
| .. | ||
| dto | ||
| integration | ||
| payment | ||
| system | ||
| task | ||
| README.md | ||
| service.go | ||
README.md
Service Layer
service adapts HTTP-facing DTOs to business usecases and owns application
orchestration. Request/response/filter contracts live in dto/; the root
package aggregates module provider sets for Wire.
Implementations are grouped by the same business modules as biz and data:
| Directory | Responsibility |
|---|---|
system/ |
authentication, users, authorization, menus, organization, dictionaries, settings, audit, media, announcements, email, versions, exports |
payment/ |
payment orchestration and callback handling |
integration/ |
integration configuration orchestration |
task/ |
scheduled task orchestration |
dto/ |
HTTP request/response contracts |
The stateless router-prefix helper lives in internal/utils/routepath because
both service modules and HTTP middleware use it; it does not depend on a
business usecase or DTO.
Each module owns its Wire ProviderSet; the root package only composes those
sets and does not re-export service types or constructors.
Within system/, larger cross-cutting resources stay in the same package while
being split by concern (audit.go and its error/log companions, media.go and
upload companion, and export.go/export_excel.go). New transport code should
import the module package directly when it does not need the compatibility
facade.