Contents

Contact form bounded context.

Locations

Layer Path
Domain internal/domain/contact/
Application internal/application/contact/start with service.go
HTTP internal/adapters/http/handler/contact_handler.go
GoUI controller_public_auth.go (submit), controller_contacts.go (inbox)
Persistence adapters/persistence/postgres/contact_repository.go
Wiring wire_user.gocontactService; wire_http / wire_goui

Application

File Role
service.go Facade: Submit, List, Get, MarkRead
submit.go SubmitHandler
query.go List / Get / MarkRead handlers

Surfaces

  • Public: POST /api/v1/contact, panel /contact
  • Admin: /api/v1/contacts, /dashboard/contacts