@saasicat/spec 1.0.0-rc.18 → 1.0.0-rc.19

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.
@@ -29,7 +29,7 @@ openapi: 3.1.0
29
29
 
30
30
  info:
31
31
  title: SaaS Platform SuperAdmin API
32
- version: 1.0.0-rc.18
32
+ version: 1.0.0-rc.19
33
33
  description: |
34
34
  Read and write operations for platform administration:
35
35
  tenants, users, subscriptions, promo codes, audit log,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saasicat/spec",
3
- "version": "1.0.0-rc.18",
3
+ "version": "1.0.0-rc.19",
4
4
  "description": "Language-neutral spec of the SaaS platform: JSON Schemas, OpenAPI contract, Prisma fragments, acceptance scenarios.",
5
5
  "type": "module",
6
6
  "main": "./index.cjs",
@@ -145,8 +145,8 @@
145
145
  "properties": {
146
146
  "legalName": {
147
147
  "type": "string",
148
- "minLength": 1,
149
- "description": "The registered name, legal form included, as a contract names the party (e.g. \"Example Software GmbH\")."
148
+ "pattern": "\\S",
149
+ "description": "The registered name, legal form included, as a contract names the party (e.g. \"Example Software GmbH\"). Compared with the recorded one after the surrounding whitespace is taken off, so a value that is only whitespace is not a name at all."
150
150
  },
151
151
  "addressLine1": {
152
152
  "type": "string",
@@ -173,13 +173,41 @@
173
173
  },
174
174
  "vatId": {
175
175
  "type": "string",
176
- "minLength": 1,
176
+ "pattern": "\\S",
177
177
  "description": "VAT identification number, e.g. DE123456789."
178
178
  },
179
179
  "taxNumber": {
180
180
  "type": "string",
181
- "minLength": 1,
181
+ "pattern": "\\S",
182
182
  "description": "The tax number the issuer's tax office assigned, where it is stated beside or instead of the VAT identification number."
183
+ },
184
+ "correctionOf": {
185
+ "type": "object",
186
+ "additionalProperties": false,
187
+ "required": ["reason"],
188
+ "description": "Declares that a changed `legalName`, `vatId` or `taxNumber` corrects the same legal entity rather than naming another one -- a misspelt name, a tax identifier that was wrong or missing, a change of name the entity went through. Without it a start that finds a different identity recorded is refused while contracts concluded under the previous one still run, because moving a contract to another legal entity is a transfer and not an edit of a setting. Name here, for every identity field the change moves, the value the installation recorded before it -- `null` where it recorded none. The declaration is needed only for the start that carries the change; a later deploy may drop it. It carries no date of its own: the settings record dates the start that applied it, and where the legal change has a date of its own it belongs in `reason`.",
189
+ "properties": {
190
+ "legalName": {
191
+ "type": ["string", "null"],
192
+ "pattern": "\\S",
193
+ "description": "The registered name being replaced, or `null` where none was recorded."
194
+ },
195
+ "vatId": {
196
+ "type": ["string", "null"],
197
+ "pattern": "\\S",
198
+ "description": "The VAT identification number being replaced, or `null` where none was recorded."
199
+ },
200
+ "taxNumber": {
201
+ "type": ["string", "null"],
202
+ "pattern": "\\S",
203
+ "description": "The tax number being replaced, or `null` where none was recorded."
204
+ },
205
+ "reason": {
206
+ "type": "string",
207
+ "pattern": "\\S",
208
+ "description": "Why the same entity now reads differently, e.g. \"Change of legal form, registered 2026-07-01\". Kept in the settings record with both value trees."
209
+ }
210
+ }
183
211
  }
184
212
  }
185
213
  },