CLI referencia

add core

A közös core/ és a modul-szintű repository/ vázak hozzáadása egy olyan modulhoz, amelyben még nincsenek meg.

Ezt egy olyan modulon futtasd, amelynek még nincs közös magja, például mert kézzel építetted, vagy egy csak surface-re lecsupaszított minimál modul.

go tool gpsystem add core <modul> [--db <v>]

A modul-szintű közös vázakat rendereli egy meglévő modulba: a core/ csomagot (a minden surface által megosztott entitások, szabályok és sentinel-hibák helye) és a modul egyetlen repository/ perzisztencia-rétegének vázát. Új moduloknál erre nincs szükség: az add surface a modul első surface-e mellé automatikusan odabélyegzi mindkettőt. Az add core a többi esetre való: egy generátor nélkül épített modulra, vagy egy olyanra, amelynek a közös magját törölték.

Mit renderel

  • internal/modules/<modul>/core/core.go: a csomagdokumentáció, benne az import irányát rögzítő szabály (http → service → core → repository; a core soha nem importál surface-csomagot, a handler soha nem importálja a repository-t)
  • internal/modules/<modul>/core/errors.go: egy ErrNotFound sentinel errs.Define-nal, mintaként arra, hogy a "nincs ilyen rekord" jellegű hibákat a core definiálja (vagy exportálja tovább a repositoryból), és a handlerek mindig a saját surface-ük service csomagján át ellenőrzik
  • internal/modules/<modul>/repository/doc.go: a modul közös perzisztencia-rétegének csomagváza (a sorokat leíró structok + interfész + implementáció ide kerül, modulonként egyszer)

A parancs tisztán additív: nem nyúl anchorhoz, nem módosít meglévő fájlt, csak új fájlokat hoz létre. Ha a modulnak már van core/ csomagja, a parancs nem fut le.

--db: nevesített kapcsolat

Alapesetben a repository-váz flat (repository/doc.go), a projekt default adatbázis-kapcsolatához kötve. A --db <név> egy korábban add db-vel hozzáadott nevesített kapcsolathoz köti, és a vázat kapcsolatnév szerinti almappaként rendereli:

go tool gpsystem add db news analytics --connector bun
go tool gpsystem add core news --db analytics
# -> internal/modules/news/repository/analytics/doc.go

A <név>-nek már léteznie kell a modulon; ha nem, a parancs azonnal hibázik, és felsorolja a modul elérhető kapcsolatait.

Copyright © 2026