Backend monolitico en Go para Muy del Campo.
La arquitectura actual del repo es:
- un solo
ApiServiceen protobuf - un solo servidor gRPC
- un solo nucleo de aplicacion en
internal/app - un borde de transporte en
api/*
cmd/server- bootstrap principal
api/okgrpc- borde gRPC
- interceptors
- auth del transporte
- mapping de errores publicos
internal/app- dominio
- inputs y data internos
- use cases
- repositorio
- errores semanticos
internal/modules- infraestructura y clientes externos
internal/platforms- config, logger, crypto, validacion y utilidades
protobuf/def/v1- contrato protobuf
protobuf/gen/v1- codigo generado
El contrato externo se concentra en un unico service:
Regla actual:
- nuevos metodos gRPC se agregan al mismo
ApiService - el borde se implementa en
api/okgrpc
El patron actual del proyecto es:
gRPC -> api/okgrpc -> internal/app/UseService -> internal/app/Repository -> PostgreSQL
Dentro de internal/app el flujo preferido es:
input del transporte -> input interno -> data interna -> repository
Requeridas por confx.Load():
ENVPORTWHATSAPP_TOKENWHATSAPP_PHONEPG_DATABASE_URL
Opcional:
GOOGLE_MAPS_API_KEY
Ejecutar:
make runEso carga .env y levanta cmd/server/main.go.
Generar Go:
make _gen_proto_v1Generar Dart:
make _gen_proto_dart_v2El pipeline gRPC actual vive en:
Si el cambio toca transporte:
- empieza en
api/*
Si el cambio toca negocio, auth, usuarios o persistencia:
- empieza en
internal/app
Si el cambio toca infraestructura:
- empieza en
internal/modules/*ointernal/platforms/*