Contents

User bounded context — files at a glance.

Locations

Layer Path
Domain internal/domain/user/
Application internal/application/user/
HTTP internal/adapters/http/handler/user_handler.go
GoUI internal/adapters/goui/controller_account_users.go
Persistence internal/adapters/persistence/postgres/user_repository.go
SQL db/queries/ (users)
Wiring bootstrap/wire_user.go, wire_http.go, wire_goui.go (UserDeps)

Application (use cases)

File Typical role
service.go Service facade — transport read surface
query.go GetHandler, ListHandler
command.go Register, Activate, Delete, Restore, Change*
access.go List / profile / role authorization checks
dto.go Outbound view/DTO
locale_policy.go Preferred locale
ports.go Application external ports (if needed)

HTTP surfaces

Registration: internal/adapters/http/server.go/api/v1/users/...

Method Path Handler method Permission (summary)
POST /users/ Register public
GET /users/ List users:list
GET /users/:id Get auth
GET /users/me Me auth
PATCH /users/me/* ChangeMy* / ChangeLocale auth
POST /users/create AdminCreate users:list
POST /users/:id/activate Activate users:activate
DELETE /users/:id Delete users:delete
POST /users/:id/restore Restore users:restore
PATCH /users/:id/role ChangeRole users:role:change

Panel surfaces

Path Screen Controller (in file)
/dashboard/users users list
/dashboard/users/new user-new new
/dashboard/users/:id user-show show
/dashboard/account account account (same file family)

Route table: adapters/goui/routes.gopageRoutes().

End-to-end (list)

API: READING.md — Golden path A
Panel: READING.md — Golden path B

Related

  • Auth session / JWT → map/auth.md
  • RBAC permission constants → pkg/rbac
  • Architecture → DOMAIN.md