1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 13:59:36 +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:
Sebastian Frick 2026-02-19 13:45:35 +01:00
parent bee3f28b5f
commit c26d72fbe7
48 changed files with 2090 additions and 474 deletions

View file

@ -31,6 +31,16 @@ import { CustomerDetailScreen } from './components/masterdata/customers/Customer
import { CustomerCreateScreen } from './components/masterdata/customers/CustomerCreateScreen.js';
import { AddDeliveryAddressScreen } from './components/masterdata/customers/AddDeliveryAddressScreen.js';
import { SetPreferencesScreen } from './components/masterdata/customers/SetPreferencesScreen.js';
// Lagerverwaltung
import { InventoryMenu } from './components/inventory/InventoryMenu.js';
import { StorageLocationListScreen } from './components/inventory/StorageLocationListScreen.js';
import { StorageLocationCreateScreen } from './components/inventory/StorageLocationCreateScreen.js';
import { StorageLocationDetailScreen } from './components/inventory/StorageLocationDetailScreen.js';
// Produktion
import { ProductionMenu } from './components/production/ProductionMenu.js';
import { RecipeListScreen } from './components/production/RecipeListScreen.js';
import { RecipeCreateScreen } from './components/production/RecipeCreateScreen.js';
import { RecipeDetailScreen } from './components/production/RecipeDetailScreen.js';
function ScreenRouter() {
const { isAuthenticated, loading } = useAuth();
@ -87,6 +97,16 @@ function ScreenRouter() {
{current === 'customer-create' && <CustomerCreateScreen />}
{current === 'customer-add-delivery-address' && <AddDeliveryAddressScreen />}
{current === 'customer-set-preferences' && <SetPreferencesScreen />}
{/* Lagerverwaltung */}
{current === 'inventory-menu' && <InventoryMenu />}
{current === 'storage-location-list' && <StorageLocationListScreen />}
{current === 'storage-location-create' && <StorageLocationCreateScreen />}
{current === 'storage-location-detail' && <StorageLocationDetailScreen />}
{/* Produktion */}
{current === 'production-menu' && <ProductionMenu />}
{current === 'recipe-list' && <RecipeListScreen />}
{current === 'recipe-create' && <RecipeCreateScreen />}
{current === 'recipe-detail' && <RecipeDetailScreen />}
</MainLayout>
);
}