Adds the Offerings module and retargets the CI/CD pipeline to Api.SlpSoftware
Continuous Integration / config (pull_request) Successful in 12s
Continuous Integration / changes (pull_request) Successful in 22s
Continuous Integration / backend-build (pull_request) Successful in 5m53s
Continuous Integration / vulnerability-scan (pull_request) Successful in 5m46s
Continuous Integration / frontend-prepare (pull_request) Successful in 1m54s
Continuous Integration / backend-test (pull_request) Successful in 7m37s
Continuous Integration / frontend-build (pull_request) Successful in 2m14s
Continuous Integration / frontend-test (pull_request) Successful in 4m59s
Continuous Integration / frontend-lint (pull_request) Successful in 2m2s
Continuous Integration / publish-production (pull_request) Skipped
Continuous Integration / deploy-production (pull_request) Skipped
Continuous Integration / publish-test (pull_request) Successful in 7m34s
Continuous Integration / deploy-test (pull_request) Skipped

Implements Unit 2 "Offerings" (backend module, admin CRUD UI with
drag-and-drop reordering, public GET /api/v1/offerings endpoint) and
executes the feature's D-15 CI/CD cutover, switching the deploy
pipeline's build/publish target from SlpModularCms.Api to
SlpModularCms.Api.SlpSoftware.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FWyStNL2ZsjrS7FLd7xvvN
This commit is contained in:
2026-08-02 16:23:09 +02:00
co-authored by Claude Sonnet 5
parent b6e9c07c06
commit cfb06b28b6
79 changed files with 4069 additions and 94 deletions
@@ -242,6 +242,16 @@ so keeping the two in sync is a manual discipline, not something enforced automa
### 1.6 systemd User Units
**Updated for the `slpsoftware-api` feature's D-15 cutover**: the deployed executable is
`SlpModularCms.Api.SlpSoftware.dll`, not `SlpModularCms.Api.dll` — the pipeline's build/deploy
target switched, one project replacing the other, not running side by side (D-7/D-15). This is a
**host-side change only this document describes** — `deploy-scp.yaml` never creates or edits a
systemd unit file (§ 1, "everything here is host configuration the workflow assumes already
exists"), so if these two units already exist on the Pi from before this cutover, **you must edit
`ExecStart` in both by hand** (`sudo -u gitea-workflow $EDITOR ~/.config/systemd/user/slpsoftware-*.service`
in a real login shell — § 1.3), then `systemctl --user daemon-reload` and restart both services. A
fresh, first-time setup can just use the corrected filename below directly.
👤 **pi-main / `gitea-workflow`** — create `~/.config/systemd/user/slpsoftware-test.service`:
```ini
[Unit]
@@ -250,7 +260,7 @@ After=network.target
[Service]
WorkingDirectory=%h/apps/slpsoftware/test/current
ExecStart=/usr/bin/dotnet %h/apps/slpsoftware/test/current/SlpModularCms.Api.dll
ExecStart=/usr/bin/dotnet %h/apps/slpsoftware/test/current/SlpModularCms.Api.SlpSoftware.dll
EnvironmentFile=%h/apps/slpsoftware/test/shared/env
Restart=on-failure
RestartSec=5