[{"data":1,"prerenderedAt":1714},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-cli-add-seeder":442,"-hu-cli-add-seeder-surround":1709},[4,45,60,81,112,129,146,173,197,213,242,280,357,373,385,404,430],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Kezdő lépések","i-lucide-rocket","\u002Fhu\u002Fgetting-started","hu\u002F1.getting-started",[10,15,20,24,29,34,39],{"title":11,"path":12,"stem":13,"icon":14},"Bevezetés","\u002Fhu\u002Fgetting-started\u002Fintroduction","hu\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Laravelből érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-laravel","hu\u002F1.getting-started\u002F2.coming-from-laravel","i-lucide-arrow-right-left",{"title":21,"path":22,"stem":23,"icon":19},"Symfonyból érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-symfony","hu\u002F1.getting-started\u002F3.coming-from-symfony",{"title":25,"path":26,"stem":27,"icon":28},"Telepítés","\u002Fhu\u002Fgetting-started\u002Finstallation","hu\u002F1.getting-started\u002F4.installation","i-lucide-download",{"title":30,"path":31,"stem":32,"icon":33},"Az első modulod","\u002Fhu\u002Fgetting-started\u002Ffirst-module","hu\u002F1.getting-started\u002F5.first-module","i-lucide-package-plus",{"title":35,"path":36,"stem":37,"icon":38},"Projektstruktúra","\u002Fhu\u002Fgetting-started\u002Fproject-structure","hu\u002F1.getting-started\u002F6.project-structure","i-lucide-folder-tree",{"title":40,"path":41,"stem":42,"icon":43},"A shop mintaalkalmazás","\u002Fhu\u002Fgetting-started\u002Fsample-app","hu\u002F1.getting-started\u002F7.sample-app","i-lucide-shopping-cart",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"queue","i-lucide-layers","\u002Fhu\u002Fqueue","hu\u002F10.queue",[51,56],{"title":52,"path":53,"stem":54,"icon":55},"Áttekintés","\u002Fhu\u002Fqueue\u002Foverview","hu\u002F10.queue\u002F1.overview","i-lucide-list-ordered",{"title":57,"path":58,"stem":59,"icon":47},"Taskok","\u002Fhu\u002Fqueue\u002Ftasks","hu\u002F10.queue\u002F2.tasks",{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":44},"events","i-lucide-workflow","\u002Fhu\u002Fevents","hu\u002F11.events",[66,71,76],{"title":67,"path":68,"stem":69,"icon":70},"Események","\u002Fhu\u002Fevents\u002Foverview","hu\u002F11.events\u002F1.overview","i-lucide-radio",{"title":72,"path":73,"stem":74,"icon":75},"Outbox","\u002Fhu\u002Fevents\u002Foutbox","hu\u002F11.events\u002F2.outbox","i-lucide-inbox",{"title":77,"path":78,"stem":79,"icon":80},"Ütemezés","\u002Fhu\u002Fevents\u002Fscheduler","hu\u002F11.events\u002F3.scheduler","i-lucide-calendar-clock",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":44},"auth","i-lucide-shield-check","\u002Fhu\u002Fauth","hu\u002F12.auth",[87,92,97,102,107],{"title":88,"path":89,"stem":90,"icon":91},"Autentikáció","\u002Fhu\u002Fauth\u002Foverview","hu\u002F12.auth\u002F1.overview","i-lucide-key-round",{"title":93,"path":94,"stem":95,"icon":96},"RBAC","\u002Fhu\u002Fauth\u002Frbac","hu\u002F12.auth\u002F2.rbac","i-lucide-users",{"title":98,"path":99,"stem":100,"icon":101},"Policy-k","\u002Fhu\u002Fauth\u002Fpolicy","hu\u002F12.auth\u002F3.policy","i-lucide-gavel",{"title":103,"path":104,"stem":105,"icon":106},"Az auth önálló használata","\u002Fhu\u002Fauth\u002Fstandalone","hu\u002F12.auth\u002F4.standalone","i-lucide-plug",{"title":108,"path":109,"stem":110,"icon":111},"Social login goth-tal, önállóan","\u002Fhu\u002Fauth\u002Fsocial-standalone","hu\u002F12.auth\u002F5.social-standalone","i-lucide-log-in",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":44},"mail","i-lucide-mail","\u002Fhu\u002Fmail","hu\u002F13.mail",[118,121,125],{"title":52,"path":119,"stem":120,"icon":114},"\u002Fhu\u002Fmail\u002Foverview","hu\u002F13.mail\u002F1.overview",{"title":122,"path":123,"stem":124,"icon":114},"SMTP","\u002Fhu\u002Fmail\u002Fsmtp","hu\u002F13.mail\u002F2.smtp",{"title":126,"path":127,"stem":128,"icon":114},"MJML","\u002Fhu\u002Fmail\u002Fmjml","hu\u002F13.mail\u002F3.mjml",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":44},"notify","i-lucide-bell","\u002Fhu\u002Fnotify","hu\u002F14.notify",[135,138,142],{"title":52,"path":136,"stem":137,"icon":131},"\u002Fhu\u002Fnotify\u002Foverview","hu\u002F14.notify\u002F1.overview",{"title":139,"path":140,"stem":141,"icon":131},"Database csatorna","\u002Fhu\u002Fnotify\u002Fdatabase","hu\u002F14.notify\u002F2.database",{"title":143,"path":144,"stem":145,"icon":131},"Broadcast csatorna","\u002Fhu\u002Fnotify\u002Fbroadcast","hu\u002F14.notify\u002F3.broadcast",{"title":147,"icon":148,"path":149,"stem":150,"children":151,"page":44},"storage","i-lucide-hard-drive","\u002Fhu\u002Fstorage","hu\u002F15.storage",[152,155,159,163,168],{"title":52,"path":153,"stem":154,"icon":148},"\u002Fhu\u002Fstorage\u002Foverview","hu\u002F15.storage\u002F1.overview",{"title":156,"path":157,"stem":158},"Disk API","\u002Fhu\u002Fstorage\u002Fdisk-api","hu\u002F15.storage\u002F2.disk-api",{"title":160,"path":161,"stem":162,"icon":148},"Memória és helyi lemez","\u002Fhu\u002Fstorage\u002Flocal","hu\u002F15.storage\u002F3.local",{"title":164,"path":165,"stem":166,"icon":167},"S3","\u002Fhu\u002Fstorage\u002Fs3","hu\u002F15.storage\u002F4.s3","i-lucide-cloud",{"title":169,"path":170,"stem":171,"icon":172},"Tesztelés","\u002Fhu\u002Fstorage\u002Ftesting","hu\u002F15.storage\u002F5.testing","i-lucide-flask-conical",{"title":174,"icon":175,"path":176,"stem":177,"children":178,"page":44},"telemetry","i-lucide-activity","\u002Fhu\u002Ftelemetry","hu\u002F16.telemetry",[179,182,187,192],{"title":52,"path":180,"stem":181,"icon":175},"\u002Fhu\u002Ftelemetry\u002Foverview","hu\u002F16.telemetry\u002F1.overview",{"title":183,"path":184,"stem":185,"icon":186},"Logolás","\u002Fhu\u002Ftelemetry\u002Flogging","hu\u002F16.telemetry\u002F2.logging","i-lucide-scroll-text",{"title":188,"path":189,"stem":190,"icon":191},"OpenTelemetry","\u002Fhu\u002Ftelemetry\u002Fopentelemetry","hu\u002F16.telemetry\u002F3.opentelemetry","i-lucide-radar",{"title":193,"path":194,"stem":195,"icon":196},"Sentry","\u002Fhu\u002Ftelemetry\u002Fsentry","hu\u002F16.telemetry\u002F4.sentry","i-lucide-bug",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":44},"Referencia","i-lucide-book-open","\u002Fhu\u002Freference","hu\u002F17.reference",[203,208],{"title":204,"path":205,"stem":206,"icon":207},"Konfiguráció","\u002Fhu\u002Freference\u002Fconfiguration","hu\u002F17.reference\u002F1.configuration","i-lucide-settings",{"title":209,"path":210,"stem":211,"icon":212},"Külső függőségek","\u002Fhu\u002Freference\u002Fdependencies","hu\u002F17.reference\u002F2.dependencies","i-lucide-package",{"title":214,"icon":215,"path":216,"stem":217,"children":218,"page":44},"Koncepciók","i-lucide-lightbulb","\u002Fhu\u002Fconcepts","hu\u002F2.concepts",[219,223,228,232,237],{"title":220,"path":221,"stem":222,"icon":47},"Architektúra","\u002Fhu\u002Fconcepts\u002Farchitecture","hu\u002F2.concepts\u002F1.architecture",{"title":224,"path":225,"stem":226,"icon":227},"Hibamodell","\u002Fhu\u002Fconcepts\u002Ferror-model","hu\u002F2.concepts\u002F2.error-model","i-lucide-shield-alert",{"title":204,"path":229,"stem":230,"icon":231},"\u002Fhu\u002Fconcepts\u002Fconfiguration","hu\u002F2.concepts\u002F3.configuration","i-lucide-settings-2",{"title":233,"path":234,"stem":235,"icon":236},"Codegen pipeline","\u002Fhu\u002Fconcepts\u002Fcodegen-pipeline","hu\u002F2.concepts\u002F4.codegen-pipeline","i-lucide-file-json",{"title":238,"path":239,"stem":240,"icon":241},"Design patternek","\u002Fhu\u002Fconcepts\u002Fdesign-patterns","hu\u002F2.concepts\u002F5.design-patterns","i-lucide-puzzle",{"title":243,"icon":244,"path":245,"stem":246,"children":247,"page":44},"A kit","i-lucide-box","\u002Fhu\u002Fkit","hu\u002F3.kit",[248,252,257,262,267,271,276],{"title":249,"path":250,"stem":251,"icon":244},"A kit áttekintése","\u002Fhu\u002Fkit\u002Foverview","hu\u002F3.kit\u002F1.overview",{"title":253,"path":254,"stem":255,"icon":256},"Alkalmazás-életciklus","\u002Fhu\u002Fkit\u002Fapp","hu\u002F3.kit\u002F2.app","i-lucide-power",{"title":258,"path":259,"stem":260,"icon":261},"Szerver","\u002Fhu\u002Fkit\u002Fserver","hu\u002F3.kit\u002F3.server","i-lucide-server",{"title":263,"path":264,"stem":265,"icon":266},"Worker","\u002Fhu\u002Fkit\u002Fworker","hu\u002F3.kit\u002F4.worker","i-lucide-cog",{"title":268,"path":269,"stem":270,"icon":70},"Realtime","\u002Fhu\u002Fkit\u002Frealtime","hu\u002F3.kit\u002F5.realtime",{"title":272,"path":273,"stem":274,"icon":275},"Migrációk","\u002Fhu\u002Fkit\u002Fmigrations","hu\u002F3.kit\u002F6.migrations","i-lucide-file-stack",{"title":277,"path":278,"stem":279,"icon":111},"Social login","\u002Fhu\u002Fkit\u002Fsocial-login","hu\u002F3.kit\u002F7.social-login",{"title":281,"icon":282,"path":283,"stem":284,"children":285,"page":44},"CLI referencia","i-lucide-terminal","\u002Fhu\u002Fcli","hu\u002F4.cli",[286,289,294,299,304,309,314,319,324,329,334,338,343,348,352],{"title":52,"path":287,"stem":288,"icon":282},"\u002Fhu\u002Fcli\u002Foverview","hu\u002F4.cli\u002F1.overview",{"title":290,"path":291,"stem":292,"icon":293},"add db","\u002Fhu\u002Fcli\u002Fadd-db","hu\u002F4.cli\u002F10.add-db","i-lucide-database-zap",{"title":295,"path":296,"stem":297,"icon":298},"add compose \u002F add docker","\u002Fhu\u002Fcli\u002Fadd-compose","hu\u002F4.cli\u002F11.add-compose","i-lucide-container",{"title":300,"path":301,"stem":302,"icon":303},"add mail","\u002Fhu\u002Fcli\u002Fadd-mail","hu\u002F4.cli\u002F12.add-mail","i-lucide-mail-plus",{"title":305,"path":306,"stem":307,"icon":308},"add notification","\u002Fhu\u002Fcli\u002Fadd-notification","hu\u002F4.cli\u002F13.add-notification","i-lucide-bell-plus",{"title":310,"path":311,"stem":312,"icon":313},"add realtime","\u002Fhu\u002Fcli\u002Fadd-realtime","hu\u002F4.cli\u002F14.add-realtime","i-lucide-radio-tower",{"title":315,"path":316,"stem":317,"icon":318},"add seeder","\u002Fhu\u002Fcli\u002Fadd-seeder","hu\u002F4.cli\u002F15.add-seeder","i-lucide-sprout",{"title":320,"path":321,"stem":322,"icon":323},"new project","\u002Fhu\u002Fcli\u002Fnew-project","hu\u002F4.cli\u002F2.new-project","i-lucide-folder-plus",{"title":325,"path":326,"stem":327,"icon":328},"new module","\u002Fhu\u002Fcli\u002Fnew-module","hu\u002F4.cli\u002F3.new-module","i-lucide-blocks",{"title":330,"path":331,"stem":332,"icon":333},"add surface","\u002Fhu\u002Fcli\u002Fadd-surface","hu\u002F4.cli\u002F4.add-surface","i-lucide-layers-2",{"title":335,"path":336,"stem":337,"icon":244},"add core","\u002Fhu\u002Fcli\u002Fadd-core","hu\u002F4.cli\u002F5.add-core",{"title":339,"path":340,"stem":341,"icon":342},"add handler","\u002Fhu\u002Fcli\u002Fadd-handler","hu\u002F4.cli\u002F6.add-handler","i-lucide-webhook",{"title":344,"path":345,"stem":346,"icon":347},"new migration","\u002Fhu\u002Fcli\u002Fnew-migration","hu\u002F4.cli\u002F7.new-migration","i-lucide-file-plus",{"title":349,"path":350,"stem":351,"icon":266},"worker generátorok","\u002Fhu\u002Fcli\u002Fworker-generators","hu\u002F4.cli\u002F8.worker-generators",{"title":353,"path":354,"stem":355,"icon":356},"upgrade templates","\u002Fhu\u002Fcli\u002Fupgrade-templates","hu\u002F4.cli\u002F9.upgrade-templates","i-lucide-refresh-cw",{"title":358,"icon":227,"path":359,"stem":360,"children":361,"page":44},"errs","\u002Fhu\u002Ferrs","hu\u002F5.errs",[362,365,369],{"title":52,"path":363,"stem":364,"icon":227},"\u002Fhu\u002Ferrs\u002Foverview","hu\u002F5.errs\u002F1.overview",{"title":366,"path":367,"stem":368},"API","\u002Fhu\u002Ferrs\u002Fapi","hu\u002F5.errs\u002F2.api",{"title":370,"path":371,"stem":372,"icon":227},"Integráció","\u002Fhu\u002Ferrs\u002Fintegration","hu\u002F5.errs\u002F3.integration",{"title":374,"icon":231,"path":375,"stem":376,"children":377,"page":44},"envconf","\u002Fhu\u002Fenvconf","hu\u002F6.envconf",[378,381],{"title":52,"path":379,"stem":380,"icon":231},"\u002Fhu\u002Fenvconf\u002Foverview","hu\u002F6.envconf\u002F1.overview",{"title":382,"path":383,"stem":384},"Receptek","\u002Fhu\u002Fenvconf\u002Frecipes","hu\u002F6.envconf\u002F2.recipes",{"title":386,"icon":387,"path":388,"stem":389,"children":390,"page":44},"httperr","i-lucide-globe","\u002Fhu\u002Fhttperr","hu\u002F7.httperr",[391,394,399],{"title":52,"path":392,"stem":393,"icon":387},"\u002Fhu\u002Fhttperr\u002Foverview","hu\u002F7.httperr\u002F1.overview",{"title":395,"path":396,"stem":397,"icon":398},"Hibaválaszok","\u002Fhu\u002Fhttperr\u002Ferror-responses","hu\u002F7.httperr\u002F2.error-responses","i-lucide-octagon-alert",{"title":400,"path":401,"stem":402,"icon":403},"Validáció","\u002Fhu\u002Fhttperr\u002Fvalidation","hu\u002F7.httperr\u002F3.validation","i-lucide-badge-check",{"title":405,"icon":406,"path":407,"stem":408,"children":409,"page":44},"dbx","i-lucide-database","\u002Fhu\u002Fdbx","hu\u002F8.dbx",[410,413,417,421,426],{"title":52,"path":411,"stem":412,"icon":406},"\u002Fhu\u002Fdbx\u002Foverview","hu\u002F8.dbx\u002F1.overview",{"title":414,"path":415,"stem":416,"icon":106},"pgx","\u002Fhu\u002Fdbx\u002Fpg","hu\u002F8.dbx\u002F2.pg",{"title":418,"path":419,"stem":420,"icon":47},"bun","\u002Fhu\u002Fdbx\u002Fbunx","hu\u002F8.dbx\u002F3.bunx",{"title":422,"path":423,"stem":424,"icon":425},"Tranzakciók","\u002Fhu\u002Fdbx\u002Ftransactions","hu\u002F8.dbx\u002F4.transactions","i-lucide-git-merge",{"title":427,"path":428,"stem":429,"icon":318},"Seederek","\u002Fhu\u002Fdbx\u002Fseed","hu\u002F8.dbx\u002F5.seed",{"title":431,"icon":55,"path":432,"stem":433,"children":434,"page":44},"paginate","\u002Fhu\u002Fpaginate","hu\u002F9.paginate",[435,438],{"title":52,"path":436,"stem":437,"icon":55},"\u002Fhu\u002Fpaginate\u002Foverview","hu\u002F9.paginate\u002F1.overview",{"title":439,"path":440,"stem":441,"icon":19},"Cursor-lapozás","\u002Fhu\u002Fpaginate\u002Fcursor","hu\u002F9.paginate\u002F2.cursor",{"id":443,"title":315,"body":444,"description":1702,"extension":1703,"links":1704,"meta":1705,"navigation":1706,"path":316,"seo":1707,"stem":317,"__hash__":1708},"docs_hu\u002Fhu\u002F4.cli\u002F15.add-seeder.md",{"type":445,"value":446,"toc":1697},"minimark",[447,451,497,516,536,541,675,747,782,786,792,826,1144,1537,1614,1630,1634,1671,1693],[448,449,450],"p",{},"Seedert akkor érdemes elővenni, amikor a projektnek a migrációk lefutása után, de még bármilyen felhasználói művelet előtt kell léteznie valamilyen alapadatnak: egy admin fiók, amivel be lehet lépni, egy fix szerepkör- vagy lookup-lista, amire egy idegen kulcs hivatkozik, demo adat egy staging környezethez. A felhasználói művelet hatására létrejövő üzleti sorok helye egy service, nem ez; a seeder azokra a sorokra való, amikről az app feltételezi, hogy már ott vannak.",[452,453,458],"pre",{"className":454,"code":455,"language":456,"meta":457,"style":457},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","go tool gpsystem add seeder \u003Cnév>\n","sh","",[459,460,461],"code",{"__ignoreMap":457},[462,463,466,470,474,477,480,483,487,490,494],"span",{"class":464,"line":465},"line",1,[462,467,469],{"class":468},"sBMFI","go",[462,471,473],{"class":472},"sfazB"," tool",[462,475,476],{"class":472}," gpsystem",[462,478,479],{"class":472}," add",[462,481,482],{"class":472}," seeder",[462,484,486],{"class":485},"sMK4o"," \u003C",[462,488,489],{"class":472},"né",[462,491,493],{"class":492},"sTEyZ","v",[462,495,496],{"class":485},">\n",[448,498,499,500,503,504,507,508,511,512,515],{},"Egy seeder-stubot ír a projekt központi ",[459,501,502],{},"seeds\u002F"," package-ébe, és regisztrálja a ",[459,505,506],{},"seeds\u002Fregister.go","-ban. A seeder egy ",[459,509,510],{},"seed.Seeder","-t ad vissza: nevet, opcionális Guardot (eldönti, lefusson-e egyáltalán) és a Run törzset. Részletek és minták: ",[513,514,427],"a",{"href":428},".",[452,517,519],{"className":454,"code":518,"language":456,"meta":457,"style":457},"go tool gpsystem add seeder adminUser\n",[459,520,521],{"__ignoreMap":457},[462,522,523,525,527,529,531,533],{"class":464,"line":465},[462,524,469],{"class":468},[462,526,473],{"class":472},[462,528,476],{"class":472},[462,530,479],{"class":472},[462,532,482],{"class":472},[462,534,535],{"class":472}," adminUser\n",[537,538,540],"h2",{"id":539},"mit-generál","Mit generál",[452,542,546],{"className":543,"code":544,"filename":545,"language":469,"meta":457,"style":457},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","func adminUser(deps Deps) seed.Seeder {\n    return seed.Seeder{\n        Name: \"admin_user\",\n        Run: func(ctx context.Context) error {\n            return nil\n        },\n    }\n}\n","seeds\u002Fadmin_user.go",[459,547,548,581,597,618,648,657,663,669],{"__ignoreMap":457},[462,549,550,553,557,560,564,567,570,573,575,578],{"class":464,"line":465},[462,551,552],{"class":485},"func",[462,554,556],{"class":555},"s2Zo4"," adminUser",[462,558,559],{"class":485},"(",[462,561,563],{"class":562},"sHdIc","deps",[462,565,566],{"class":468}," Deps",[462,568,569],{"class":485},")",[462,571,572],{"class":468}," seed",[462,574,515],{"class":485},[462,576,577],{"class":468},"Seeder",[462,579,580],{"class":485}," {\n",[462,582,584,588,590,592,594],{"class":464,"line":583},2,[462,585,587],{"class":586},"s7zQu","    return",[462,589,572],{"class":468},[462,591,515],{"class":485},[462,593,577],{"class":468},[462,595,596],{"class":485},"{\n",[462,598,600,603,606,609,612,615],{"class":464,"line":599},3,[462,601,602],{"class":492},"        Name",[462,604,605],{"class":485},":",[462,607,608],{"class":485}," \"",[462,610,611],{"class":472},"admin_user",[462,613,614],{"class":485},"\"",[462,616,617],{"class":485},",\n",[462,619,621,624,626,629,632,635,637,640,642,646],{"class":464,"line":620},4,[462,622,623],{"class":492},"        Run",[462,625,605],{"class":485},[462,627,628],{"class":485}," func(",[462,630,631],{"class":562},"ctx",[462,633,634],{"class":468}," context",[462,636,515],{"class":485},[462,638,639],{"class":468},"Context",[462,641,569],{"class":485},[462,643,645],{"class":644},"spNyl"," error",[462,647,580],{"class":485},[462,649,651,654],{"class":464,"line":650},5,[462,652,653],{"class":586},"            return",[462,655,656],{"class":485}," nil\n",[462,658,660],{"class":464,"line":659},6,[462,661,662],{"class":485},"        },\n",[462,664,666],{"class":464,"line":665},7,[462,667,668],{"class":485},"    }\n",[462,670,672],{"class":464,"line":671},8,[462,673,674],{"class":485},"}\n",[452,676,678],{"className":543,"code":677,"filename":506,"language":469,"meta":457,"style":457},"func Register(reg *seed.Registry, deps Deps) {\n    reg.Add(adminUser(deps))\n    \u002F\u002F gpsystem:seeds\n}\n",[459,679,680,715,737,743],{"__ignoreMap":457},[462,681,682,684,687,689,692,695,698,700,703,706,709,711,713],{"class":464,"line":465},[462,683,552],{"class":485},[462,685,686],{"class":555}," Register",[462,688,559],{"class":485},[462,690,691],{"class":562},"reg",[462,693,694],{"class":485}," *",[462,696,697],{"class":468},"seed",[462,699,515],{"class":485},[462,701,702],{"class":468},"Registry",[462,704,705],{"class":485},",",[462,707,708],{"class":562}," deps",[462,710,566],{"class":468},[462,712,569],{"class":485},[462,714,580],{"class":485},[462,716,717,720,722,725,727,730,732,734],{"class":464,"line":583},[462,718,719],{"class":492},"    reg",[462,721,515],{"class":485},[462,723,724],{"class":555},"Add",[462,726,559],{"class":485},[462,728,729],{"class":555},"adminUser",[462,731,559],{"class":485},[462,733,563],{"class":492},[462,735,736],{"class":485},"))\n",[462,738,739],{"class":464,"line":599},[462,740,742],{"class":741},"sHwdD","    \u002F\u002F gpsystem:seeds\n",[462,744,745],{"class":464,"line":620},[462,746,674],{"class":485},[448,748,749,750,753,754,756,757,759,760,763,764,767,768,771,772,775,776,778,779,781],{},"A ",[459,751,752],{},"Deps"," (a ",[459,755,506],{},"-ban, ",[459,758,320],{},"-től kezdve minden projektben ott van) a projekt ",[459,761,762],{},"--db"," választása szerint ",[459,765,766],{},"*pg.DB"," vagy ",[459,769,770],{},"*bun.DB"," mezőt hordoz, plusz egy ",[459,773,774],{},"dbx.Transactor","-t. A parancs a ",[459,777,320],{}," óta minden projektben meglévő ",[459,780,506],{},"-t várja; ha hiányzik, hibázik, és jelzi, hogy hiányzik.",[537,783,785],{"id":784},"egy-kidolgozott-több-sort-érintő-példa","Egy kidolgozott, több sort érintő példa",[448,787,788,789,791],{},"A seederek regisztrációs sorrendben futnak (az ",[459,790,724],{}," megőrzi a sorrendet), ez pedig számít, mihelyt az egyik seeder sorai egy másik idegen kulcsát adják: egy szerepkörkészletnek léteznie kell, mielőtt az admin user, ami hivatkozik rá, létrejön. Két seeder, ebben a sorrendben hozzáadva:",[452,793,795],{"className":454,"code":794,"language":456,"meta":457,"style":457},"go tool gpsystem add seeder roles\ngo tool gpsystem add seeder adminUser\n",[459,796,797,812],{"__ignoreMap":457},[462,798,799,801,803,805,807,809],{"class":464,"line":465},[462,800,469],{"class":468},[462,802,473],{"class":472},[462,804,476],{"class":472},[462,806,479],{"class":472},[462,808,482],{"class":472},[462,810,811],{"class":472}," roles\n",[462,813,814,816,818,820,822,824],{"class":464,"line":583},[462,815,469],{"class":468},[462,817,473],{"class":472},[462,819,476],{"class":472},[462,821,479],{"class":472},[462,823,482],{"class":472},[462,825,535],{"class":472},[452,827,830],{"className":543,"code":828,"filename":829,"language":469,"meta":457,"style":457},"func roles(deps Deps) seed.Seeder {\n    names := []string{\"admin\", \"editor\", \"viewer\"}\n    return seed.Seeder{\n        Name: \"roles\",\n        Run: func(ctx context.Context) error {\n            for _, name := range names {\n                if _, err := deps.DB.NewInsert().\n                    Model(&Role{Name: name}).\n                    On(\"CONFLICT (name) DO NOTHING\").\n                    Exec(ctx); err != nil {\n                    return fmt.Errorf(\"seed role %q: %w\", name, err)\n                }\n            }\n            return nil\n        },\n    }\n}\n","seeds\u002Froles.go",[459,831,832,855,899,911,926,948,971,1000,1024,1042,1065,1110,1116,1122,1129,1134,1139],{"__ignoreMap":457},[462,833,834,836,839,841,843,845,847,849,851,853],{"class":464,"line":465},[462,835,552],{"class":485},[462,837,838],{"class":555}," roles",[462,840,559],{"class":485},[462,842,563],{"class":562},[462,844,566],{"class":468},[462,846,569],{"class":485},[462,848,572],{"class":468},[462,850,515],{"class":485},[462,852,577],{"class":468},[462,854,580],{"class":485},[462,856,857,860,863,866,869,872,874,877,879,881,883,886,888,890,892,895,897],{"class":464,"line":583},[462,858,859],{"class":492},"    names ",[462,861,862],{"class":485},":=",[462,864,865],{"class":485}," []",[462,867,868],{"class":644},"string",[462,870,871],{"class":485},"{",[462,873,614],{"class":485},[462,875,876],{"class":472},"admin",[462,878,614],{"class":485},[462,880,705],{"class":485},[462,882,608],{"class":485},[462,884,885],{"class":472},"editor",[462,887,614],{"class":485},[462,889,705],{"class":485},[462,891,608],{"class":485},[462,893,894],{"class":472},"viewer",[462,896,614],{"class":485},[462,898,674],{"class":485},[462,900,901,903,905,907,909],{"class":464,"line":599},[462,902,587],{"class":586},[462,904,572],{"class":468},[462,906,515],{"class":485},[462,908,577],{"class":468},[462,910,596],{"class":485},[462,912,913,915,917,919,922,924],{"class":464,"line":620},[462,914,602],{"class":492},[462,916,605],{"class":485},[462,918,608],{"class":485},[462,920,921],{"class":472},"roles",[462,923,614],{"class":485},[462,925,617],{"class":485},[462,927,928,930,932,934,936,938,940,942,944,946],{"class":464,"line":650},[462,929,623],{"class":492},[462,931,605],{"class":485},[462,933,628],{"class":485},[462,935,631],{"class":562},[462,937,634],{"class":468},[462,939,515],{"class":485},[462,941,639],{"class":468},[462,943,569],{"class":485},[462,945,645],{"class":644},[462,947,580],{"class":485},[462,949,950,953,956,958,961,963,966,969],{"class":464,"line":659},[462,951,952],{"class":586},"            for",[462,954,955],{"class":492}," _",[462,957,705],{"class":485},[462,959,960],{"class":492}," name ",[462,962,862],{"class":485},[462,964,965],{"class":586}," range",[462,967,968],{"class":492}," names ",[462,970,596],{"class":485},[462,972,973,976,978,980,983,985,987,989,992,994,997],{"class":464,"line":665},[462,974,975],{"class":586},"                if",[462,977,955],{"class":492},[462,979,705],{"class":485},[462,981,982],{"class":492}," err ",[462,984,862],{"class":485},[462,986,708],{"class":492},[462,988,515],{"class":485},[462,990,991],{"class":492},"DB",[462,993,515],{"class":485},[462,995,996],{"class":555},"NewInsert",[462,998,999],{"class":485},"().\n",[462,1001,1002,1005,1008,1011,1013,1016,1018,1021],{"class":464,"line":671},[462,1003,1004],{"class":555},"                    Model",[462,1006,1007],{"class":485},"(&",[462,1009,1010],{"class":468},"Role",[462,1012,871],{"class":485},[462,1014,1015],{"class":492},"Name",[462,1017,605],{"class":485},[462,1019,1020],{"class":492}," name",[462,1022,1023],{"class":485},"}).\n",[462,1025,1027,1030,1032,1034,1037,1039],{"class":464,"line":1026},9,[462,1028,1029],{"class":555},"                    On",[462,1031,559],{"class":485},[462,1033,614],{"class":485},[462,1035,1036],{"class":472},"CONFLICT (name) DO NOTHING",[462,1038,614],{"class":485},[462,1040,1041],{"class":485},").\n",[462,1043,1045,1048,1050,1052,1055,1057,1060,1063],{"class":464,"line":1044},10,[462,1046,1047],{"class":555},"                    Exec",[462,1049,559],{"class":485},[462,1051,631],{"class":492},[462,1053,1054],{"class":485},");",[462,1056,982],{"class":492},[462,1058,1059],{"class":485},"!=",[462,1061,1062],{"class":485}," nil",[462,1064,580],{"class":485},[462,1066,1068,1071,1074,1076,1079,1081,1083,1086,1090,1093,1096,1098,1100,1102,1104,1107],{"class":464,"line":1067},11,[462,1069,1070],{"class":586},"                    return",[462,1072,1073],{"class":492}," fmt",[462,1075,515],{"class":485},[462,1077,1078],{"class":555},"Errorf",[462,1080,559],{"class":485},[462,1082,614],{"class":485},[462,1084,1085],{"class":472},"seed role ",[462,1087,1089],{"class":1088},"swJcz","%q",[462,1091,1092],{"class":472},": ",[462,1094,1095],{"class":1088},"%w",[462,1097,614],{"class":485},[462,1099,705],{"class":485},[462,1101,1020],{"class":492},[462,1103,705],{"class":485},[462,1105,1106],{"class":492}," err",[462,1108,1109],{"class":485},")\n",[462,1111,1113],{"class":464,"line":1112},12,[462,1114,1115],{"class":485},"                }\n",[462,1117,1119],{"class":464,"line":1118},13,[462,1120,1121],{"class":485},"            }\n",[462,1123,1125,1127],{"class":464,"line":1124},14,[462,1126,653],{"class":586},[462,1128,656],{"class":485},[462,1130,1132],{"class":464,"line":1131},15,[462,1133,662],{"class":485},[462,1135,1137],{"class":464,"line":1136},16,[462,1138,668],{"class":485},[462,1140,1142],{"class":464,"line":1141},17,[462,1143,674],{"class":485},[452,1145,1147],{"className":543,"code":1146,"filename":545,"language":469,"meta":457,"style":457},"func adminUser(deps Deps) seed.Seeder {\n    return seed.Seeder{\n        Name: \"admin_user\",\n        Guard: func(ctx context.Context) (bool, error) {\n            exists, err := deps.DB.NewSelect().Model((*User)(nil)).\n                Where(\"email = ?\", \"admin@example.com\").Exists(ctx)\n            return !exists, err\n        },\n        Run: func(ctx context.Context) error {\n            hash, err := bcrypt.GenerateFromPassword([]byte(mustEnv(\"SEED_ADMIN_PASSWORD\")), bcrypt.DefaultCost)\n            if err != nil {\n                return err\n            }\n            _, err = deps.DB.NewInsert().Model(&User{\n                Email:        \"admin@example.com\",\n                PasswordHash: string(hash),\n                Role:         \"admin\",\n            }).Exec(ctx)\n            return err\n        },\n    }\n}\n",[459,1148,1149,1171,1183,1197,1230,1267,1302,1317,1321,1343,1394,1407,1414,1418,1450,1466,1484,1500,1515,1522,1527,1532],{"__ignoreMap":457},[462,1150,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169],{"class":464,"line":465},[462,1152,552],{"class":485},[462,1154,556],{"class":555},[462,1156,559],{"class":485},[462,1158,563],{"class":562},[462,1160,566],{"class":468},[462,1162,569],{"class":485},[462,1164,572],{"class":468},[462,1166,515],{"class":485},[462,1168,577],{"class":468},[462,1170,580],{"class":485},[462,1172,1173,1175,1177,1179,1181],{"class":464,"line":583},[462,1174,587],{"class":586},[462,1176,572],{"class":468},[462,1178,515],{"class":485},[462,1180,577],{"class":468},[462,1182,596],{"class":485},[462,1184,1185,1187,1189,1191,1193,1195],{"class":464,"line":599},[462,1186,602],{"class":492},[462,1188,605],{"class":485},[462,1190,608],{"class":485},[462,1192,611],{"class":472},[462,1194,614],{"class":485},[462,1196,617],{"class":485},[462,1198,1199,1202,1204,1206,1208,1210,1212,1214,1216,1219,1222,1224,1226,1228],{"class":464,"line":620},[462,1200,1201],{"class":492},"        Guard",[462,1203,605],{"class":485},[462,1205,628],{"class":485},[462,1207,631],{"class":562},[462,1209,634],{"class":468},[462,1211,515],{"class":485},[462,1213,639],{"class":468},[462,1215,569],{"class":485},[462,1217,1218],{"class":485}," (",[462,1220,1221],{"class":644},"bool",[462,1223,705],{"class":485},[462,1225,645],{"class":644},[462,1227,569],{"class":485},[462,1229,580],{"class":485},[462,1231,1232,1235,1237,1239,1241,1243,1245,1247,1249,1252,1255,1258,1261,1264],{"class":464,"line":650},[462,1233,1234],{"class":492},"            exists",[462,1236,705],{"class":485},[462,1238,982],{"class":492},[462,1240,862],{"class":485},[462,1242,708],{"class":492},[462,1244,515],{"class":485},[462,1246,991],{"class":492},[462,1248,515],{"class":485},[462,1250,1251],{"class":555},"NewSelect",[462,1253,1254],{"class":485},"().",[462,1256,1257],{"class":555},"Model",[462,1259,1260],{"class":485},"((*",[462,1262,1263],{"class":468},"User",[462,1265,1266],{"class":485},")(nil)).\n",[462,1268,1269,1272,1274,1276,1279,1281,1283,1285,1288,1290,1293,1296,1298,1300],{"class":464,"line":659},[462,1270,1271],{"class":555},"                Where",[462,1273,559],{"class":485},[462,1275,614],{"class":485},[462,1277,1278],{"class":472},"email = ?",[462,1280,614],{"class":485},[462,1282,705],{"class":485},[462,1284,608],{"class":485},[462,1286,1287],{"class":472},"admin@example.com",[462,1289,614],{"class":485},[462,1291,1292],{"class":485},").",[462,1294,1295],{"class":555},"Exists",[462,1297,559],{"class":485},[462,1299,631],{"class":492},[462,1301,1109],{"class":485},[462,1303,1304,1306,1309,1312,1314],{"class":464,"line":665},[462,1305,653],{"class":586},[462,1307,1308],{"class":485}," !",[462,1310,1311],{"class":492},"exists",[462,1313,705],{"class":485},[462,1315,1316],{"class":492}," err\n",[462,1318,1319],{"class":464,"line":671},[462,1320,662],{"class":485},[462,1322,1323,1325,1327,1329,1331,1333,1335,1337,1339,1341],{"class":464,"line":1026},[462,1324,623],{"class":492},[462,1326,605],{"class":485},[462,1328,628],{"class":485},[462,1330,631],{"class":562},[462,1332,634],{"class":468},[462,1334,515],{"class":485},[462,1336,639],{"class":468},[462,1338,569],{"class":485},[462,1340,645],{"class":644},[462,1342,580],{"class":485},[462,1344,1345,1348,1350,1352,1354,1357,1359,1362,1365,1368,1370,1373,1375,1377,1380,1382,1385,1387,1389,1392],{"class":464,"line":1044},[462,1346,1347],{"class":492},"            hash",[462,1349,705],{"class":485},[462,1351,982],{"class":492},[462,1353,862],{"class":485},[462,1355,1356],{"class":492}," bcrypt",[462,1358,515],{"class":485},[462,1360,1361],{"class":555},"GenerateFromPassword",[462,1363,1364],{"class":485},"([]",[462,1366,1367],{"class":644},"byte",[462,1369,559],{"class":485},[462,1371,1372],{"class":555},"mustEnv",[462,1374,559],{"class":485},[462,1376,614],{"class":485},[462,1378,1379],{"class":472},"SEED_ADMIN_PASSWORD",[462,1381,614],{"class":485},[462,1383,1384],{"class":485},")),",[462,1386,1356],{"class":492},[462,1388,515],{"class":485},[462,1390,1391],{"class":492},"DefaultCost",[462,1393,1109],{"class":485},[462,1395,1396,1399,1401,1403,1405],{"class":464,"line":1067},[462,1397,1398],{"class":586},"            if",[462,1400,982],{"class":492},[462,1402,1059],{"class":485},[462,1404,1062],{"class":485},[462,1406,580],{"class":485},[462,1408,1409,1412],{"class":464,"line":1112},[462,1410,1411],{"class":586},"                return",[462,1413,1316],{"class":492},[462,1415,1416],{"class":464,"line":1118},[462,1417,1121],{"class":485},[462,1419,1420,1423,1425,1427,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448],{"class":464,"line":1124},[462,1421,1422],{"class":492},"            _",[462,1424,705],{"class":485},[462,1426,982],{"class":492},[462,1428,1429],{"class":485},"=",[462,1431,708],{"class":492},[462,1433,515],{"class":485},[462,1435,991],{"class":492},[462,1437,515],{"class":485},[462,1439,996],{"class":555},[462,1441,1254],{"class":485},[462,1443,1257],{"class":555},[462,1445,1007],{"class":485},[462,1447,1263],{"class":468},[462,1449,596],{"class":485},[462,1451,1452,1455,1457,1460,1462,1464],{"class":464,"line":1131},[462,1453,1454],{"class":492},"                Email",[462,1456,605],{"class":485},[462,1458,1459],{"class":485},"        \"",[462,1461,1287],{"class":472},[462,1463,614],{"class":485},[462,1465,617],{"class":485},[462,1467,1468,1471,1473,1476,1478,1481],{"class":464,"line":1136},[462,1469,1470],{"class":492},"                PasswordHash",[462,1472,605],{"class":485},[462,1474,1475],{"class":644}," string",[462,1477,559],{"class":485},[462,1479,1480],{"class":492},"hash",[462,1482,1483],{"class":485},"),\n",[462,1485,1486,1489,1491,1494,1496,1498],{"class":464,"line":1141},[462,1487,1488],{"class":492},"                Role",[462,1490,605],{"class":485},[462,1492,1493],{"class":485},"         \"",[462,1495,876],{"class":472},[462,1497,614],{"class":485},[462,1499,617],{"class":485},[462,1501,1503,1506,1509,1511,1513],{"class":464,"line":1502},18,[462,1504,1505],{"class":485},"            }).",[462,1507,1508],{"class":555},"Exec",[462,1510,559],{"class":485},[462,1512,631],{"class":492},[462,1514,1109],{"class":485},[462,1516,1518,1520],{"class":464,"line":1517},19,[462,1519,653],{"class":586},[462,1521,1316],{"class":492},[462,1523,1525],{"class":464,"line":1524},20,[462,1526,662],{"class":485},[462,1528,1530],{"class":464,"line":1529},21,[462,1531,668],{"class":485},[462,1533,1535],{"class":464,"line":1534},22,[462,1536,674],{"class":485},[452,1538,1540],{"className":543,"code":1539,"filename":506,"language":469,"meta":457,"style":457},"func Register(reg *seed.Registry, deps Deps) {\n    reg.Add(roles(deps))\n    reg.Add(adminUser(deps))\n    \u002F\u002F gpsystem:seeds\n}\n",[459,1541,1542,1570,1588,1606,1610],{"__ignoreMap":457},[462,1543,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568],{"class":464,"line":465},[462,1545,552],{"class":485},[462,1547,686],{"class":555},[462,1549,559],{"class":485},[462,1551,691],{"class":562},[462,1553,694],{"class":485},[462,1555,697],{"class":468},[462,1557,515],{"class":485},[462,1559,702],{"class":468},[462,1561,705],{"class":485},[462,1563,708],{"class":562},[462,1565,566],{"class":468},[462,1567,569],{"class":485},[462,1569,580],{"class":485},[462,1571,1572,1574,1576,1578,1580,1582,1584,1586],{"class":464,"line":583},[462,1573,719],{"class":492},[462,1575,515],{"class":485},[462,1577,724],{"class":555},[462,1579,559],{"class":485},[462,1581,921],{"class":555},[462,1583,559],{"class":485},[462,1585,563],{"class":492},[462,1587,736],{"class":485},[462,1589,1590,1592,1594,1596,1598,1600,1602,1604],{"class":464,"line":599},[462,1591,719],{"class":492},[462,1593,515],{"class":485},[462,1595,724],{"class":555},[462,1597,559],{"class":485},[462,1599,729],{"class":555},[462,1601,559],{"class":485},[462,1603,563],{"class":492},[462,1605,736],{"class":485},[462,1607,1608],{"class":464,"line":620},[462,1609,742],{"class":741},[462,1611,1612],{"class":464,"line":650},[462,1613,674],{"class":485},[448,1615,749,1616,1618,1619,1622,1623,1625,1626,1629],{},[459,1617,921],{}," az ",[459,1620,1621],{},"ON CONFLICT DO NOTHING","-ot használja, hogy önmagában is idempotens maradjon ismételt futtatásnál; az ",[459,1624,729],{}," Guardja ugyanezt a célt éri el úgy, hogy előbb megnézi, létezik-e már a sor, így a futás tiszta skipként naplózódik egy duplikált kulcs miatti hiba helyett a második ",[459,1627,1628],{},"migrate up --seed","-nél. Mindkettő helyes megoldás: azt válaszd, amelyik jobban illik az adott adathoz.",[537,1631,1633],{"id":1632},"futtatás","Futtatás",[452,1635,1637],{"className":454,"code":1636,"language":456,"meta":457,"style":457},"go run .\u002Fcmd\u002Fmigrate up --seed   # migrál, majd seedel\ngo run .\u002Fcmd\u002Fmigrate seed        # csak seedel\n",[459,1638,1639,1658],{"__ignoreMap":457},[462,1640,1641,1643,1646,1649,1652,1655],{"class":464,"line":465},[462,1642,469],{"class":468},[462,1644,1645],{"class":472}," run",[462,1647,1648],{"class":472}," .\u002Fcmd\u002Fmigrate",[462,1650,1651],{"class":472}," up",[462,1653,1654],{"class":472}," --seed",[462,1656,1657],{"class":741},"   # migrál, majd seedel\n",[462,1659,1660,1662,1664,1666,1668],{"class":464,"line":583},[462,1661,469],{"class":468},[462,1663,1645],{"class":472},[462,1665,1648],{"class":472},[462,1667,572],{"class":472},[462,1669,1670],{"class":741},"        # csak seedel\n",[1672,1673,1674,1675,1677,1678,1680,1681,1684,1685,1688,1689,1692],"warning",{},"Az ",[459,1676,315],{}," önmagában csak a stubot írja meg és regisztrálja: az üzleti logikát (mit tölts be, milyen feltétellel) a generált fájlba magadnak kell megírnod. Lásd a ",[513,1679,427],{"href":428}," oldalt a ",[459,1682,1683],{},"Guard",", ",[459,1686,1687],{},"ErrSkip"," és a multi-tenant ",[459,1690,1691],{},"WithTenants"," mintákért.",[1694,1695,1696],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":457,"searchDepth":583,"depth":583,"links":1698},[1699,1700,1701],{"id":539,"depth":583,"text":540},{"id":784,"depth":583,"text":785},{"id":1632,"depth":583,"text":1633},"Seeder hozzáadása a projekt központi seeds\u002F package-éhez, automatikus regisztrációval.","md",null,{},{"icon":318},{"title":315,"description":1702},"_gQjFc14h-AZO-cszH_qHJDiacHeOM6SzdbcLnnxGGU",[1710,1712],{"title":310,"path":311,"stem":312,"description":1711,"icon":313,"children":-1},"A realtime notification-gateway scaffoldolása: egy dedikált, horizontálisan skálázható cmd\u002Frealtime binary.",{"title":320,"path":321,"stem":322,"description":1713,"icon":323,"children":-1},"Teljes fogyasztó-projektváz generálása, adatbázis-választással.",1785445898395]