mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 12:19: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
|
|
@ -22,6 +22,8 @@ export { createCategoriesResource } from './resources/categories.js';
|
|||
export { createSuppliersResource } from './resources/suppliers.js';
|
||||
export { createArticlesResource } from './resources/articles.js';
|
||||
export { createCustomersResource } from './resources/customers.js';
|
||||
export { createStorageLocationsResource } from './resources/storage-locations.js';
|
||||
export { createRecipesResource } from './resources/recipes.js';
|
||||
export {
|
||||
ApiError,
|
||||
AuthenticationError,
|
||||
|
|
@ -29,12 +31,15 @@ export {
|
|||
RefreshTokenExpiredError,
|
||||
} from './errors.js';
|
||||
export type { ValidationErrorDetail } from './errors.js';
|
||||
// Auth types (no generated alias, stay in resource)
|
||||
export type {
|
||||
LoginRequest,
|
||||
LoginResponse,
|
||||
RefreshTokenRequest,
|
||||
AuthResource,
|
||||
} from './resources/auth.js';
|
||||
|
||||
// Types from @effigenix/types (generated OpenAPI aliases)
|
||||
export type {
|
||||
UserDTO,
|
||||
RoleDTO,
|
||||
|
|
@ -42,18 +47,7 @@ export type {
|
|||
UpdateUserRequest,
|
||||
ChangePasswordRequest,
|
||||
AssignRoleRequest,
|
||||
UsersResource,
|
||||
} from './resources/users.js';
|
||||
export type { RolesResource } from './resources/roles.js';
|
||||
export type {
|
||||
ProductCategoryDTO,
|
||||
CreateCategoryRequest,
|
||||
UpdateCategoryRequest,
|
||||
CategoriesResource,
|
||||
} from './resources/categories.js';
|
||||
export type {
|
||||
SupplierDTO,
|
||||
SupplierStatus,
|
||||
AddressDTO,
|
||||
ContactInfoDTO,
|
||||
PaymentTermsDTO,
|
||||
|
|
@ -64,36 +58,57 @@ export type {
|
|||
RateSupplierRequest,
|
||||
AddCertificateRequest,
|
||||
RemoveCertificateRequest,
|
||||
SuppliersResource,
|
||||
} from './resources/suppliers.js';
|
||||
export type {
|
||||
ProductCategoryDTO,
|
||||
CreateCategoryRequest,
|
||||
UpdateCategoryRequest,
|
||||
ArticleDTO,
|
||||
ArticleStatus,
|
||||
SalesUnitDTO,
|
||||
Unit,
|
||||
PriceModel,
|
||||
CreateArticleRequest,
|
||||
UpdateArticleRequest,
|
||||
AddSalesUnitRequest,
|
||||
UpdateSalesUnitPriceRequest,
|
||||
ArticlesResource,
|
||||
} from './resources/articles.js';
|
||||
export { UNIT_LABELS, PRICE_MODEL_LABELS } from './resources/articles.js';
|
||||
export type {
|
||||
CustomerDTO,
|
||||
CustomerType,
|
||||
CustomerStatus,
|
||||
CustomerPreference,
|
||||
DeliveryRhythm,
|
||||
DeliveryAddressDTO,
|
||||
FrameContractDTO,
|
||||
ContractLineItemDTO,
|
||||
CreateCustomerRequest,
|
||||
UpdateCustomerRequest,
|
||||
AddDeliveryAddressRequest,
|
||||
SetFrameContractLineItem,
|
||||
SetFrameContractRequest,
|
||||
StorageLocationDTO,
|
||||
TemperatureRangeDTO,
|
||||
CreateStorageLocationRequest,
|
||||
UpdateStorageLocationRequest,
|
||||
RecipeDTO,
|
||||
IngredientDTO,
|
||||
CreateRecipeRequest,
|
||||
AddRecipeIngredientRequest,
|
||||
} from '@effigenix/types';
|
||||
|
||||
// Resource types (runtime, stay in resource files)
|
||||
export type { UsersResource } from './resources/users.js';
|
||||
export type { RolesResource } from './resources/roles.js';
|
||||
export type { CategoriesResource } from './resources/categories.js';
|
||||
export type { SuppliersResource, SupplierStatus } from './resources/suppliers.js';
|
||||
export type { ArticlesResource, ArticleStatus, Unit, PriceModel } from './resources/articles.js';
|
||||
export { UNIT_LABELS, PRICE_MODEL_LABELS } from './resources/articles.js';
|
||||
export type {
|
||||
CustomersResource,
|
||||
CustomerType,
|
||||
CustomerStatus,
|
||||
CustomerPreference,
|
||||
DeliveryRhythm,
|
||||
} from './resources/customers.js';
|
||||
export { CUSTOMER_PREFERENCE_LABELS, DELIVERY_RHYTHM_LABELS } from './resources/customers.js';
|
||||
export type {
|
||||
StorageLocationsResource,
|
||||
StorageType,
|
||||
StorageLocationFilter,
|
||||
} from './resources/storage-locations.js';
|
||||
export { STORAGE_TYPE_LABELS } from './resources/storage-locations.js';
|
||||
export type { RecipesResource, RecipeType, RecipeStatus } from './resources/recipes.js';
|
||||
export { RECIPE_TYPE_LABELS } from './resources/recipes.js';
|
||||
|
||||
import { createApiClient } from './client.js';
|
||||
import { createAuthResource } from './resources/auth.js';
|
||||
|
|
@ -103,6 +118,8 @@ import { createCategoriesResource } from './resources/categories.js';
|
|||
import { createSuppliersResource } from './resources/suppliers.js';
|
||||
import { createArticlesResource } from './resources/articles.js';
|
||||
import { createCustomersResource } from './resources/customers.js';
|
||||
import { createStorageLocationsResource } from './resources/storage-locations.js';
|
||||
import { createRecipesResource } from './resources/recipes.js';
|
||||
import type { TokenProvider } from './token-provider.js';
|
||||
import type { ApiConfig } from '@effigenix/config';
|
||||
|
||||
|
|
@ -124,6 +141,8 @@ export function createEffigenixClient(
|
|||
suppliers: createSuppliersResource(axiosClient),
|
||||
articles: createArticlesResource(axiosClient),
|
||||
customers: createCustomersResource(axiosClient),
|
||||
storageLocations: createStorageLocationsResource(axiosClient),
|
||||
recipes: createRecipesResource(axiosClient),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue