@atlashub/smartstack-cli 3.39.0 → 3.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.documentation/apex.html +644 -644
- package/.documentation/css/styles.css +2320 -2320
- package/.documentation/init.html +1377 -1377
- package/.documentation/js/app.js +780 -780
- package/.documentation/prd-json-v2.0.0.md +396 -396
- package/.documentation/testing-ba-e2e.md +462 -462
- package/config/default-config.json +95 -95
- package/config/mcp-defaults.json +62 -62
- package/config/settings.json +53 -53
- package/config/settings.local.example.json +16 -16
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +6 -4
- package/dist/mcp-entry.mjs.map +1 -1
- package/package.json +115 -115
- package/scripts/extract-api-endpoints.ts +325 -325
- package/scripts/extract-business-rules.ts +440 -440
- package/scripts/generate-doc-with-mock-ui.ts +804 -804
- package/scripts/health-check.sh +168 -168
- package/scripts/postinstall.js +18 -18
- package/templates/agents/action.md +37 -37
- package/templates/agents/ba-reader.md +378 -378
- package/templates/agents/ba-writer.md +861 -861
- package/templates/agents/code-reviewer.md +163 -163
- package/templates/agents/db-reader.md +149 -149
- package/templates/agents/docs-context-reader.md +143 -143
- package/templates/agents/docs-sync-checker.md +122 -122
- package/templates/agents/efcore/conflicts.md +95 -84
- package/templates/agents/efcore/db-deploy.md +85 -74
- package/templates/agents/efcore/db-reset.md +96 -85
- package/templates/agents/efcore/db-seed.md +72 -61
- package/templates/agents/efcore/db-status.md +97 -86
- package/templates/agents/efcore/migration.md +197 -186
- package/templates/agents/efcore/rebase-snapshot.md +119 -108
- package/templates/agents/efcore/scan.md +103 -92
- package/templates/agents/efcore/squash.md +172 -161
- package/templates/agents/explore-codebase.md +66 -66
- package/templates/agents/explore-docs.md +98 -98
- package/templates/agents/fix-grammar.md +50 -50
- package/templates/agents/gitflow/abort.md +45 -45
- package/templates/agents/gitflow/cleanup.md +96 -96
- package/templates/agents/gitflow/commit.md +236 -236
- package/templates/agents/gitflow/exec.md +48 -48
- package/templates/agents/gitflow/finish.md +146 -146
- package/templates/agents/gitflow/init-clone.md +199 -199
- package/templates/agents/gitflow/init-detect.md +137 -137
- package/templates/agents/gitflow/init-validate.md +225 -225
- package/templates/agents/gitflow/init.md +340 -340
- package/templates/agents/gitflow/merge.md +145 -145
- package/templates/agents/gitflow/plan.md +42 -42
- package/templates/agents/gitflow/pr.md +191 -191
- package/templates/agents/gitflow/review.md +49 -49
- package/templates/agents/gitflow/start.md +147 -147
- package/templates/agents/gitflow/status.md +95 -95
- package/templates/agents/mcp-healthcheck.md +163 -163
- package/templates/agents/snipper.md +37 -37
- package/templates/agents/websearch.md +46 -46
- package/templates/hooks/appsettings-guard.sh +76 -76
- package/templates/hooks/docs-drift-check.md +96 -96
- package/templates/hooks/ef-migration-check.md +139 -139
- package/templates/hooks/hooks.json +58 -58
- package/templates/hooks/mcp-check.md +64 -64
- package/templates/hooks/ralph-mcp-logger.sh +46 -46
- package/templates/hooks/ralph-session-end.sh +69 -69
- package/templates/hooks/stop-hook.sh +177 -177
- package/templates/hooks/wsl-dotnet-cleanup.sh +24 -24
- package/templates/mcp-scaffolding/component.tsx.hbs +318 -318
- package/templates/mcp-scaffolding/controller.cs.hbs +192 -192
- package/templates/mcp-scaffolding/entity-extension.cs.hbs +239 -239
- package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -116
- package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -133
- package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -126
- package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -261
- package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -53
- package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +436 -436
- package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -239
- package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -441
- package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -442
- package/templates/mcp-scaffolding/tests/service.test.cs.hbs +402 -402
- package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -428
- package/templates/project/DependencyInjection.Application.cs.template +25 -25
- package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -61
- package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -70
- package/templates/project/ExampleEntity.cs.template +116 -116
- package/templates/project/ExampleEntityConfiguration.cs.template +64 -64
- package/templates/project/ExampleService.cs.template +146 -146
- package/templates/project/ExtensionsDbContext.cs.template +41 -41
- package/templates/project/IExtensionsDbContext.cs.template +22 -22
- package/templates/project/Program.cs.template +47 -47
- package/templates/project/README.md +79 -79
- package/templates/project/api.ts.template +12 -12
- package/templates/project/appsettings.json.template +170 -170
- package/templates/project/claude-settings.json.template +5 -5
- package/templates/project/test-frontend/msw/handlers.ts +58 -58
- package/templates/project/test-frontend/msw/server.ts +25 -25
- package/templates/project/test-frontend/setup.ts +16 -16
- package/templates/project/test-frontend/test-utils.tsx +59 -59
- package/templates/project/test-frontend/vitest.config.ts +31 -31
- package/templates/ralph/README.md +93 -93
- package/templates/ralph/ralph.config.yaml +113 -113
- package/templates/scripts/setup-ralph-loop.sh +173 -173
- package/templates/skills/_resources/config-safety.md +61 -61
- package/templates/skills/_resources/context-digest-template.md +53 -53
- package/templates/skills/_resources/doc-context-cache.md +60 -60
- package/templates/skills/_resources/docs-manifest-schema.md +155 -155
- package/templates/skills/_resources/formatting-guide.md +124 -124
- package/templates/skills/_resources/mcp-validate-documentation-spec.md +181 -181
- package/templates/skills/_shared.md +228 -228
- package/templates/skills/admin/SKILL.md +48 -48
- package/templates/skills/ai-prompt/SKILL.md +107 -107
- package/templates/skills/ai-prompt/steps/step-00-init.md +47 -47
- package/templates/skills/ai-prompt/steps/step-01-implementation.md +122 -122
- package/templates/skills/apex/SKILL.md +168 -168
- package/templates/skills/apex/_shared.md +141 -141
- package/templates/skills/apex/references/agent-teams-protocol.md +164 -164
- package/templates/skills/apex/references/analysis-methods.md +141 -141
- package/templates/skills/apex/references/challenge-questions.md +145 -145
- package/templates/skills/apex/references/code-generation.md +412 -412
- package/templates/skills/apex/references/core-seed-data.md +1437 -1437
- package/templates/skills/apex/references/error-classification.md +144 -144
- package/templates/skills/apex/references/examine-build-validation.md +82 -82
- package/templates/skills/apex/references/execution-frontend-gates.md +177 -177
- package/templates/skills/apex/references/execution-frontend-patterns.md +105 -105
- package/templates/skills/apex/references/execution-layer1-rules.md +96 -96
- package/templates/skills/apex/references/initialization-challenge-flow.md +110 -110
- package/templates/skills/apex/references/planning-layer-mapping.md +151 -151
- package/templates/skills/apex/references/post-checks.md +1584 -1584
- package/templates/skills/apex/references/smartstack-api.md +1053 -1053
- package/templates/skills/apex/references/smartstack-frontend.md +1571 -1571
- package/templates/skills/apex/references/smartstack-layers.md +402 -402
- package/templates/skills/apex/steps/step-00-init.md +307 -307
- package/templates/skills/apex/steps/step-01-analyze.md +165 -165
- package/templates/skills/apex/steps/step-02-plan.md +144 -144
- package/templates/skills/apex/steps/step-03-execute.md +328 -328
- package/templates/skills/apex/steps/step-04-examine.md +263 -263
- package/templates/skills/apex/steps/step-05-deep-review.md +129 -129
- package/templates/skills/apex/steps/step-06-resolve.md +101 -101
- package/templates/skills/apex/steps/step-07-tests.md +238 -238
- package/templates/skills/apex/steps/step-08-run-tests.md +125 -125
- package/templates/skills/application/SKILL.md +4 -4
- package/templates/skills/application/references/application-roles-template.md +227 -227
- package/templates/skills/application/references/backend-controller-hierarchy.md +58 -58
- package/templates/skills/application/references/backend-entity-seeding.md +72 -72
- package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -83
- package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -79
- package/templates/skills/application/references/backend-verification.md +88 -88
- package/templates/skills/application/references/frontend-i18n-and-output.md +67 -67
- package/templates/skills/application/references/frontend-route-naming.md +117 -117
- package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -107
- package/templates/skills/application/references/frontend-verification.md +156 -156
- package/templates/skills/application/references/migration-checklist-troubleshooting.md +1 -1
- package/templates/skills/application/references/provider-template.md +177 -177
- package/templates/skills/application/references/roles-client-project-handling.md +55 -55
- package/templates/skills/application/references/roles-fallback-procedure.md +149 -149
- package/templates/skills/application/references/test-coverage-requirements.md +213 -213
- package/templates/skills/application/references/test-frontend.md +73 -73
- package/templates/skills/application/references/test-prerequisites.md +72 -72
- package/templates/skills/application/steps/step-05-frontend.md +176 -176
- package/templates/skills/application/steps/step-06-migration.md +193 -193
- package/templates/skills/application/steps/step-07-tests.md +356 -356
- package/templates/skills/application/steps/step-08-documentation.md +137 -137
- package/templates/skills/application/templates-backend.md +463 -463
- package/templates/skills/application/templates-frontend.md +685 -685
- package/templates/skills/application/templates-i18n.md +520 -520
- package/templates/skills/application/templates-seed.md +1096 -1096
- package/templates/skills/business-analyse/SKILL.md +327 -327
- package/templates/skills/business-analyse/_architecture.md +123 -123
- package/templates/skills/business-analyse/_elicitation.md +206 -206
- package/templates/skills/business-analyse/_module-loop.md +115 -115
- package/templates/skills/business-analyse/_shared.md +383 -383
- package/templates/skills/business-analyse/_suggestions.md +34 -34
- package/templates/skills/business-analyse/html/ba-interactive.html +4477 -4477
- package/templates/skills/business-analyse/html/build-html.js +77 -77
- package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +150 -150
- package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +227 -227
- package/templates/skills/business-analyse/html/src/scripts/03-render-cadrage.js +199 -199
- package/templates/skills/business-analyse/html/src/scripts/04-render-modules.js +205 -205
- package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +647 -647
- package/templates/skills/business-analyse/html/src/scripts/06-render-consolidation.js +195 -195
- package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +92 -92
- package/templates/skills/business-analyse/html/src/scripts/08-editing.js +135 -135
- package/templates/skills/business-analyse/html/src/scripts/09-export.js +168 -168
- package/templates/skills/business-analyse/html/src/scripts/10-comments.js +171 -171
- package/templates/skills/business-analyse/html/src/scripts/11-review-panel.js +166 -166
- package/templates/skills/business-analyse/html/src/styles/01-variables.css +38 -38
- package/templates/skills/business-analyse/html/src/styles/02-layout.css +101 -101
- package/templates/skills/business-analyse/html/src/styles/03-navigation.css +120 -120
- package/templates/skills/business-analyse/html/src/styles/04-cards.css +196 -196
- package/templates/skills/business-analyse/html/src/styles/05-modules.css +454 -454
- package/templates/skills/business-analyse/html/src/styles/06-wireframes.css +272 -272
- package/templates/skills/business-analyse/html/src/styles/07-comments.css +184 -184
- package/templates/skills/business-analyse/html/src/styles/08-review-panel.css +241 -241
- package/templates/skills/business-analyse/html/src/template.html +516 -516
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +546 -546
- package/templates/skills/business-analyse/questionnaire/00-application.md +160 -160
- package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -85
- package/templates/skills/business-analyse/questionnaire/01-context.md +185 -185
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +189 -189
- package/templates/skills/business-analyse/questionnaire/03-scope.md +164 -164
- package/templates/skills/business-analyse/questionnaire/04-data.md +88 -88
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +58 -58
- package/templates/skills/business-analyse/questionnaire/06-security.md +68 -68
- package/templates/skills/business-analyse/questionnaire/07-ui.md +76 -76
- package/templates/skills/business-analyse/questionnaire/08-performance.md +42 -42
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +45 -45
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +43 -43
- package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +59 -59
- package/templates/skills/business-analyse/questionnaire/12-migration.md +58 -58
- package/templates/skills/business-analyse/questionnaire/13-cross-module.md +69 -69
- package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -135
- package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -136
- package/templates/skills/business-analyse/questionnaire.md +337 -337
- package/templates/skills/business-analyse/react/application-viewer.md +242 -242
- package/templates/skills/business-analyse/react/components.md +551 -551
- package/templates/skills/business-analyse/react/i18n-template.md +306 -306
- package/templates/skills/business-analyse/references/acceptance-criteria.md +169 -169
- package/templates/skills/business-analyse/references/agent-module-prompt.md +362 -362
- package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +557 -557
- package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -190
- package/templates/skills/business-analyse/references/cache-warming-strategy.md +566 -566
- package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -41
- package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -74
- package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +115 -115
- package/templates/skills/business-analyse/references/cadrage-shared-modules.md +68 -69
- package/templates/skills/business-analyse/references/cadrage-structure-cards.md +85 -85
- package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -297
- package/templates/skills/business-analyse/references/consolidation-structural-checks.md +107 -107
- package/templates/skills/business-analyse/references/deploy-data-build.md +180 -180
- package/templates/skills/business-analyse/references/deploy-modes.md +118 -118
- package/templates/skills/business-analyse/references/detection-strategies.md +424 -424
- package/templates/skills/business-analyse/references/entity-architecture-decision.md +218 -218
- package/templates/skills/business-analyse/references/handoff-file-templates.md +120 -120
- package/templates/skills/business-analyse/references/handoff-mappings.md +81 -81
- package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -312
- package/templates/skills/business-analyse/references/html-data-mapping.md +299 -299
- package/templates/skills/business-analyse/references/init-schema-deployment.md +65 -65
- package/templates/skills/business-analyse/references/naming-conventions.md +243 -243
- package/templates/skills/business-analyse/references/prd-generation.md +258 -258
- package/templates/skills/business-analyse/references/review-data-mapping.md +363 -363
- package/templates/skills/business-analyse/references/robustness-checks.md +542 -542
- package/templates/skills/business-analyse/references/spec-auto-inference.md +111 -111
- package/templates/skills/business-analyse/references/team-orchestration.md +1022 -1022
- package/templates/skills/business-analyse/references/ui-dashboard-spec.md +85 -85
- package/templates/skills/business-analyse/references/ui-resource-cards.md +259 -259
- package/templates/skills/business-analyse/references/validate-incremental-html.md +121 -121
- package/templates/skills/business-analyse/references/validation-checklist.md +347 -347
- package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +335 -335
- package/templates/skills/business-analyse/schemas/application-schema.json +453 -453
- package/templates/skills/business-analyse/schemas/feature-schema.json +53 -53
- package/templates/skills/business-analyse/schemas/project-schema.json +485 -485
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +201 -201
- package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -82
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -80
- package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +70 -70
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +547 -547
- package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -93
- package/templates/skills/business-analyse/schemas/shared/common-defs.json +226 -226
- package/templates/skills/business-analyse/steps/step-00-init.md +575 -576
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +767 -767
- package/templates/skills/business-analyse/steps/step-01b-applications.md +419 -419
- package/templates/skills/business-analyse/steps/step-02-decomposition.md +387 -387
- package/templates/skills/business-analyse/steps/step-03a-data.md +16 -16
- package/templates/skills/business-analyse/steps/step-03a1-setup.md +506 -506
- package/templates/skills/business-analyse/steps/step-03a2-analysis.md +252 -252
- package/templates/skills/business-analyse/steps/step-03b-ui.md +425 -425
- package/templates/skills/business-analyse/steps/step-03c-compile.md +611 -611
- package/templates/skills/business-analyse/steps/step-03d-validate.md +783 -783
- package/templates/skills/business-analyse/steps/step-04-consolidation.md +17 -17
- package/templates/skills/business-analyse/steps/step-04a-collect.md +415 -415
- package/templates/skills/business-analyse/steps/step-04b-analyze.md +163 -163
- package/templates/skills/business-analyse/steps/step-04c-decide.md +186 -186
- package/templates/skills/business-analyse/steps/step-05a-handoff.md +840 -840
- package/templates/skills/business-analyse/steps/step-05b-deploy.md +522 -522
- package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +703 -703
- package/templates/skills/business-analyse/steps/step-06-review.md +278 -278
- package/templates/skills/business-analyse/templates/tpl-frd.md +168 -168
- package/templates/skills/business-analyse/templates/tpl-handoff.md +186 -186
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +59 -59
- package/templates/skills/business-analyse/templates/tpl-progress.md +172 -172
- package/templates/skills/business-analyse/templates-frd.md +476 -476
- package/templates/skills/business-analyse/templates-react.md +574 -574
- package/templates/skills/cc-agent/SKILL.md +129 -129
- package/templates/skills/cc-agent/references/agent-behavior-patterns.md +95 -95
- package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -213
- package/templates/skills/cc-agent/references/permission-modes.md +102 -102
- package/templates/skills/cc-agent/references/tools-reference.md +144 -144
- package/templates/skills/cc-agent/steps/step-00-init.md +134 -134
- package/templates/skills/cc-agent/steps/step-01-design.md +186 -186
- package/templates/skills/cc-agent/steps/step-02-generate.md +131 -131
- package/templates/skills/cc-agent/steps/step-03-validate.md +130 -130
- package/templates/skills/cc-agent/templates/agent-categorized.md +67 -67
- package/templates/skills/cc-agent/templates/agent-standalone.md +56 -56
- package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -94
- package/templates/skills/cc-audit/SKILL.md +108 -108
- package/templates/skills/cc-audit/references/agent-checklist.md +91 -91
- package/templates/skills/cc-audit/references/hook-checklist.md +110 -110
- package/templates/skills/cc-audit/references/skill-checklist.md +70 -70
- package/templates/skills/cc-audit/steps/step-00-init.md +98 -98
- package/templates/skills/cc-audit/steps/step-01-scan.md +142 -142
- package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -158
- package/templates/skills/cc-audit/steps/step-03-report.md +142 -142
- package/templates/skills/cc-skill/SKILL.md +134 -134
- package/templates/skills/cc-skill/references/best-practices.md +167 -167
- package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -182
- package/templates/skills/cc-skill/references/skill-patterns.md +199 -199
- package/templates/skills/cc-skill/steps/step-00-init.md +119 -119
- package/templates/skills/cc-skill/steps/step-01-design.md +199 -199
- package/templates/skills/cc-skill/steps/step-02-generate.md +145 -145
- package/templates/skills/cc-skill/steps/step-03-steps.md +151 -151
- package/templates/skills/cc-skill/steps/step-04-validate.md +124 -124
- package/templates/skills/cc-skill/templates/skill-forked.md +85 -85
- package/templates/skills/cc-skill/templates/skill-progressive.md +102 -102
- package/templates/skills/cc-skill/templates/skill-simple.md +75 -75
- package/templates/skills/cc-skill/templates/step-template.md +82 -82
- package/templates/skills/check-version/SKILL.md +196 -196
- package/templates/skills/controller/SKILL.md +162 -162
- package/templates/skills/controller/postman-templates.md +614 -614
- package/templates/skills/controller/references/controller-code-templates.md +159 -159
- package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -209
- package/templates/skills/controller/references/permission-sync-templates.md +149 -149
- package/templates/skills/controller/steps/step-00-init.md +193 -191
- package/templates/skills/controller/steps/step-01-analyze.md +146 -146
- package/templates/skills/controller/steps/step-02-plan.md +176 -176
- package/templates/skills/controller/steps/step-03-generate.md +189 -189
- package/templates/skills/controller/steps/step-04-perms.md +80 -80
- package/templates/skills/controller/steps/step-05-validate.md +107 -107
- package/templates/skills/controller/templates.md +1555 -1555
- package/templates/skills/debug/SKILL.md +70 -70
- package/templates/skills/debug/references/team-protocol.md +232 -232
- package/templates/skills/debug/steps/step-00-init.md +57 -57
- package/templates/skills/debug/steps/step-01-analyze.md +219 -219
- package/templates/skills/debug/steps/step-02-resolve.md +85 -85
- package/templates/skills/documentation/SKILL.md +132 -132
- package/templates/skills/documentation/data-schema.md +227 -227
- package/templates/skills/documentation/steps/step-00-init.md +70 -70
- package/templates/skills/documentation/steps/step-01-scan.md +113 -113
- package/templates/skills/documentation/steps/step-02-generate.md +231 -231
- package/templates/skills/documentation/steps/step-03-validate.md +251 -238
- package/templates/skills/documentation/templates.md +662 -663
- package/templates/skills/efcore/SKILL.md +168 -167
- package/templates/skills/efcore/references/both-contexts.md +32 -32
- package/templates/skills/efcore/references/database-operations.md +67 -67
- package/templates/skills/efcore/references/destructive-operations.md +38 -38
- package/templates/skills/efcore/references/reset-operations.md +81 -81
- package/templates/skills/efcore/references/seed-methods.md +86 -86
- package/templates/skills/efcore/references/shared-init-functions.md +250 -250
- package/templates/skills/efcore/references/sql-objects-injection.md +61 -61
- package/templates/skills/efcore/references/troubleshooting.md +81 -81
- package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -227
- package/templates/skills/efcore/steps/db/step-deploy.md +217 -217
- package/templates/skills/efcore/steps/db/step-reset.md +186 -186
- package/templates/skills/efcore/steps/db/step-seed.md +166 -166
- package/templates/skills/efcore/steps/db/step-status.md +173 -173
- package/templates/skills/efcore/steps/migration/step-00-init.md +102 -102
- package/templates/skills/efcore/steps/migration/step-01-check.md +164 -164
- package/templates/skills/efcore/steps/migration/step-02-create.md +160 -160
- package/templates/skills/efcore/steps/migration/step-03-validate.md +168 -168
- package/templates/skills/efcore/steps/rebase-snapshot/step-00-init.md +173 -173
- package/templates/skills/efcore/steps/rebase-snapshot/step-01-backup.md +100 -100
- package/templates/skills/efcore/steps/rebase-snapshot/step-02-fetch.md +115 -115
- package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +112 -112
- package/templates/skills/efcore/steps/rebase-snapshot/step-04-validate.md +157 -157
- package/templates/skills/efcore/steps/shared/step-00-init.md +131 -131
- package/templates/skills/efcore/steps/squash/step-00-init.md +141 -141
- package/templates/skills/efcore/steps/squash/step-01-backup.md +120 -120
- package/templates/skills/efcore/steps/squash/step-02-fetch.md +168 -168
- package/templates/skills/efcore/steps/squash/step-03-create.md +184 -184
- package/templates/skills/efcore/steps/squash/step-04-validate.md +174 -174
- package/templates/skills/explore/SKILL.md +98 -98
- package/templates/skills/feature-full/SKILL.md +111 -111
- package/templates/skills/feature-full/steps/step-00-init.md +57 -57
- package/templates/skills/feature-full/steps/step-01-implementation.md +120 -120
- package/templates/skills/gitflow/SKILL.md +377 -377
- package/templates/skills/gitflow/_shared.md +620 -620
- package/templates/skills/gitflow/phases/abort.md +189 -189
- package/templates/skills/gitflow/phases/cleanup.md +234 -234
- package/templates/skills/gitflow/phases/status.md +192 -192
- package/templates/skills/gitflow/references/commit-message-generation.md +58 -58
- package/templates/skills/gitflow/references/commit-migration-validation.md +49 -49
- package/templates/skills/gitflow/references/finish-cleanup.md +55 -55
- package/templates/skills/gitflow/references/finish-version-bumping.md +45 -45
- package/templates/skills/gitflow/references/init-config-template.md +135 -135
- package/templates/skills/gitflow/references/init-environment-detection.md +41 -41
- package/templates/skills/gitflow/references/init-name-normalization.md +103 -103
- package/templates/skills/gitflow/references/init-questions.md +185 -185
- package/templates/skills/gitflow/references/init-structure-creation.md +75 -75
- package/templates/skills/gitflow/references/init-version-detection.md +21 -21
- package/templates/skills/gitflow/references/init-workspace-detection.md +43 -43
- package/templates/skills/gitflow/references/merge-ci-status.md +36 -36
- package/templates/skills/gitflow/references/merge-execution.md +62 -62
- package/templates/skills/gitflow/references/merge-pr-context.md +76 -76
- package/templates/skills/gitflow/references/plan-template.md +69 -69
- package/templates/skills/gitflow/references/pr-build-checks.md +60 -60
- package/templates/skills/gitflow/references/pr-generation.md +58 -58
- package/templates/skills/gitflow/references/start-branch-normalization.md +28 -28
- package/templates/skills/gitflow/references/start-efcore-preflight.md +70 -70
- package/templates/skills/gitflow/references/start-local-config.md +113 -113
- package/templates/skills/gitflow/references/start-worktree-creation.md +50 -50
- package/templates/skills/gitflow/references/sync-push-verify.md +44 -44
- package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -38
- package/templates/skills/gitflow/steps/step-commit.md +199 -199
- package/templates/skills/gitflow/steps/step-finish.md +147 -147
- package/templates/skills/gitflow/steps/step-init.md +190 -190
- package/templates/skills/gitflow/steps/step-merge.md +85 -85
- package/templates/skills/gitflow/steps/step-plan.md +151 -151
- package/templates/skills/gitflow/steps/step-pr.md +199 -199
- package/templates/skills/gitflow/steps/step-start.md +195 -195
- package/templates/skills/gitflow/steps/step-sync.md +161 -161
- package/templates/skills/gitflow/templates/config.json +72 -72
- package/templates/skills/mcp/SKILL.md +62 -62
- package/templates/skills/mcp/steps/step-01-healthcheck.md +108 -108
- package/templates/skills/mcp/steps/step-02-tools.md +73 -73
- package/templates/skills/notification/SKILL.md +173 -173
- package/templates/skills/quick-search/SKILL.md +99 -99
- package/templates/skills/ralph-loop/SKILL.md +234 -234
- package/templates/skills/ralph-loop/references/category-completeness.md +185 -185
- package/templates/skills/ralph-loop/references/category-rules.md +96 -96
- package/templates/skills/ralph-loop/references/compact-loop.md +300 -300
- package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -127
- package/templates/skills/ralph-loop/references/module-transition.md +151 -151
- package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -171
- package/templates/skills/ralph-loop/references/parallel-execution.md +246 -246
- package/templates/skills/ralph-loop/references/section-splitting.md +439 -439
- package/templates/skills/ralph-loop/references/task-transform-legacy.md +256 -256
- package/templates/skills/ralph-loop/references/team-orchestration.md +547 -547
- package/templates/skills/ralph-loop/steps/step-00-init.md +150 -150
- package/templates/skills/ralph-loop/steps/step-01-task.md +174 -174
- package/templates/skills/ralph-loop/steps/step-02-execute.md +177 -177
- package/templates/skills/ralph-loop/steps/step-03-commit.md +92 -92
- package/templates/skills/ralph-loop/steps/step-04-check.md +207 -207
- package/templates/skills/ralph-loop/steps/step-05-report.md +175 -175
- package/templates/skills/refactor/SKILL.md +56 -56
- package/templates/skills/refactor/steps/step-01-discover.md +60 -60
- package/templates/skills/refactor/steps/step-02-execute.md +67 -67
- package/templates/skills/review-code/SKILL.md +95 -94
- package/templates/skills/review-code/references/clean-code-principles.md +292 -292
- package/templates/skills/review-code/references/code-quality-metrics.md +174 -174
- package/templates/skills/review-code/references/feedback-patterns.md +149 -149
- package/templates/skills/review-code/references/owasp-api-top10.md +243 -243
- package/templates/skills/review-code/references/security-checklist.md +212 -212
- package/templates/skills/review-code/steps/step-01-smartstack.md +96 -96
- package/templates/skills/review-code/steps/step-02-detailed-review.md +80 -80
- package/templates/skills/review-code/steps/step-03-react.md +44 -44
- package/templates/skills/ui-components/SKILL.md +137 -137
- package/templates/skills/ui-components/accessibility.md +170 -170
- package/templates/skills/ui-components/patterns/dashboard-chart.md +327 -327
- package/templates/skills/ui-components/patterns/data-table.md +39 -39
- package/templates/skills/ui-components/patterns/entity-card.md +77 -77
- package/templates/skills/ui-components/patterns/grid-layout.md +91 -91
- package/templates/skills/ui-components/patterns/kanban.md +43 -43
- package/templates/skills/ui-components/responsive-guidelines.md +278 -278
- package/templates/skills/ui-components/style-guide.md +113 -113
- package/templates/skills/utils/SKILL.md +44 -44
- package/templates/skills/utils/subcommands/test-web-config.md +152 -152
- package/templates/skills/utils/subcommands/test-web.md +123 -123
- package/templates/skills/validate/SKILL.md +181 -181
- package/templates/skills/validate-feature/SKILL.md +101 -101
- package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
- package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
- package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
- package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
- package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
- package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
- package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
- package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
- package/templates/skills/workflow/SKILL.md +127 -127
- package/templates/skills/workflow/steps/step-00-init.md +57 -57
- package/templates/skills/workflow/steps/step-01-implementation.md +84 -84
- package/templates/test-web/api-health.json +38 -38
- package/templates/test-web/minimal.json +19 -19
- package/templates/test-web/npm-package.json +46 -46
- package/templates/test-web/seo-check.json +54 -54
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
using Microsoft.Extensions.DependencyInjection;
|
|
2
|
-
|
|
3
|
-
namespace {{ProjectName}}.Application;
|
|
4
|
-
|
|
5
|
-
/// <summary>
|
|
6
|
-
/// Dependency injection configuration for client Application layer.
|
|
7
|
-
/// </summary>
|
|
8
|
-
public static class DependencyInjection
|
|
9
|
-
{
|
|
10
|
-
/// <summary>
|
|
11
|
-
/// Adds client-specific application services to the DI container.
|
|
12
|
-
///
|
|
13
|
-
/// IMPORTANT: This must be called AFTER AddSmartStackApplication()
|
|
14
|
-
/// to ensure all Core services are available.
|
|
15
|
-
/// </summary>
|
|
16
|
-
public static IServiceCollection Add{{ProjectName}}Application(
|
|
17
|
-
this IServiceCollection services)
|
|
18
|
-
{
|
|
19
|
-
// TODO: Register your application services here
|
|
20
|
-
// Example:
|
|
21
|
-
// services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(DependencyInjection).Assembly));
|
|
22
|
-
|
|
23
|
-
return services;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
using Microsoft.Extensions.DependencyInjection;
|
|
2
|
+
|
|
3
|
+
namespace {{ProjectName}}.Application;
|
|
4
|
+
|
|
5
|
+
/// <summary>
|
|
6
|
+
/// Dependency injection configuration for client Application layer.
|
|
7
|
+
/// </summary>
|
|
8
|
+
public static class DependencyInjection
|
|
9
|
+
{
|
|
10
|
+
/// <summary>
|
|
11
|
+
/// Adds client-specific application services to the DI container.
|
|
12
|
+
///
|
|
13
|
+
/// IMPORTANT: This must be called AFTER AddSmartStackApplication()
|
|
14
|
+
/// to ensure all Core services are available.
|
|
15
|
+
/// </summary>
|
|
16
|
+
public static IServiceCollection Add{{ProjectName}}Application(
|
|
17
|
+
this IServiceCollection services)
|
|
18
|
+
{
|
|
19
|
+
// TODO: Register your application services here
|
|
20
|
+
// Example:
|
|
21
|
+
// services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(DependencyInjection).Assembly));
|
|
22
|
+
|
|
23
|
+
return services;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
using Microsoft.EntityFrameworkCore;
|
|
2
|
-
using Microsoft.EntityFrameworkCore.Diagnostics;
|
|
3
|
-
using Microsoft.Extensions.Configuration;
|
|
4
|
-
using Microsoft.Extensions.DependencyInjection;
|
|
5
|
-
using {{ProjectName}}.Application.Common.Interfaces;
|
|
6
|
-
using {{ProjectName}}.Infrastructure.Persistence;
|
|
7
|
-
using SmartStack.Infrastructure.Persistence.Configurations;
|
|
8
|
-
|
|
9
|
-
namespace {{ProjectName}}.Infrastructure;
|
|
10
|
-
|
|
11
|
-
/// <summary>
|
|
12
|
-
/// Dependency injection configuration for client Infrastructure layer.
|
|
13
|
-
/// </summary>
|
|
14
|
-
public static class DependencyInjection
|
|
15
|
-
{
|
|
16
|
-
/// <summary>
|
|
17
|
-
/// Adds client-specific infrastructure services to the DI container.
|
|
18
|
-
///
|
|
19
|
-
/// IMPORTANT: This must be called AFTER AddSmartStackInfrastructure()
|
|
20
|
-
/// to ensure CoreDbContext is registered first.
|
|
21
|
-
/// </summary>
|
|
22
|
-
public static IServiceCollection Add{{ProjectName}}Infrastructure(
|
|
23
|
-
this IServiceCollection services,
|
|
24
|
-
IConfiguration configuration)
|
|
25
|
-
{
|
|
26
|
-
// ExtensionsDbContext with migrations in 'extensions' schema
|
|
27
|
-
services.AddDbContext<ExtensionsDbContext>(options =>
|
|
28
|
-
{
|
|
29
|
-
options.UseSqlServer(
|
|
30
|
-
configuration.GetConnectionString("DefaultConnection"),
|
|
31
|
-
sqlOptions =>
|
|
32
|
-
{
|
|
33
|
-
sqlOptions.MigrationsAssembly(typeof(ExtensionsDbContext).Assembly.FullName);
|
|
34
|
-
|
|
35
|
-
// Store migrations history in extensions schema (separate from Core)
|
|
36
|
-
sqlOptions.MigrationsHistoryTable("__EFMigrationsHistory", SchemaConstants.Extensions);
|
|
37
|
-
|
|
38
|
-
// Enable retry policy for transient failures
|
|
39
|
-
sqlOptions.EnableRetryOnFailure(
|
|
40
|
-
maxRetryCount: 5,
|
|
41
|
-
maxRetryDelay: TimeSpan.FromSeconds(10),
|
|
42
|
-
errorNumbersToAdd: null);
|
|
43
|
-
|
|
44
|
-
// Set command timeout
|
|
45
|
-
sqlOptions.CommandTimeout(60);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// Suppress false positive warning for static seed data
|
|
49
|
-
options.ConfigureWarnings(w => w.Ignore(RelationalEventId.PendingModelChangesWarning));
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
// Register the interface
|
|
53
|
-
services.AddScoped<IExtensionsDbContext>(provider =>
|
|
54
|
-
provider.GetRequiredService<ExtensionsDbContext>());
|
|
55
|
-
|
|
56
|
-
// TODO: Register your services here
|
|
57
|
-
// services.AddScoped<IOrderService, OrderService>();
|
|
58
|
-
|
|
59
|
-
return services;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
1
|
+
using Microsoft.EntityFrameworkCore;
|
|
2
|
+
using Microsoft.EntityFrameworkCore.Diagnostics;
|
|
3
|
+
using Microsoft.Extensions.Configuration;
|
|
4
|
+
using Microsoft.Extensions.DependencyInjection;
|
|
5
|
+
using {{ProjectName}}.Application.Common.Interfaces;
|
|
6
|
+
using {{ProjectName}}.Infrastructure.Persistence;
|
|
7
|
+
using SmartStack.Infrastructure.Persistence.Configurations;
|
|
8
|
+
|
|
9
|
+
namespace {{ProjectName}}.Infrastructure;
|
|
10
|
+
|
|
11
|
+
/// <summary>
|
|
12
|
+
/// Dependency injection configuration for client Infrastructure layer.
|
|
13
|
+
/// </summary>
|
|
14
|
+
public static class DependencyInjection
|
|
15
|
+
{
|
|
16
|
+
/// <summary>
|
|
17
|
+
/// Adds client-specific infrastructure services to the DI container.
|
|
18
|
+
///
|
|
19
|
+
/// IMPORTANT: This must be called AFTER AddSmartStackInfrastructure()
|
|
20
|
+
/// to ensure CoreDbContext is registered first.
|
|
21
|
+
/// </summary>
|
|
22
|
+
public static IServiceCollection Add{{ProjectName}}Infrastructure(
|
|
23
|
+
this IServiceCollection services,
|
|
24
|
+
IConfiguration configuration)
|
|
25
|
+
{
|
|
26
|
+
// ExtensionsDbContext with migrations in 'extensions' schema
|
|
27
|
+
services.AddDbContext<ExtensionsDbContext>(options =>
|
|
28
|
+
{
|
|
29
|
+
options.UseSqlServer(
|
|
30
|
+
configuration.GetConnectionString("DefaultConnection"),
|
|
31
|
+
sqlOptions =>
|
|
32
|
+
{
|
|
33
|
+
sqlOptions.MigrationsAssembly(typeof(ExtensionsDbContext).Assembly.FullName);
|
|
34
|
+
|
|
35
|
+
// Store migrations history in extensions schema (separate from Core)
|
|
36
|
+
sqlOptions.MigrationsHistoryTable("__EFMigrationsHistory", SchemaConstants.Extensions);
|
|
37
|
+
|
|
38
|
+
// Enable retry policy for transient failures
|
|
39
|
+
sqlOptions.EnableRetryOnFailure(
|
|
40
|
+
maxRetryCount: 5,
|
|
41
|
+
maxRetryDelay: TimeSpan.FromSeconds(10),
|
|
42
|
+
errorNumbersToAdd: null);
|
|
43
|
+
|
|
44
|
+
// Set command timeout
|
|
45
|
+
sqlOptions.CommandTimeout(60);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// Suppress false positive warning for static seed data
|
|
49
|
+
options.ConfigureWarnings(w => w.Ignore(RelationalEventId.PendingModelChangesWarning));
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// Register the interface
|
|
53
|
+
services.AddScoped<IExtensionsDbContext>(provider =>
|
|
54
|
+
provider.GetRequiredService<ExtensionsDbContext>());
|
|
55
|
+
|
|
56
|
+
// TODO: Register your services here
|
|
57
|
+
// services.AddScoped<IOrderService, OrderService>();
|
|
58
|
+
|
|
59
|
+
return services;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
using Microsoft.EntityFrameworkCore;
|
|
2
|
-
using Microsoft.EntityFrameworkCore.Design;
|
|
3
|
-
using Microsoft.Extensions.Configuration;
|
|
4
|
-
using SmartStack.Infrastructure.Persistence.Configurations;
|
|
5
|
-
|
|
6
|
-
namespace {{ProjectName}}.Infrastructure.Persistence;
|
|
7
|
-
|
|
8
|
-
/// <summary>
|
|
9
|
-
/// Factory for creating ExtensionsDbContext at design time (for EF Core CLI tools).
|
|
10
|
-
///
|
|
11
|
-
/// This enables running migrations from the command line:
|
|
12
|
-
/// <code>
|
|
13
|
-
/// dotnet ef migrations add MyMigration --context ExtensionsDbContext
|
|
14
|
-
/// dotnet ef database update --context ExtensionsDbContext
|
|
15
|
-
/// dotnet ef migrations list --context ExtensionsDbContext
|
|
16
|
-
/// dotnet ef migrations script --context ExtensionsDbContext -o deploy.sql
|
|
17
|
-
/// </code>
|
|
18
|
-
///
|
|
19
|
-
/// IMPORTANT: Migrations are stored in the 'extensions' schema, separate from
|
|
20
|
-
/// SmartStack Core migrations in the 'core' schema.
|
|
21
|
-
/// </summary>
|
|
22
|
-
public class DesignTimeExtensionsDbContextFactory : IDesignTimeDbContextFactory<ExtensionsDbContext>
|
|
23
|
-
{
|
|
24
|
-
public ExtensionsDbContext CreateDbContext(string[] args)
|
|
25
|
-
{
|
|
26
|
-
// Try to find appsettings.json in various locations
|
|
27
|
-
var basePath = Directory.GetCurrentDirectory();
|
|
28
|
-
|
|
29
|
-
// Look for appsettings.json in common locations
|
|
30
|
-
var configPaths = new[]
|
|
31
|
-
{
|
|
32
|
-
basePath,
|
|
33
|
-
Path.Combine(basePath, "..", "{{ProjectName}}.Api"),
|
|
34
|
-
Path.Combine(basePath, "..", "..", "src", "{{ProjectName}}.Api"),
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
IConfigurationRoot? configuration = null;
|
|
38
|
-
|
|
39
|
-
foreach (var path in configPaths)
|
|
40
|
-
{
|
|
41
|
-
var configPath = Path.Combine(path, "appsettings.json");
|
|
42
|
-
if (File.Exists(configPath))
|
|
43
|
-
{
|
|
44
|
-
configuration = new ConfigurationBuilder()
|
|
45
|
-
.SetBasePath(path)
|
|
46
|
-
.AddJsonFile("appsettings.json", optional: false)
|
|
47
|
-
.AddJsonFile("appsettings.Development.json", optional: true)
|
|
48
|
-
.AddJsonFile("appsettings.Local.json", optional: true)
|
|
49
|
-
.Build();
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Fallback: use a default connection string for design-time operations
|
|
55
|
-
var connectionString = configuration?.GetConnectionString("DefaultConnection")
|
|
56
|
-
?? "Server=(localdb)\\mssqllocaldb;Database={{ProjectName}}_DesignTime;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True";
|
|
57
|
-
|
|
58
|
-
var optionsBuilder = new DbContextOptionsBuilder<ExtensionsDbContext>();
|
|
59
|
-
optionsBuilder.UseSqlServer(connectionString, b =>
|
|
60
|
-
{
|
|
61
|
-
b.MigrationsAssembly(typeof(ExtensionsDbContext).Assembly.FullName);
|
|
62
|
-
|
|
63
|
-
// IMPORTANT: Store migrations history in 'extensions' schema
|
|
64
|
-
// This keeps client migrations separate from Core migrations
|
|
65
|
-
b.MigrationsHistoryTable("__EFMigrationsHistory", SchemaConstants.Extensions);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
return new ExtensionsDbContext(optionsBuilder.Options);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
1
|
+
using Microsoft.EntityFrameworkCore;
|
|
2
|
+
using Microsoft.EntityFrameworkCore.Design;
|
|
3
|
+
using Microsoft.Extensions.Configuration;
|
|
4
|
+
using SmartStack.Infrastructure.Persistence.Configurations;
|
|
5
|
+
|
|
6
|
+
namespace {{ProjectName}}.Infrastructure.Persistence;
|
|
7
|
+
|
|
8
|
+
/// <summary>
|
|
9
|
+
/// Factory for creating ExtensionsDbContext at design time (for EF Core CLI tools).
|
|
10
|
+
///
|
|
11
|
+
/// This enables running migrations from the command line:
|
|
12
|
+
/// <code>
|
|
13
|
+
/// dotnet ef migrations add MyMigration --context ExtensionsDbContext
|
|
14
|
+
/// dotnet ef database update --context ExtensionsDbContext
|
|
15
|
+
/// dotnet ef migrations list --context ExtensionsDbContext
|
|
16
|
+
/// dotnet ef migrations script --context ExtensionsDbContext -o deploy.sql
|
|
17
|
+
/// </code>
|
|
18
|
+
///
|
|
19
|
+
/// IMPORTANT: Migrations are stored in the 'extensions' schema, separate from
|
|
20
|
+
/// SmartStack Core migrations in the 'core' schema.
|
|
21
|
+
/// </summary>
|
|
22
|
+
public class DesignTimeExtensionsDbContextFactory : IDesignTimeDbContextFactory<ExtensionsDbContext>
|
|
23
|
+
{
|
|
24
|
+
public ExtensionsDbContext CreateDbContext(string[] args)
|
|
25
|
+
{
|
|
26
|
+
// Try to find appsettings.json in various locations
|
|
27
|
+
var basePath = Directory.GetCurrentDirectory();
|
|
28
|
+
|
|
29
|
+
// Look for appsettings.json in common locations
|
|
30
|
+
var configPaths = new[]
|
|
31
|
+
{
|
|
32
|
+
basePath,
|
|
33
|
+
Path.Combine(basePath, "..", "{{ProjectName}}.Api"),
|
|
34
|
+
Path.Combine(basePath, "..", "..", "src", "{{ProjectName}}.Api"),
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
IConfigurationRoot? configuration = null;
|
|
38
|
+
|
|
39
|
+
foreach (var path in configPaths)
|
|
40
|
+
{
|
|
41
|
+
var configPath = Path.Combine(path, "appsettings.json");
|
|
42
|
+
if (File.Exists(configPath))
|
|
43
|
+
{
|
|
44
|
+
configuration = new ConfigurationBuilder()
|
|
45
|
+
.SetBasePath(path)
|
|
46
|
+
.AddJsonFile("appsettings.json", optional: false)
|
|
47
|
+
.AddJsonFile("appsettings.Development.json", optional: true)
|
|
48
|
+
.AddJsonFile("appsettings.Local.json", optional: true)
|
|
49
|
+
.Build();
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Fallback: use a default connection string for design-time operations
|
|
55
|
+
var connectionString = configuration?.GetConnectionString("DefaultConnection")
|
|
56
|
+
?? "Server=(localdb)\\mssqllocaldb;Database={{ProjectName}}_DesignTime;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True";
|
|
57
|
+
|
|
58
|
+
var optionsBuilder = new DbContextOptionsBuilder<ExtensionsDbContext>();
|
|
59
|
+
optionsBuilder.UseSqlServer(connectionString, b =>
|
|
60
|
+
{
|
|
61
|
+
b.MigrationsAssembly(typeof(ExtensionsDbContext).Assembly.FullName);
|
|
62
|
+
|
|
63
|
+
// IMPORTANT: Store migrations history in 'extensions' schema
|
|
64
|
+
// This keeps client migrations separate from Core migrations
|
|
65
|
+
b.MigrationsHistoryTable("__EFMigrationsHistory", SchemaConstants.Extensions);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
return new ExtensionsDbContext(optionsBuilder.Options);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
using SmartStack.Domain.Common;
|
|
2
|
-
|
|
3
|
-
namespace {{ProjectName}}.Domain.Entities;
|
|
4
|
-
|
|
5
|
-
/// <summary>
|
|
6
|
-
/// Example entity demonstrating FK reference to Core entities.
|
|
7
|
-
///
|
|
8
|
-
/// IMPORTANT: Notice that we store only the UserId (GUID), NOT a navigation property.
|
|
9
|
-
/// This is because ExtensionsDbContext doesn't know about Core entities.
|
|
10
|
-
/// Use ICoreDataService to fetch the User data when needed.
|
|
11
|
-
/// </summary>
|
|
12
|
-
public class Order : BaseAuditableEntity
|
|
13
|
-
{
|
|
14
|
-
/// <summary>
|
|
15
|
-
/// Order number (auto-generated or custom format).
|
|
16
|
-
/// </summary>
|
|
17
|
-
public string OrderNumber { get; private set; } = null!;
|
|
18
|
-
|
|
19
|
-
/// <summary>
|
|
20
|
-
/// Foreign key to the User who created this order.
|
|
21
|
-
///
|
|
22
|
-
/// IMPORTANT: This is a GUID reference only, NOT a navigation property!
|
|
23
|
-
/// Use ICoreDataService.GetUserByIdAsync() to fetch user details.
|
|
24
|
-
/// </summary>
|
|
25
|
-
public Guid CustomerId { get; private set; }
|
|
26
|
-
|
|
27
|
-
/// <summary>
|
|
28
|
-
/// Order status.
|
|
29
|
-
/// </summary>
|
|
30
|
-
public OrderStatus Status { get; private set; }
|
|
31
|
-
|
|
32
|
-
/// <summary>
|
|
33
|
-
/// Total amount.
|
|
34
|
-
/// </summary>
|
|
35
|
-
public decimal TotalAmount { get; private set; }
|
|
36
|
-
|
|
37
|
-
/// <summary>
|
|
38
|
-
/// Order date.
|
|
39
|
-
/// </summary>
|
|
40
|
-
public DateTime OrderDate { get; private set; }
|
|
41
|
-
|
|
42
|
-
/// <summary>
|
|
43
|
-
/// Optional notes.
|
|
44
|
-
/// </summary>
|
|
45
|
-
public string? Notes { get; private set; }
|
|
46
|
-
|
|
47
|
-
// Private constructor for EF Core
|
|
48
|
-
private Order() { }
|
|
49
|
-
|
|
50
|
-
/// <summary>
|
|
51
|
-
/// Creates a new order.
|
|
52
|
-
/// </summary>
|
|
53
|
-
/// <param name="orderNumber">Order number</param>
|
|
54
|
-
/// <param name="customerId">ID of the user placing the order (from Core)</param>
|
|
55
|
-
/// <param name="totalAmount">Total amount</param>
|
|
56
|
-
public static Order Create(string orderNumber, Guid customerId, decimal totalAmount)
|
|
57
|
-
{
|
|
58
|
-
return new Order
|
|
59
|
-
{
|
|
60
|
-
OrderNumber = orderNumber,
|
|
61
|
-
CustomerId = customerId,
|
|
62
|
-
Status = OrderStatus.Pending,
|
|
63
|
-
TotalAmount = totalAmount,
|
|
64
|
-
OrderDate = DateTime.UtcNow
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public void Confirm()
|
|
69
|
-
{
|
|
70
|
-
if (Status != OrderStatus.Pending)
|
|
71
|
-
throw new InvalidOperationException("Only pending orders can be confirmed.");
|
|
72
|
-
|
|
73
|
-
Status = OrderStatus.Confirmed;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
public void Ship()
|
|
77
|
-
{
|
|
78
|
-
if (Status != OrderStatus.Confirmed)
|
|
79
|
-
throw new InvalidOperationException("Only confirmed orders can be shipped.");
|
|
80
|
-
|
|
81
|
-
Status = OrderStatus.Shipped;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
public void Complete()
|
|
85
|
-
{
|
|
86
|
-
if (Status != OrderStatus.Shipped)
|
|
87
|
-
throw new InvalidOperationException("Only shipped orders can be completed.");
|
|
88
|
-
|
|
89
|
-
Status = OrderStatus.Completed;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
public void Cancel()
|
|
93
|
-
{
|
|
94
|
-
if (Status == OrderStatus.Completed)
|
|
95
|
-
throw new InvalidOperationException("Completed orders cannot be cancelled.");
|
|
96
|
-
|
|
97
|
-
Status = OrderStatus.Cancelled;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
public void AddNotes(string notes)
|
|
101
|
-
{
|
|
102
|
-
Notes = notes;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/// <summary>
|
|
107
|
-
/// Order status enum.
|
|
108
|
-
/// </summary>
|
|
109
|
-
public enum OrderStatus
|
|
110
|
-
{
|
|
111
|
-
Pending = 0,
|
|
112
|
-
Confirmed = 1,
|
|
113
|
-
Shipped = 2,
|
|
114
|
-
Completed = 3,
|
|
115
|
-
Cancelled = 4
|
|
116
|
-
}
|
|
1
|
+
using SmartStack.Domain.Common;
|
|
2
|
+
|
|
3
|
+
namespace {{ProjectName}}.Domain.Entities;
|
|
4
|
+
|
|
5
|
+
/// <summary>
|
|
6
|
+
/// Example entity demonstrating FK reference to Core entities.
|
|
7
|
+
///
|
|
8
|
+
/// IMPORTANT: Notice that we store only the UserId (GUID), NOT a navigation property.
|
|
9
|
+
/// This is because ExtensionsDbContext doesn't know about Core entities.
|
|
10
|
+
/// Use ICoreDataService to fetch the User data when needed.
|
|
11
|
+
/// </summary>
|
|
12
|
+
public class Order : BaseAuditableEntity
|
|
13
|
+
{
|
|
14
|
+
/// <summary>
|
|
15
|
+
/// Order number (auto-generated or custom format).
|
|
16
|
+
/// </summary>
|
|
17
|
+
public string OrderNumber { get; private set; } = null!;
|
|
18
|
+
|
|
19
|
+
/// <summary>
|
|
20
|
+
/// Foreign key to the User who created this order.
|
|
21
|
+
///
|
|
22
|
+
/// IMPORTANT: This is a GUID reference only, NOT a navigation property!
|
|
23
|
+
/// Use ICoreDataService.GetUserByIdAsync() to fetch user details.
|
|
24
|
+
/// </summary>
|
|
25
|
+
public Guid CustomerId { get; private set; }
|
|
26
|
+
|
|
27
|
+
/// <summary>
|
|
28
|
+
/// Order status.
|
|
29
|
+
/// </summary>
|
|
30
|
+
public OrderStatus Status { get; private set; }
|
|
31
|
+
|
|
32
|
+
/// <summary>
|
|
33
|
+
/// Total amount.
|
|
34
|
+
/// </summary>
|
|
35
|
+
public decimal TotalAmount { get; private set; }
|
|
36
|
+
|
|
37
|
+
/// <summary>
|
|
38
|
+
/// Order date.
|
|
39
|
+
/// </summary>
|
|
40
|
+
public DateTime OrderDate { get; private set; }
|
|
41
|
+
|
|
42
|
+
/// <summary>
|
|
43
|
+
/// Optional notes.
|
|
44
|
+
/// </summary>
|
|
45
|
+
public string? Notes { get; private set; }
|
|
46
|
+
|
|
47
|
+
// Private constructor for EF Core
|
|
48
|
+
private Order() { }
|
|
49
|
+
|
|
50
|
+
/// <summary>
|
|
51
|
+
/// Creates a new order.
|
|
52
|
+
/// </summary>
|
|
53
|
+
/// <param name="orderNumber">Order number</param>
|
|
54
|
+
/// <param name="customerId">ID of the user placing the order (from Core)</param>
|
|
55
|
+
/// <param name="totalAmount">Total amount</param>
|
|
56
|
+
public static Order Create(string orderNumber, Guid customerId, decimal totalAmount)
|
|
57
|
+
{
|
|
58
|
+
return new Order
|
|
59
|
+
{
|
|
60
|
+
OrderNumber = orderNumber,
|
|
61
|
+
CustomerId = customerId,
|
|
62
|
+
Status = OrderStatus.Pending,
|
|
63
|
+
TotalAmount = totalAmount,
|
|
64
|
+
OrderDate = DateTime.UtcNow
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public void Confirm()
|
|
69
|
+
{
|
|
70
|
+
if (Status != OrderStatus.Pending)
|
|
71
|
+
throw new InvalidOperationException("Only pending orders can be confirmed.");
|
|
72
|
+
|
|
73
|
+
Status = OrderStatus.Confirmed;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public void Ship()
|
|
77
|
+
{
|
|
78
|
+
if (Status != OrderStatus.Confirmed)
|
|
79
|
+
throw new InvalidOperationException("Only confirmed orders can be shipped.");
|
|
80
|
+
|
|
81
|
+
Status = OrderStatus.Shipped;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public void Complete()
|
|
85
|
+
{
|
|
86
|
+
if (Status != OrderStatus.Shipped)
|
|
87
|
+
throw new InvalidOperationException("Only shipped orders can be completed.");
|
|
88
|
+
|
|
89
|
+
Status = OrderStatus.Completed;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
public void Cancel()
|
|
93
|
+
{
|
|
94
|
+
if (Status == OrderStatus.Completed)
|
|
95
|
+
throw new InvalidOperationException("Completed orders cannot be cancelled.");
|
|
96
|
+
|
|
97
|
+
Status = OrderStatus.Cancelled;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
public void AddNotes(string notes)
|
|
101
|
+
{
|
|
102
|
+
Notes = notes;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/// <summary>
|
|
107
|
+
/// Order status enum.
|
|
108
|
+
/// </summary>
|
|
109
|
+
public enum OrderStatus
|
|
110
|
+
{
|
|
111
|
+
Pending = 0,
|
|
112
|
+
Confirmed = 1,
|
|
113
|
+
Shipped = 2,
|
|
114
|
+
Completed = 3,
|
|
115
|
+
Cancelled = 4
|
|
116
|
+
}
|