mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 13:49:36 +01:00
feat(production): Produktionsschritte zum Rezept verwalten + AuthorizationPort
Erweitert das Recipe-Aggregate um ProductionStep-Child-Entities (Add/Remove) mit vollständiger DDD-Konformität. Führt AuthorizationPort-Prüfung in allen Production Use Cases ein (analog zum usermanagement-Referenz-BC). Fixes: Request-Validierung (Size, Min/Max), Error-Code-Konsistenz, Defense-in-Depth für durationMinutes und temperatureCelsius.
This commit is contained in:
parent
c26d72fbe7
commit
cf93b847e5
27 changed files with 978 additions and 18 deletions
|
|
@ -356,6 +356,22 @@ export interface paths {
|
|||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/api/recipes/{id}/steps": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
get?: never;
|
||||
put?: never;
|
||||
post: operations["addProductionStep"];
|
||||
delete?: never;
|
||||
options?: never;
|
||||
head?: never;
|
||||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/api/recipes/{id}/ingredients": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
|
|
@ -680,6 +696,22 @@ export interface paths {
|
|||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/api/recipes/{id}/steps/{stepNumber}": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
get?: never;
|
||||
put?: never;
|
||||
post?: never;
|
||||
delete: operations["removeProductionStep"];
|
||||
options?: never;
|
||||
head?: never;
|
||||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/api/recipes/{id}/ingredients/{ingredientId}": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
|
|
@ -1070,6 +1102,16 @@ export interface components {
|
|||
subRecipeId?: string | null;
|
||||
substitutable: boolean;
|
||||
};
|
||||
ProductionStepResponse: {
|
||||
id: string;
|
||||
/** Format: int32 */
|
||||
stepNumber: number;
|
||||
description: string;
|
||||
/** Format: int32 */
|
||||
durationMinutes?: number | null;
|
||||
/** Format: int32 */
|
||||
temperatureCelsius?: number | null;
|
||||
};
|
||||
RecipeResponse: {
|
||||
id: string;
|
||||
name: string;
|
||||
|
|
@ -1085,11 +1127,21 @@ export interface components {
|
|||
outputUom: string;
|
||||
status: string;
|
||||
ingredients: components["schemas"]["IngredientResponse"][];
|
||||
productionSteps: components["schemas"]["ProductionStepResponse"][];
|
||||
/** Format: date-time */
|
||||
createdAt: string;
|
||||
/** Format: date-time */
|
||||
updatedAt: string;
|
||||
};
|
||||
AddProductionStepRequest: {
|
||||
/** Format: int32 */
|
||||
stepNumber?: number;
|
||||
description: string;
|
||||
/** Format: int32 */
|
||||
durationMinutes?: number;
|
||||
/** Format: int32 */
|
||||
temperatureCelsius?: number;
|
||||
};
|
||||
AddRecipeIngredientRequest: {
|
||||
/** Format: int32 */
|
||||
position?: number;
|
||||
|
|
@ -2076,6 +2128,32 @@ export interface operations {
|
|||
};
|
||||
};
|
||||
};
|
||||
addProductionStep: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path: {
|
||||
id: string;
|
||||
};
|
||||
cookie?: never;
|
||||
};
|
||||
requestBody: {
|
||||
content: {
|
||||
"application/json": components["schemas"]["AddProductionStepRequest"];
|
||||
};
|
||||
};
|
||||
responses: {
|
||||
/** @description OK */
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"*/*": components["schemas"]["RecipeResponse"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
addIngredient: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
|
|
@ -2672,6 +2750,27 @@ export interface operations {
|
|||
};
|
||||
};
|
||||
};
|
||||
removeProductionStep: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path: {
|
||||
id: string;
|
||||
stepNumber: number;
|
||||
};
|
||||
cookie?: never;
|
||||
};
|
||||
requestBody?: never;
|
||||
responses: {
|
||||
/** @description OK */
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content?: never;
|
||||
};
|
||||
};
|
||||
};
|
||||
removeIngredient: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue