feat(260925-bow): gesehene Version pro Benutzer merken - Spalte, Versionsfunktionen, API
- packages/shared: parseReleaseVersion, compareReleaseVersions, ReleaseNoticeResponse - getRunningRelease(): einzige Quelle der laufenden Version (APP_VERSION der API) - User.lastSeenReleaseVersion (nullbar, Migration 20260925120000) - GET /users/me/release-notice, POST /users/me/release-seen (gebunden an Benutzer und Mandant) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import { IsString, Matches, MaxLength } from 'class-validator';
|
||||
|
||||
/**
|
||||
* Body von `POST /users/me/release-seen` (quick-260925-bow, D-05).
|
||||
*
|
||||
* Nur die kanonische Form `X.Y.Z` (ohne `v`, ohne fuehrende Nullen, ohne
|
||||
* Describe-Anhang) — so, wie `GET /users/me/release-notice` sie als
|
||||
* `currentRelease` liefert. Die Methode im Controller prueft zusaetzlich
|
||||
* `parseReleaseVersion(version) === version` und "nicht ueber der laufenden
|
||||
* Version", weil Unit-Tests sie ohne ValidationPipe aufrufen.
|
||||
*/
|
||||
export class ReleaseSeenDto {
|
||||
@IsString()
|
||||
@MaxLength(32)
|
||||
@Matches(/^(0|[1-9]\d{0,5})\.(0|[1-9]\d{0,5})\.(0|[1-9]\d{0,5})$/)
|
||||
version!: string;
|
||||
}
|
||||
Reference in New Issue
Block a user