mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 11:59:35 +01:00
feat: TUI-Screens für Inventar und Produktion + API-Client Typ-Migration
Neue TUI-Features:
- Inventar: Lageorte auflisten, anlegen, bearbeiten, (de-)aktivieren
- Produktion: Rezepte auflisten, anlegen, Detail-Ansicht
- Navigation erweitert (Hauptmenü, Routing)
API-Client auf generierte OpenAPI-Typen umgestellt:
- 6 neue Alias-Dateien in @effigenix/types (supplier, category, article,
customer, inventory, production)
- api-client Re-Exports direkt von @effigenix/types statt via Resources
- Backend: @Schema(requiredProperties) auf 16 Response-Records
- Backend: OpenApiCustomizer für application-layer DTOs (UserDTO, RoleDTO)
Hinweis: Backend-Endpoints für GET /api/recipes und
GET /api/inventory/storage-locations/{id} fehlen noch (separate Issues).
This commit is contained in:
parent
bee3f28b5f
commit
c26d72fbe7
48 changed files with 2090 additions and 474 deletions
16
frontend/packages/types/src/article.ts
Normal file
16
frontend/packages/types/src/article.ts
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
/**
|
||||
* Article types
|
||||
* Re-exports types from the auto-generated OpenAPI schema
|
||||
*/
|
||||
|
||||
import type { components } from './generated/api';
|
||||
|
||||
// Response DTOs
|
||||
export type ArticleDTO = components['schemas']['ArticleResponse'];
|
||||
export type SalesUnitDTO = components['schemas']['SalesUnitResponse'];
|
||||
|
||||
// Request types
|
||||
export type CreateArticleRequest = components['schemas']['CreateArticleRequest'];
|
||||
export type UpdateArticleRequest = components['schemas']['UpdateArticleRequest'];
|
||||
export type AddSalesUnitRequest = components['schemas']['AddSalesUnitRequest'];
|
||||
export type UpdateSalesUnitPriceRequest = components['schemas']['UpdateSalesUnitPriceRequest'];
|
||||
13
frontend/packages/types/src/category.ts
Normal file
13
frontend/packages/types/src/category.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
/**
|
||||
* Product Category types
|
||||
* Re-exports types from the auto-generated OpenAPI schema
|
||||
*/
|
||||
|
||||
import type { components } from './generated/api';
|
||||
|
||||
// Response DTOs
|
||||
export type ProductCategoryDTO = components['schemas']['ProductCategoryResponse'];
|
||||
|
||||
// Request types
|
||||
export type CreateCategoryRequest = components['schemas']['CreateProductCategoryRequest'];
|
||||
export type UpdateCategoryRequest = components['schemas']['UpdateProductCategoryRequest'];
|
||||
19
frontend/packages/types/src/customer.ts
Normal file
19
frontend/packages/types/src/customer.ts
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/**
|
||||
* Customer types
|
||||
* Re-exports types from the auto-generated OpenAPI schema
|
||||
*/
|
||||
|
||||
import type { components } from './generated/api';
|
||||
|
||||
// Response DTOs
|
||||
export type CustomerDTO = components['schemas']['CustomerResponse'];
|
||||
export type DeliveryAddressDTO = components['schemas']['DeliveryAddressResponse'];
|
||||
export type FrameContractDTO = components['schemas']['FrameContractResponse'];
|
||||
export type ContractLineItemDTO = components['schemas']['ContractLineItemResponse'];
|
||||
|
||||
// Request types
|
||||
export type CreateCustomerRequest = components['schemas']['CreateCustomerRequest'];
|
||||
export type UpdateCustomerRequest = components['schemas']['UpdateCustomerRequest'];
|
||||
export type AddDeliveryAddressRequest = components['schemas']['AddDeliveryAddressRequest'];
|
||||
export type SetFrameContractLineItem = components['schemas']['LineItem'];
|
||||
export type SetFrameContractRequest = components['schemas']['SetFrameContractRequest'];
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -11,6 +11,12 @@ export * from './user';
|
|||
export * from './role';
|
||||
export * from './common';
|
||||
export * from './enums';
|
||||
export * from './supplier';
|
||||
export * from './category';
|
||||
export * from './article';
|
||||
export * from './customer';
|
||||
export * from './inventory';
|
||||
export * from './production';
|
||||
|
||||
// Re-export generated types for advanced usage
|
||||
export type { components, paths } from './generated/api';
|
||||
|
|
|
|||
14
frontend/packages/types/src/inventory.ts
Normal file
14
frontend/packages/types/src/inventory.ts
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* Inventory types
|
||||
* Re-exports types from the auto-generated OpenAPI schema
|
||||
*/
|
||||
|
||||
import type { components } from './generated/api';
|
||||
|
||||
// Response DTOs
|
||||
export type StorageLocationDTO = components['schemas']['StorageLocationResponse'];
|
||||
export type TemperatureRangeDTO = components['schemas']['TemperatureRangeResponse'];
|
||||
|
||||
// Request types
|
||||
export type CreateStorageLocationRequest = components['schemas']['CreateStorageLocationRequest'];
|
||||
export type UpdateStorageLocationRequest = components['schemas']['UpdateStorageLocationRequest'];
|
||||
14
frontend/packages/types/src/production.ts
Normal file
14
frontend/packages/types/src/production.ts
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* Production types
|
||||
* Re-exports types from the auto-generated OpenAPI schema
|
||||
*/
|
||||
|
||||
import type { components } from './generated/api';
|
||||
|
||||
// Response DTOs
|
||||
export type RecipeDTO = components['schemas']['RecipeResponse'];
|
||||
export type IngredientDTO = components['schemas']['IngredientResponse'];
|
||||
|
||||
// Request types
|
||||
export type CreateRecipeRequest = components['schemas']['CreateRecipeRequest'];
|
||||
export type AddRecipeIngredientRequest = components['schemas']['AddRecipeIngredientRequest'];
|
||||
21
frontend/packages/types/src/supplier.ts
Normal file
21
frontend/packages/types/src/supplier.ts
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* Supplier types
|
||||
* Re-exports types from the auto-generated OpenAPI schema
|
||||
*/
|
||||
|
||||
import type { components } from './generated/api';
|
||||
|
||||
// Response DTOs
|
||||
export type SupplierDTO = components['schemas']['SupplierResponse'];
|
||||
export type AddressDTO = components['schemas']['AddressResponse'];
|
||||
export type ContactInfoDTO = components['schemas']['ContactInfoResponse'];
|
||||
export type PaymentTermsDTO = components['schemas']['PaymentTermsResponse'];
|
||||
export type QualityCertificateDTO = components['schemas']['QualityCertificateResponse'];
|
||||
export type SupplierRatingDTO = components['schemas']['SupplierRatingResponse'];
|
||||
|
||||
// Request types
|
||||
export type CreateSupplierRequest = components['schemas']['CreateSupplierRequest'];
|
||||
export type UpdateSupplierRequest = components['schemas']['UpdateSupplierRequest'];
|
||||
export type RateSupplierRequest = components['schemas']['RateSupplierRequest'];
|
||||
export type AddCertificateRequest = components['schemas']['AddCertificateRequest'];
|
||||
export type RemoveCertificateRequest = components['schemas']['RemoveCertificateRequest'];
|
||||
Loading…
Add table
Add a link
Reference in a new issue