This commit is contained in:
seb
2026-10-04 19:38:16 +02:00
parent a3926d3547
commit e00533f9fa
3 changed files with 34 additions and 9 deletions

View File

@@ -14479,7 +14479,7 @@
"/article/{sku}/father": { "/article/{sku}/father": {
"post": { "post": {
"summary": "Toggle father mode for an article", "summary": "Toggle father mode for an article",
"description": "Enables or disables father article status. Enabling requires specifying an attributeNameId; disabling requires the article to have zero children.", "description": "Enables or disables father article status. Enabling requires specifying an\nattributeNameId; disabling requires the article to have zero children.\n\n`attributeNameId` is **conditionally required**: it is optional in the schema\nbecause it is only required when `isFather` is `true`. Omitting it (or passing\n`0`/a negative value) together with `isFather: true` returns `400`\n`attributeNameId is required to become a father article`. It must not be sent\nwhen `isFather` is `false`.\n",
"tags": [ "tags": [
"Article" "Article"
], ],
@@ -14515,7 +14515,7 @@
}, },
"attributeNameId": { "attributeNameId": {
"type": "integer", "type": "integer",
"description": "Required when isFather is true. The attributename id for variants." "description": "**Conditionally required when `isFather` is `true`** (required iff isFather=true).\nThe attributename id used for the article's variants. Omitting it while\nenabling father mode returns 400. Must be omitted when `isFather` is `false`.\n"
} }
} }
} }
@@ -14539,7 +14539,7 @@
} }
}, },
"400": { "400": {
"description": "Invalid input or article still has children" "description": "Invalid input, `attributeNameId` missing while `isFather` is true, article still\nhas children, article has stock/suppliers/a Stückliste/options, or the attribute is\nalready used by an ancestor father article.\n"
}, },
"404": { "404": {
"description": "Article or attribute name not found" "description": "Article or attribute name not found"

View File

@@ -4,7 +4,15 @@ Protected. Requires a valid session cookie (`credentials: 'include'`).
Toggle father mode for an article Toggle father mode for an article
Enables or disables father article status. Enabling requires specifying an attributeNameId; disabling requires the article to have zero children. Enables or disables father article status. Enabling requires specifying an
attributeNameId; disabling requires the article to have zero children.
`attributeNameId` is **conditionally required**: it is optional in the schema
because it is only required when `isFather` is `true`. Omitting it (or passing
`0`/a negative value) together with `isFather: true` returns `400`
`attributeNameId is required to become a father article`. It must not be sent
when `isFather` is `false`.
## Path parameters ## Path parameters
@@ -17,7 +25,7 @@ Enables or disables father article status. Enabling requires specifying an attri
| Field | Required | Type | Description | | Field | Required | Type | Description |
|-------|----------|------|-------------| |-------|----------|------|-------------|
| `isFather` | yes | boolean | True to make article a father, false to revert to regular article | | `isFather` | yes | boolean | True to make article a father, false to revert to regular article |
| `attributeNameId` | no | integer | Required when isFather is true. The attributename id for variants. | | `attributeNameId` | no | integer | **Conditionally required when `isFather` is `true`** (required iff isFather=true). The attributename id used for the article's variants. Omitting it while enabling father mode returns 400. Must be omitted when `isFather` is `false`. |
```json ```json
{ {
@@ -46,7 +54,10 @@ Updated article
| Status | Description | | Status | Description |
|--------|-------------| |--------|-------------|
| 400 | Invalid input or article still has children | | 400 | Invalid input, `attributeNameId` missing while `isFather` is true, article still
has children, article has stock/suppliers/a Stückliste/options, or the attribute is
already used by an ancestor father article.
|
| 404 | Article or attribute name not found | | 404 | Article or attribute name not found |
--- ---

View File

@@ -1806,7 +1806,15 @@ export function register(app, basePath = '') {
* /article/{sku}/father: * /article/{sku}/father:
* post: * post:
* summary: Toggle father mode for an article * summary: Toggle father mode for an article
* description: Enables or disables father article status. Enabling requires specifying an attributeNameId; disabling requires the article to have zero children. * description: |
* Enables or disables father article status. Enabling requires specifying an
* attributeNameId; disabling requires the article to have zero children.
*
* `attributeNameId` is **conditionally required**: it is optional in the schema
* because it is only required when `isFather` is `true`. Omitting it (or passing
* `0`/a negative value) together with `isFather: true` returns `400`
* `attributeNameId is required to become a father article`. It must not be sent
* when `isFather` is `false`.
* tags: * tags:
* - Article * - Article
* security: * security:
@@ -1831,7 +1839,10 @@ export function register(app, basePath = '') {
* description: True to make article a father, false to revert to regular article * description: True to make article a father, false to revert to regular article
* attributeNameId: * attributeNameId:
* type: integer * type: integer
* description: Required when isFather is true. The attributename id for variants. * description: |
* **Conditionally required when `isFather` is `true`** (required iff isFather=true).
* The attributename id used for the article's variants. Omitting it while
* enabling father mode returns 400. Must be omitted when `isFather` is `false`.
* responses: * responses:
* 200: * 200:
* description: Updated article * description: Updated article
@@ -1843,7 +1854,10 @@ export function register(app, basePath = '') {
* article: * article:
* $ref: '#/components/schemas/Article' * $ref: '#/components/schemas/Article'
* 400: * 400:
* description: Invalid input or article still has children * description: |
* Invalid input, `attributeNameId` missing while `isFather` is true, article still
* has children, article has stock/suppliers/a Stückliste/options, or the attribute is
* already used by an ancestor father article.
* 404: * 404:
* description: Article or attribute name not found * description: Article or attribute name not found
*/ */