Files
Ferme/AGENTS.md

2.0 KiB
Raw Blame History

AGENTS.md

Project overview

  • Symfony 8 + API Platform 4 backend, Nuxt 3 frontend in frontend/.
  • Apache vhost serves API under /api and frontend from frontend/dist.
  • API base URL on frontend uses NUXT_PUBLIC_API_BASE (see frontend/.env).

Backend conventions

  • Use English for code identifiers/messages; keep “pont-bascule” as domain term.
  • API Platform operations are defined on Doctrine entities.
  • Reception entity is in src/Entity/Reception.php, with custom weigh endpoint /receptions/weigh.
  • Reception fields: dsd, weight, date_reception, license_plate, current_step (default 0), is_valid (default false).
  • date_reception is set by the UI, stored as DateTimeImmutable.
  • Weight entity (src/Entity/Weight.php) is 11 with Reception, weights stored as int (kg), dates nullable.
  • Custom exception: App\Exception\PontBasculeException with French messages, mapped to 500 in provider.
  • Parsing of pont-bascule payload is in src/Service/PontBasculePayloadDecoder.php.
  • config/reference.php is auto-generated; keep it.

Frontend conventions

  • Nuxt SSR disabled; Tailwind used.
  • Layout in frontend/layouts/default.vue: max width 1050px, header full width.
  • Tailwind custom color palette is primary (e.g. bg-primary-500).
  • API composable in frontend/composables/useApi.ts with get/post/put/patch/delete and default JSON/PATCH content types.
  • Pinia store: frontend/stores/reception.ts is the source of truth for the current reception.
  • Reception step UI uses store state (currentStep) in frontend/pages/reception/[[id]].vue.
  • Active nav styles in header use NuxtLink with custom slot.

Environment & routing

  • Frontend dev server: npm run dev in frontend/.
  • API base for local dev: http://localhost:8080/api (set in frontend/.env via NUXT_PUBLIC_API_BASE).
  • CORS handled by Nelmio; .env includes CORS_ALLOW_ORIGIN regex for localhost.

Notes

  • Do not add a GET that creates resources; use POST + PATCH.
  • Keep endpoints in plural (API Platform convention).