1
0
Fork 0
mirror of https://github.com/s-frick/effigenix.git synced 2026-03-28 12:29:36 +01:00

feat(cli): Stammdaten-TUI mit Master Data API-Anbindung

- Neue Screens: Kategorien, Lieferanten, Artikel, Kunden (jeweils
  Liste, Detail, Anlegen + Detailaktionen wie Bewertung, Zertifikate,
  Verkaufseinheiten, Lieferadressen, Präferenzen)
- API-Client: Resources für alle 4 Stammdaten-Aggregate implementiert
  (categories, suppliers, articles, customers) mit Mapping von
  verschachtelten Domain-VOs auf flache DTOs
- Lieferant, Artikel, Kategorie: echte HTTP-Calls gegen Backend
  (/api/suppliers, /api/articles, /api/categories, /api/customers)
- 204-No-Content-Endpoints (removeSalesUnit, removeSupplier,
  removeCertificate, removeDeliveryAddress, removeFrameContract)
  lösen Re-Fetch des Aggregats aus
- MasterdataMenu, Navigation-Erweiterung, App.tsx-Routing
This commit is contained in:
Sebastian Frick 2026-02-18 13:35:20 +01:00
parent 797f435a49
commit d27dbaa843
30 changed files with 3882 additions and 1 deletions

View file

@ -18,6 +18,10 @@ export type { TokenProvider } from './token-provider.js';
export { createAuthResource } from './resources/auth.js';
export { createUsersResource } from './resources/users.js';
export { createRolesResource } from './resources/roles.js';
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 {
ApiError,
AuthenticationError,
@ -41,11 +45,64 @@ export type {
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,
QualityCertificateDTO,
SupplierRatingDTO,
CreateSupplierRequest,
UpdateSupplierRequest,
RateSupplierRequest,
AddCertificateRequest,
RemoveCertificateRequest,
SuppliersResource,
} from './resources/suppliers.js';
export type {
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,
CustomersResource,
} from './resources/customers.js';
export { CUSTOMER_PREFERENCE_LABELS, DELIVERY_RHYTHM_LABELS } from './resources/customers.js';
import { createApiClient } from './client.js';
import { createAuthResource } from './resources/auth.js';
import { createUsersResource } from './resources/users.js';
import { createRolesResource } from './resources/roles.js';
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 type { TokenProvider } from './token-provider.js';
import type { ApiConfig } from '@effigenix/config';
@ -63,6 +120,10 @@ export function createEffigenixClient(
auth: createAuthResource(axiosClient),
users: createUsersResource(axiosClient),
roles: createRolesResource(axiosClient),
categories: createCategoriesResource(axiosClient),
suppliers: createSuppliersResource(axiosClient),
articles: createArticlesResource(axiosClient),
customers: createCustomersResource(axiosClient),
};
}