Final commit.

This commit is contained in:
Dennis Nemec
2026-06-01 17:12:28 +02:00
parent 3ecbc82885
commit a9bf8ecdd1
385 changed files with 29081 additions and 12089 deletions

View File

@ -1,44 +1,74 @@
.gitignore
.openapi-generator-ignore
README.md
analysis_options.yaml
doc/Account.md
doc/AccountsApi.md
doc/Address.md
doc/AdminApi.md
doc/ApplyScansRequest.md
doc/ApplyScansResponse.md
doc/Article.md
doc/AssignCarRequest.md
doc/AttachmentsApi.md
doc/AuditAction.md
doc/CancelDeliveryRequest.md
doc/Car.md
doc/CarResponse.md
doc/CarsApi.md
doc/CarsList.md
doc/CompleteDeliveryAcknowledgements.md
doc/ContactChannel.md
doc/ContactKind.md
doc/ContactRole.md
doc/ContactSource.md
doc/CreateCarRequest.md
doc/CreateDeliveryNoteRequest.md
doc/CreatePaymentMethodRequest.md
doc/CreateServiceRequest.md
doc/CreditAction.md
doc/Customer.md
doc/CustomerContact.md
doc/DeliveredBelegnummernResponse.md
doc/DeliveriesApi.md
doc/Delivery.md
doc/DeliveryCredit.md
doc/DeliveryCreditEventRequest.md
doc/DeliveryCreditResponse.md
doc/DeliveryItem.md
doc/DeliveryNote.md
doc/DeliveryNoteResponse.md
doc/DeliveryOrderEntry.md
doc/DeliveryResponse.md
doc/DeliveryServiceResponse.md
doc/DeliveryServiceValue.md
doc/DeliveryState.md
doc/DeliveryWithItems.md
doc/HealthApi.md
doc/HoldDeliveryRequest.md
doc/ImportSummary.md
doc/MarkMailSentRequest.md
doc/MarkMailSentResponse.md
doc/PaymentMethod.md
doc/PaymentMethodResponse.md
doc/PaymentMethodsApi.md
doc/PaymentMethodsList.md
doc/ScanEvent.md
doc/ScanResult.md
doc/ScanResultStatus.md
doc/ScanState.md
doc/ScanStatus.md
doc/ScansApi.md
doc/Service.md
doc/ServiceKind.md
doc/ServiceResponse.md
doc/ServicesApi.md
doc/ServicesList.md
doc/SetDeliveryOrderRequest.md
doc/SetDeliveryOrderResponse.md
doc/SetDeliveryServiceRequest.md
doc/SyncApi.md
doc/SyncContactChannel.md
doc/SyncContactSource.md
doc/SyncDelivery.md
doc/SyncDeliveryItem.md
doc/SyncTourRequest.md
@ -49,14 +79,21 @@ doc/TourSummary.md
doc/TourSummaryList.md
doc/ToursApi.md
doc/UpdateCarRequest.md
doc/UpdateDeliveryNoteRequest.md
doc/UpdatePaymentMethodRequest.md
doc/UpdateServiceRequest.md
doc/Warehouse.md
lib/holzleitner_api.dart
lib/src/api.dart
lib/src/api/accounts_api.dart
lib/src/api/admin_api.dart
lib/src/api/attachments_api.dart
lib/src/api/cars_api.dart
lib/src/api/deliveries_api.dart
lib/src/api/health_api.dart
lib/src/api/payment_methods_api.dart
lib/src/api/scans_api.dart
lib/src/api/services_api.dart
lib/src/api/sync_api.dart
lib/src/api/tours_api.dart
lib/src/api_util.dart
@ -77,27 +114,54 @@ lib/src/model/cancel_delivery_request.dart
lib/src/model/car.dart
lib/src/model/car_response.dart
lib/src/model/cars_list.dart
lib/src/model/complete_delivery_acknowledgements.dart
lib/src/model/contact_channel.dart
lib/src/model/contact_kind.dart
lib/src/model/contact_role.dart
lib/src/model/contact_source.dart
lib/src/model/create_car_request.dart
lib/src/model/create_delivery_note_request.dart
lib/src/model/create_payment_method_request.dart
lib/src/model/create_service_request.dart
lib/src/model/credit_action.dart
lib/src/model/customer.dart
lib/src/model/customer_contact.dart
lib/src/model/date.dart
lib/src/model/delivered_belegnummern_response.dart
lib/src/model/delivery.dart
lib/src/model/delivery_credit.dart
lib/src/model/delivery_credit_event_request.dart
lib/src/model/delivery_credit_response.dart
lib/src/model/delivery_item.dart
lib/src/model/delivery_note.dart
lib/src/model/delivery_note_response.dart
lib/src/model/delivery_order_entry.dart
lib/src/model/delivery_response.dart
lib/src/model/delivery_service_response.dart
lib/src/model/delivery_service_value.dart
lib/src/model/delivery_state.dart
lib/src/model/delivery_with_items.dart
lib/src/model/hold_delivery_request.dart
lib/src/model/import_summary.dart
lib/src/model/mark_mail_sent_request.dart
lib/src/model/mark_mail_sent_response.dart
lib/src/model/payment_method.dart
lib/src/model/payment_method_response.dart
lib/src/model/payment_methods_list.dart
lib/src/model/scan_event.dart
lib/src/model/scan_result.dart
lib/src/model/scan_result_status.dart
lib/src/model/scan_state.dart
lib/src/model/scan_status.dart
lib/src/model/service.dart
lib/src/model/service_kind.dart
lib/src/model/service_response.dart
lib/src/model/services_list.dart
lib/src/model/set_delivery_order_request.dart
lib/src/model/set_delivery_order_response.dart
lib/src/model/set_delivery_service_request.dart
lib/src/model/sync_contact_channel.dart
lib/src/model/sync_contact_source.dart
lib/src/model/sync_delivery.dart
lib/src/model/sync_delivery_item.dart
lib/src/model/sync_tour_request.dart
@ -107,54 +171,18 @@ lib/src/model/tour_details.dart
lib/src/model/tour_summary.dart
lib/src/model/tour_summary_list.dart
lib/src/model/update_car_request.dart
lib/src/model/update_delivery_note_request.dart
lib/src/model/update_payment_method_request.dart
lib/src/model/update_service_request.dart
lib/src/model/warehouse.dart
lib/src/serializers.dart
pubspec.yaml
test/account_test.dart
test/accounts_api_test.dart
test/address_test.dart
test/apply_scans_request_test.dart
test/apply_scans_response_test.dart
test/article_test.dart
test/assign_car_request_test.dart
test/audit_action_test.dart
test/cancel_delivery_request_test.dart
test/car_response_test.dart
test/car_test.dart
test/cars_api_test.dart
test/cars_list_test.dart
test/create_car_request_test.dart
test/create_delivery_note_request_test.dart
test/customer_contact_test.dart
test/customer_test.dart
test/deliveries_api_test.dart
test/delivery_item_test.dart
test/delivery_note_response_test.dart
test/delivery_note_test.dart
test/delivery_order_entry_test.dart
test/delivery_response_test.dart
test/delivery_state_test.dart
test/delivery_test.dart
test/delivery_with_items_test.dart
test/health_api_test.dart
test/hold_delivery_request_test.dart
test/scan_event_test.dart
test/scan_result_status_test.dart
test/scan_result_test.dart
test/scan_state_test.dart
test/scan_status_test.dart
test/scans_api_test.dart
test/set_delivery_order_request_test.dart
test/set_delivery_order_response_test.dart
test/sync_api_test.dart
test/sync_delivery_item_test.dart
test/sync_delivery_test.dart
test/sync_tour_request_test.dart
test/sync_tour_response_test.dart
test/tour_details_test.dart
test/tour_summary_list_test.dart
test/tour_summary_test.dart
test/tour_test.dart
test/tours_api_test.dart
test/update_car_request_test.dart
test/warehouse_test.dart
test/contact_channel_test.dart
test/contact_kind_test.dart
test/contact_role_test.dart
test/contact_source_test.dart
test/delivered_belegnummern_response_test.dart
test/mark_mail_sent_request_test.dart
test/mark_mail_sent_response_test.dart
test/sync_contact_channel_test.dart
test/sync_contact_source_test.dart

View File

@ -66,17 +66,36 @@ All URIs are relative to *http://localhost*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
[*AccountsApi*](doc/AccountsApi.md) | [**getAccount**](doc/AccountsApi.md#getaccount) | **GET** /accounts/{personalnummer} | Liest den Account zu einer Personalnummer.
[*AdminApi*](doc/AdminApi.md) | [**deliveredBelegnummern**](doc/AdminApi.md#deliveredbelegnummern) | **GET** /admin/delivered-belegnummern | Liefert die Belegnummern ausgelieferter (abgeschlossener) Lieferungen, **deren Liefermail noch nicht versendet wurde** (`mail_sent_at IS NULL`). „Ausgeliefert\" = es existiert ein Abschluss. Mit `day` (DD-MM-YYYY) nur Abschlüsse dieses Berliner Kalendertages; **ohne `day` alle offenen** (über alle Tage) — so bleiben Belege über Mitternacht nicht hängen.
[*AdminApi*](doc/AdminApi.md) | [**importErp**](doc/AdminApi.md#importerp) | **POST** /admin/import-erp | Stößt den ERP-Import für ein Datum an und liefert die Zusammenfassung.
[*AdminApi*](doc/AdminApi.md) | [**markMailSent**](doc/AdminApi.md#markmailsent) | **POST** /admin/mark-mail-sent | Markiert die Liefermails der angegebenen Belegnummern als **versendet** (`mail_sent_at = now()`, nur wo noch offen). Vom Mailclient aufzurufen, NACHDEM ERPframe die Mails erfolgreich verschickt hat — danach erscheinen die Belege nicht mehr in `GET /admin/delivered-belegnummern`.
[*AdminApi*](doc/AdminApi.md) | [**pushCompletion**](doc/AdminApi.md#pushcompletion) | **POST** /admin/push-completion | Stößt das ERP-Rückschreiben eines bereits lokal abgeschlossenen Lieferabschlusses erneut an (idempotenter Retry, falls der automatische Push beim Abschluss fehlschlug).
[*AttachmentsApi*](doc/AttachmentsApi.md) | [**getAttachment**](doc/AttachmentsApi.md#getattachment) | **GET** /attachments/{id} | Liefert ein gerendertes Vorschaubild des Attachments (Bytes), geladen aus DOCUframe. Auflösung/Format über Query-Parameter steuerbar (`?w=&h=&q=&ext=&page=`).
[*CarsApi*](doc/CarsApi.md) | [**createMyCar**](doc/CarsApi.md#createmycar) | **POST** /me/cars | Legt ein neues Fahrzeug für den angemeldeten Fahrer an.
[*CarsApi*](doc/CarsApi.md) | [**listMyCars**](doc/CarsApi.md#listmycars) | **GET** /me/cars | Listet die Fahrzeuge des angemeldeten Fahrers.
[*CarsApi*](doc/CarsApi.md) | [**updateMyCar**](doc/CarsApi.md#updatemycar) | **PATCH** /me/cars/{car_id} | Aktualisiert ein Fahrzeug (Kennzeichen ändern / deaktivieren).
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**applyCredit**](doc/DeliveriesApi.md#applycredit) | **POST** /deliveries/{delivery_id}/credit | Wendet ein Betrags-Gutschrift-Ereignis an (`set`/`remove`). Append-only, idempotent über `clientEventId`. Nur bei aktiver Lieferung; bei `set` sind Betrag (0 < x ≤ 150 €, 10-€-Schritte) und Grund Pflicht. Antwort: der aktuelle Gutschrift-Stand (`null`, wenn entfernt).
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**assignCar**](doc/DeliveriesApi.md#assigncar) | **PUT** /deliveries/{delivery_id}/assigned-car | Setzt das `assigned_car_id` einer Lieferung. `carId: null` löst die Zuordnung wieder. Der Use Case stellt sicher, dass das Fahrzeug zum angemeldeten Account gehört.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**cancel**](doc/DeliveriesApi.md#cancel) | **POST** /deliveries/{delivery_id}/cancel | Setzt die Lieferung auf `canceled` — endgültig. Erlaubt aus `active` und `held`.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**complete**](doc/DeliveriesApi.md#complete) | **POST** /deliveries/{delivery_id}/complete | Schließt die Lieferung ab — `state = completed`. Nur aus `active`.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**createNote**](doc/DeliveriesApi.md#createnote) | **POST** /deliveries/{delivery_id}/notes | Legt eine neue Notiz an einer Lieferung an. Mindestens eines von `text` und `imageAttachment` muss inhaltlich gefüllt sein (Leerstrings werden serverseitig getrimmt und als leer behandelt).
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**deleteNote**](doc/DeliveriesApi.md#deletenote) | **DELETE** /deliveries/{delivery_id}/notes/{note_id} | Löscht eine Notiz. Antwortet mit `204 No Content`.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**deleteServiceValue**](doc/DeliveriesApi.md#deleteservicevalue) | **DELETE** /deliveries/{delivery_id}/services/{service_id} | Entfernt den Service-Wert einer Lieferung (Service „nicht gesetzt\"). Nur bei aktiver Lieferung. Antwort `204`.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**hold**](doc/DeliveriesApi.md#hold) | **POST** /deliveries/{delivery_id}/hold | Setzt die Lieferung auf `held`. Nur aus `active` zulässig.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**resume**](doc/DeliveriesApi.md#resume) | **POST** /deliveries/{delivery_id}/resume | Setzt die Lieferung zurück auf `active`. Nur aus `held` zulässig.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**setService**](doc/DeliveriesApi.md#setservice) | **PUT** /deliveries/{delivery_id}/services/{service_id} | Setzt (Upsert) den Wert eines Service für eine Lieferung. Genau das zum Service-Typ passende Feld (`boolValue`/`numericValue`) muss gesetzt sein; numerische Werte werden gegen min/max geprüft. Nur bei aktiver Lieferung.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**updateNote**](doc/DeliveriesApi.md#updatenote) | **PATCH** /deliveries/{delivery_id}/notes/{note_id} | Ändert Text/Bild einer Notiz. Innerhalb des (geteilten) Accounts darf jeder Fahrer Notizen pflegen — kein Autor-Check. `delivery_id` ist Teil des Pfads (REST-Konsistenz), die Notiz wird über `note_id` adressiert.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**uploadNoteImage**](doc/DeliveriesApi.md#uploadnoteimage) | **POST** /deliveries/{delivery_id}/notes/image | Lädt ein Bild zu einer Lieferung hoch (multipart/form-data, Feld `file`) und legt dafür eine Bild-Notiz an. Das Bild geht in den DOCUframe-Dokumentenspeicher; gespeichert wird die zurückgelieferte Referenz (`~ObjectID`) als `image_attachment` der Notiz.
[*HealthApi*](doc/HealthApi.md) | [**health**](doc/HealthApi.md#health) | **GET** /health | Health-Endpoint für Load-Balancer und Container-Probes. Bewusst kein Auth — eine `200 ok`-Antwort darf nicht von der Auth abhängen.
[*PaymentMethodsApi*](doc/PaymentMethodsApi.md) | [**createPaymentMethod**](doc/PaymentMethodsApi.md#createpaymentmethod) | **POST** /payment-methods | Legt eine neue Zahlungsmethode an.
[*PaymentMethodsApi*](doc/PaymentMethodsApi.md) | [**deletePaymentMethod**](doc/PaymentMethodsApi.md#deletepaymentmethod) | **DELETE** /payment-methods/{id} | Hartes Löschen. `409 Conflict`, wenn die Methode von einer Lieferung referenziert wird — der Admin soll dann den `active = false`-Pfad nutzen.
[*PaymentMethodsApi*](doc/PaymentMethodsApi.md) | [**listPaymentMethods**](doc/PaymentMethodsApi.md#listpaymentmethods) | **GET** /payment-methods | Listet die Zahlungsmethoden.
[*PaymentMethodsApi*](doc/PaymentMethodsApi.md) | [**updatePaymentMethod**](doc/PaymentMethodsApi.md#updatepaymentmethod) | **PATCH** /payment-methods/{id} | Patcht Anzeige-Name und/oder Aktiv-Flag.
[*ScansApi*](doc/ScansApi.md) | [**applyScans**](doc/ScansApi.md#applyscans) | **POST** /scans | Wendet eine Liste von Scan-Events idempotent an.
[*ServicesApi*](doc/ServicesApi.md) | [**createService**](doc/ServicesApi.md#createservice) | **POST** /services | Legt einen neuen Service an.
[*ServicesApi*](doc/ServicesApi.md) | [**deleteService**](doc/ServicesApi.md#deleteservice) | **DELETE** /services/{id} | Hartes Löschen. `409 Conflict`, wenn der Service noch von einer Lieferung referenziert wird — dann stattdessen deaktivieren.
[*ServicesApi*](doc/ServicesApi.md) | [**listServices**](doc/ServicesApi.md#listservices) | **GET** /services | Listet die Services (sortiert nach `sortOrder`).
[*ServicesApi*](doc/ServicesApi.md) | [**updateService**](doc/ServicesApi.md#updateservice) | **PATCH** /services/{id} | Patcht Name/Grenzen/Aktiv-Flag/Sortierung. `kind` ist nicht änderbar.
[*SyncApi*](doc/SyncApi.md) | [**syncTour**](doc/SyncApi.md#synctour) | **POST** /sync/tour | Sync-Endpoint für das ERP: legt eine Tagestour samt Lieferungen und Positionen idempotent an. Identität pro Tour `(driver_personalnummer, tour_date)`, pro Lieferung `(belegart_id, belegnummer)`.
[*ToursApi*](doc/ToursApi.md) | [**getTour**](doc/ToursApi.md#gettour) | **GET** /tours/{tour_id} | Lädt eine Tour mit allen Lieferungen, Positionen und referenzierten Stammdaten — die App nutzt das als einzigen großen Read.
[*ToursApi*](doc/ToursApi.md) | [**listMyToursToday**](doc/ToursApi.md#listmytourstoday) | **GET** /me/tours/today | Listet heutige Touren des angemeldeten Fahrers (Filter aus dem JWT).
@ -96,26 +115,53 @@ Class | Method | HTTP request | Description
- [Car](doc/Car.md)
- [CarResponse](doc/CarResponse.md)
- [CarsList](doc/CarsList.md)
- [CompleteDeliveryAcknowledgements](doc/CompleteDeliveryAcknowledgements.md)
- [ContactChannel](doc/ContactChannel.md)
- [ContactKind](doc/ContactKind.md)
- [ContactRole](doc/ContactRole.md)
- [ContactSource](doc/ContactSource.md)
- [CreateCarRequest](doc/CreateCarRequest.md)
- [CreateDeliveryNoteRequest](doc/CreateDeliveryNoteRequest.md)
- [CreatePaymentMethodRequest](doc/CreatePaymentMethodRequest.md)
- [CreateServiceRequest](doc/CreateServiceRequest.md)
- [CreditAction](doc/CreditAction.md)
- [Customer](doc/Customer.md)
- [CustomerContact](doc/CustomerContact.md)
- [DeliveredBelegnummernResponse](doc/DeliveredBelegnummernResponse.md)
- [Delivery](doc/Delivery.md)
- [DeliveryCredit](doc/DeliveryCredit.md)
- [DeliveryCreditEventRequest](doc/DeliveryCreditEventRequest.md)
- [DeliveryCreditResponse](doc/DeliveryCreditResponse.md)
- [DeliveryItem](doc/DeliveryItem.md)
- [DeliveryNote](doc/DeliveryNote.md)
- [DeliveryNoteResponse](doc/DeliveryNoteResponse.md)
- [DeliveryOrderEntry](doc/DeliveryOrderEntry.md)
- [DeliveryResponse](doc/DeliveryResponse.md)
- [DeliveryServiceResponse](doc/DeliveryServiceResponse.md)
- [DeliveryServiceValue](doc/DeliveryServiceValue.md)
- [DeliveryState](doc/DeliveryState.md)
- [DeliveryWithItems](doc/DeliveryWithItems.md)
- [HoldDeliveryRequest](doc/HoldDeliveryRequest.md)
- [ImportSummary](doc/ImportSummary.md)
- [MarkMailSentRequest](doc/MarkMailSentRequest.md)
- [MarkMailSentResponse](doc/MarkMailSentResponse.md)
- [PaymentMethod](doc/PaymentMethod.md)
- [PaymentMethodResponse](doc/PaymentMethodResponse.md)
- [PaymentMethodsList](doc/PaymentMethodsList.md)
- [ScanEvent](doc/ScanEvent.md)
- [ScanResult](doc/ScanResult.md)
- [ScanResultStatus](doc/ScanResultStatus.md)
- [ScanState](doc/ScanState.md)
- [ScanStatus](doc/ScanStatus.md)
- [Service](doc/Service.md)
- [ServiceKind](doc/ServiceKind.md)
- [ServiceResponse](doc/ServiceResponse.md)
- [ServicesList](doc/ServicesList.md)
- [SetDeliveryOrderRequest](doc/SetDeliveryOrderRequest.md)
- [SetDeliveryOrderResponse](doc/SetDeliveryOrderResponse.md)
- [SetDeliveryServiceRequest](doc/SetDeliveryServiceRequest.md)
- [SyncContactChannel](doc/SyncContactChannel.md)
- [SyncContactSource](doc/SyncContactSource.md)
- [SyncDelivery](doc/SyncDelivery.md)
- [SyncDeliveryItem](doc/SyncDeliveryItem.md)
- [SyncTourRequest](doc/SyncTourRequest.md)
@ -125,6 +171,9 @@ Class | Method | HTTP request | Description
- [TourSummary](doc/TourSummary.md)
- [TourSummaryList](doc/TourSummaryList.md)
- [UpdateCarRequest](doc/UpdateCarRequest.md)
- [UpdateDeliveryNoteRequest](doc/UpdateDeliveryNoteRequest.md)
- [UpdatePaymentMethodRequest](doc/UpdatePaymentMethodRequest.md)
- [UpdateServiceRequest](doc/UpdateServiceRequest.md)
- [Warehouse](doc/Warehouse.md)
@ -132,6 +181,12 @@ Class | Method | HTTP request | Description
Authentication schemes defined for the API:
### admin_api_key
- **Type**: API key
- **API key parameter name**: X-Admin-Api-Key
- **Location**: HTTP header
### bearer_auth
- **Type**: HTTP Bearer Token authentication (JWT)

View File

@ -0,0 +1,196 @@
# holzleitner_api.api.AdminApi
## Load the API package
```dart
import 'package:holzleitner_api/api.dart';
```
All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**deliveredBelegnummern**](AdminApi.md#deliveredbelegnummern) | **GET** /admin/delivered-belegnummern | Liefert die Belegnummern ausgelieferter (abgeschlossener) Lieferungen, **deren Liefermail noch nicht versendet wurde** (`mail_sent_at IS NULL`). „Ausgeliefert\" = es existiert ein Abschluss. Mit `day` (DD-MM-YYYY) nur Abschlüsse dieses Berliner Kalendertages; **ohne `day` alle offenen** (über alle Tage) — so bleiben Belege über Mitternacht nicht hängen.
[**importErp**](AdminApi.md#importerp) | **POST** /admin/import-erp | Stößt den ERP-Import für ein Datum an und liefert die Zusammenfassung.
[**markMailSent**](AdminApi.md#markmailsent) | **POST** /admin/mark-mail-sent | Markiert die Liefermails der angegebenen Belegnummern als **versendet** (`mail_sent_at = now()`, nur wo noch offen). Vom Mailclient aufzurufen, NACHDEM ERPframe die Mails erfolgreich verschickt hat — danach erscheinen die Belege nicht mehr in `GET /admin/delivered-belegnummern`.
[**pushCompletion**](AdminApi.md#pushcompletion) | **POST** /admin/push-completion | Stößt das ERP-Rückschreiben eines bereits lokal abgeschlossenen Lieferabschlusses erneut an (idempotenter Retry, falls der automatische Push beim Abschluss fehlschlug).
# **deliveredBelegnummern**
> DeliveredBelegnummernResponse deliveredBelegnummern(day)
Liefert die Belegnummern ausgelieferter (abgeschlossener) Lieferungen, **deren Liefermail noch nicht versendet wurde** (`mail_sent_at IS NULL`). „Ausgeliefert\" = es existiert ein Abschluss. Mit `day` (DD-MM-YYYY) nur Abschlüsse dieses Berliner Kalendertages; **ohne `day` alle offenen** (über alle Tage) — so bleiben Belege über Mitternacht nicht hängen.
### Example
```dart
import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';
final api = HolzleitnerApi().getAdminApi();
final String day = day_example; // String | Tag DD-MM-YYYY; ohne Angabe ALLE offenen Belege
try {
final response = api.deliveredBelegnummern(day);
print(response);
} catch on DioException (e) {
print('Exception when calling AdminApi->deliveredBelegnummern: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**day** | **String**| Tag DD-MM-YYYY; ohne Angabe ALLE offenen Belege | [optional]
### Return type
[**DeliveredBelegnummernResponse**](DeliveredBelegnummernResponse.md)
### Authorization
[admin_api_key](../README.md#admin_api_key)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **importErp**
> ImportSummary importErp(date)
Stößt den ERP-Import für ein Datum an und liefert die Zusammenfassung.
### Example
```dart
import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';
final api = HolzleitnerApi().getAdminApi();
final String date = date_example; // String | Ziel-Tourdatum YYYY-MM-DD (Default: heute)
try {
final response = api.importErp(date);
print(response);
} catch on DioException (e) {
print('Exception when calling AdminApi->importErp: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**date** | **String**| Ziel-Tourdatum YYYY-MM-DD (Default: heute) | [optional]
### Return type
[**ImportSummary**](ImportSummary.md)
### Authorization
[admin_api_key](../README.md#admin_api_key)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **markMailSent**
> MarkMailSentResponse markMailSent(markMailSentRequest)
Markiert die Liefermails der angegebenen Belegnummern als **versendet** (`mail_sent_at = now()`, nur wo noch offen). Vom Mailclient aufzurufen, NACHDEM ERPframe die Mails erfolgreich verschickt hat — danach erscheinen die Belege nicht mehr in `GET /admin/delivered-belegnummern`.
### Example
```dart
import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';
final api = HolzleitnerApi().getAdminApi();
final MarkMailSentRequest markMailSentRequest = ; // MarkMailSentRequest |
try {
final response = api.markMailSent(markMailSentRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling AdminApi->markMailSent: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**markMailSentRequest** | [**MarkMailSentRequest**](MarkMailSentRequest.md)| |
### Return type
[**MarkMailSentResponse**](MarkMailSentResponse.md)
### Authorization
[admin_api_key](../README.md#admin_api_key)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **pushCompletion**
> pushCompletion(deliveryId)
Stößt das ERP-Rückschreiben eines bereits lokal abgeschlossenen Lieferabschlusses erneut an (idempotenter Retry, falls der automatische Push beim Abschluss fehlschlug).
### Example
```dart
import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';
final api = HolzleitnerApi().getAdminApi();
final String deliveryId = deliveryId_example; // String | UUID der abgeschlossenen Lieferung
try {
api.pushCompletion(deliveryId);
} catch on DioException (e) {
print('Exception when calling AdminApi->pushCompletion: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| UUID der abgeschlossenen Lieferung |
### Return type
void (empty response body)
### Authorization
[admin_api_key](../README.md#admin_api_key)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -0,0 +1,64 @@
# holzleitner_api.api.AttachmentsApi
## Load the API package
```dart
import 'package:holzleitner_api/api.dart';
```
All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**getAttachment**](AttachmentsApi.md#getattachment) | **GET** /attachments/{id} | Liefert ein gerendertes Vorschaubild des Attachments (Bytes), geladen aus DOCUframe. Auflösung/Format über Query-Parameter steuerbar (&#x60;?w&#x3D;&amp;h&#x3D;&amp;q&#x3D;&amp;ext&#x3D;&amp;page&#x3D;&#x60;).
# **getAttachment**
> getAttachment(id, w, h, q, ext, page)
Liefert ein gerendertes Vorschaubild des Attachments (Bytes), geladen aus DOCUframe. Auflösung/Format über Query-Parameter steuerbar (`?w=&h=&q=&ext=&page=`).
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getAttachmentsApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Attachment-Id (unsere UUID)
final int w = 56; // int | Breite in Pixeln (Default 1024)
final int h = 56; // int | Höhe in Pixeln (Default 1024)
final int q = 56; // int | Qualität 0100 (Default 85)
final String ext = ext_example; // String | png|jpeg|jpg|webp|tiff (Default jpeg)
final String page = page_example; // String | Seitennummer (Default 1)
try {
api.getAttachment(id, w, h, q, ext, page);
} catch on DioException (e) {
print('Exception when calling AttachmentsApi->getAttachment: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Attachment-Id (unsere UUID) |
**w** | **int**| Breite in Pixeln (Default 1024) | [optional]
**h** | **int**| Höhe in Pixeln (Default 1024) | [optional]
**q** | **int**| Qualität 0100 (Default 85) | [optional]
**ext** | **String**| png|jpeg|jpg|webp|tiff (Default jpeg) | [optional]
**page** | **String**| Seitennummer (Default 1) | [optional]
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: image/jpeg
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -0,0 +1,20 @@
# holzleitner_api.model.CompleteDeliveryAcknowledgements
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**acknowledgedNoteIds** | **BuiltList&lt;String&gt;** | Notiz-IDs, die zum Abschlusszeitpunkt sichtbar waren und mit-bestätigt wurden (Audit-Robustheit). | [optional]
**authorCarId** | **String** | Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören. | [optional]
**notesAcknowledged** | **bool** | „Anmerkungen zur Lieferung zur Kenntnis genommen.\" — Pflicht nur, wenn Notizen existieren (das prüft der Server). | [optional]
**paymentCollected** | **bool** | Inkasso-Bestätigung des Fahrers: „der offene Betrag wurde erhalten (bar) bzw. über das EC-Gerät abgerechnet.\" Pflicht nur, wenn beim Abschluss ein offener Betrag > 0 besteht UND die Methode ein Vor-Ort- Inkasso ist (Bar/EC) — das prüft der Server. Der kassierte Betrag wird server-seitig autoritativ berechnet (nicht vom Client übernommen). | [optional]
**paymentMethodId** | **String** | Optionale Zahlungsmethode, die der Fahrer beim Abschluss gewählt hat. `None` = die am Beleg hinterlegte Methode bleibt. Falls gesetzt, muss sie existieren **und** aktiv sein (vom Server geprüft). | [optional]
**receiptConfirmed** | **bool** | „Ware im ordnungsgemäßen Zustand erhalten / Aufbau korrekt.\" — Pflicht. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,19 @@
# holzleitner_api.model.ContactChannel
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **String** | |
**kind** | [**ContactKind**](ContactKind.md) | |
**position** | **int** | |
**sourceId** | **String** | |
**value** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,14 @@
# holzleitner_api.model.ContactKind
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,14 @@
# holzleitner_api.model.ContactRole
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,24 @@
# holzleitner_api.model.ContactSource
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**abteilung** | **String** | | [optional]
**anrede** | **String** | | [optional]
**deliveryId** | **String** | |
**funktion** | **String** | | [optional]
**id** | **String** | |
**name1** | **String** | | [optional]
**name2** | **String** | | [optional]
**name3** | **String** | | [optional]
**role** | [**ContactRole**](ContactRole.md) | |
**titel** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -9,7 +9,9 @@ import 'package:holzleitner_api/api.dart';
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**authorCarId** | **String** | Fahrzeug, das die Notiz erzeugt hat. Muss zum angemeldeten Account gehören. `None` ist erlaubt. | [optional]
**creditDeliveryItemId** | **String** | Optionaler Gutschrift-Bezug: die Belegzeile, für die diese Notiz als Gutschrift-Grund angelegt wird. Ermöglicht das gezielte Löschen beim Unremove. `None` für normale Notizen. | [optional]
**imageAttachment** | **String** | Object-Storage-Key oder URL eines vorab hochgeladenen Bildes. | [optional]
**isAmountCreditNote** | **bool** | `true` markiert die Notiz als Grund einer Betrags-Gutschrift (Lieferungs-Ebene). Default `false`. | [optional]
**text** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,16 @@
# holzleitner_api.model.CreatePaymentMethodRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**code** | **String** | Eindeutiger Programm-Identifier (z. B. `\"paypal\"`, `\"klarna\"`). |
**name** | **String** | Anzeige-Name in der UI. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,20 @@
# holzleitner_api.model.CreateServiceRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**key** | **String** | Eindeutiger Programm-Identifier (z. B. `\"podium_setup\"`). |
**kind** | [**ServiceKind**](ServiceKind.md) | |
**maxValue** | **int** | | [optional]
**minValue** | **int** | Nur bei `Numeric` sinnvoll. | [optional]
**name** | **String** | |
**sortOrder** | **int** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,14 @@
# holzleitner_api.model.CreditAction
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,17 @@
# holzleitner_api.model.DeliveredBelegnummernResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**belegnummern** | **BuiltList&lt;String&gt;** | Belegnummern aller **ausgelieferten** (abgeschlossenen) Lieferungen, deren Liefermail noch **nicht versendet** wurde, aufsteigend nach Abschluss-Zeitpunkt. |
**count** | **int** | Anzahl der offenen (noch nicht versendeten) Belege. |
**day** | **String** | Tag, nach dem gefiltert wurde (ISO `YYYY-MM-DD`), oder `\"all\"` wenn kein `day` angegeben war. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -9,14 +9,63 @@ All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**applyCredit**](DeliveriesApi.md#applycredit) | **POST** /deliveries/{delivery_id}/credit | Wendet ein Betrags-Gutschrift-Ereignis an (&#x60;set&#x60;/&#x60;remove&#x60;). Append-only, idempotent über &#x60;clientEventId&#x60;. Nur bei aktiver Lieferung; bei &#x60;set&#x60; sind Betrag (0 &lt; x ≤ 150 €, 10-€-Schritte) und Grund Pflicht. Antwort: der aktuelle Gutschrift-Stand (&#x60;null&#x60;, wenn entfernt).
[**assignCar**](DeliveriesApi.md#assigncar) | **PUT** /deliveries/{delivery_id}/assigned-car | Setzt das &#x60;assigned_car_id&#x60; einer Lieferung. &#x60;carId: null&#x60; löst die Zuordnung wieder. Der Use Case stellt sicher, dass das Fahrzeug zum angemeldeten Account gehört.
[**cancel**](DeliveriesApi.md#cancel) | **POST** /deliveries/{delivery_id}/cancel | Setzt die Lieferung auf &#x60;canceled&#x60; — endgültig. Erlaubt aus &#x60;active&#x60; und &#x60;held&#x60;.
[**complete**](DeliveriesApi.md#complete) | **POST** /deliveries/{delivery_id}/complete | Schließt die Lieferung ab — &#x60;state &#x3D; completed&#x60;. Nur aus &#x60;active&#x60;.
[**createNote**](DeliveriesApi.md#createnote) | **POST** /deliveries/{delivery_id}/notes | Legt eine neue Notiz an einer Lieferung an. Mindestens eines von &#x60;text&#x60; und &#x60;imageAttachment&#x60; muss inhaltlich gefüllt sein (Leerstrings werden serverseitig getrimmt und als leer behandelt).
[**deleteNote**](DeliveriesApi.md#deletenote) | **DELETE** /deliveries/{delivery_id}/notes/{note_id} | Löscht eine Notiz. Antwortet mit &#x60;204 No Content&#x60;.
[**deleteServiceValue**](DeliveriesApi.md#deleteservicevalue) | **DELETE** /deliveries/{delivery_id}/services/{service_id} | Entfernt den Service-Wert einer Lieferung (Service „nicht gesetzt\&quot;). Nur bei aktiver Lieferung. Antwort &#x60;204&#x60;.
[**hold**](DeliveriesApi.md#hold) | **POST** /deliveries/{delivery_id}/hold | Setzt die Lieferung auf &#x60;held&#x60;. Nur aus &#x60;active&#x60; zulässig.
[**resume**](DeliveriesApi.md#resume) | **POST** /deliveries/{delivery_id}/resume | Setzt die Lieferung zurück auf &#x60;active&#x60;. Nur aus &#x60;held&#x60; zulässig.
[**setService**](DeliveriesApi.md#setservice) | **PUT** /deliveries/{delivery_id}/services/{service_id} | Setzt (Upsert) den Wert eines Service für eine Lieferung. Genau das zum Service-Typ passende Feld (&#x60;boolValue&#x60;/&#x60;numericValue&#x60;) muss gesetzt sein; numerische Werte werden gegen min/max geprüft. Nur bei aktiver Lieferung.
[**updateNote**](DeliveriesApi.md#updatenote) | **PATCH** /deliveries/{delivery_id}/notes/{note_id} | Ändert Text/Bild einer Notiz. Innerhalb des (geteilten) Accounts darf jeder Fahrer Notizen pflegen — kein Autor-Check. &#x60;delivery_id&#x60; ist Teil des Pfads (REST-Konsistenz), die Notiz wird über &#x60;note_id&#x60; adressiert.
[**uploadNoteImage**](DeliveriesApi.md#uploadnoteimage) | **POST** /deliveries/{delivery_id}/notes/image | Lädt ein Bild zu einer Lieferung hoch (multipart/form-data, Feld &#x60;file&#x60;) und legt dafür eine Bild-Notiz an. Das Bild geht in den DOCUframe-Dokumentenspeicher; gespeichert wird die zurückgelieferte Referenz (&#x60;~ObjectID&#x60;) als &#x60;image_attachment&#x60; der Notiz.
# **applyCredit**
> DeliveryCreditResponse applyCredit(deliveryId, deliveryCreditEventRequest)
Wendet ein Betrags-Gutschrift-Ereignis an (`set`/`remove`). Append-only, idempotent über `clientEventId`. Nur bei aktiver Lieferung; bei `set` sind Betrag (0 < x 150 €, 10--Schritte) und Grund Pflicht. Antwort: der aktuelle Gutschrift-Stand (`null`, wenn entfernt).
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final DeliveryCreditEventRequest deliveryCreditEventRequest = ; // DeliveryCreditEventRequest |
try {
final response = api.applyCredit(deliveryId, deliveryCreditEventRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->applyCredit: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**deliveryCreditEventRequest** | [**DeliveryCreditEventRequest**](DeliveryCreditEventRequest.md)| |
### Return type
[**DeliveryCreditResponse**](DeliveryCreditResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **assignCar**
> DeliveryResponse assignCar(deliveryId, assignCarRequest)
@ -108,6 +157,8 @@ Name | Type | Description | Notes
Schließt die Lieferung ab `state = completed`. Nur aus `active`.
`multipart/form-data` mit drei Feldern: * `customer_signature` — PNG der Kunden-Unterschrift (Pflicht) * `driver_signature` PNG der Fahrer-Unterschrift (Pflicht) * `acknowledgements` JSON (`CompleteDeliveryAcknowledgements`): `receiptConfirmed` (Pflicht true), `notesAcknowledged`, `acknowledgedNoteIds`, `authorCarId`. Atomar: Signaturen werden lokal gespeichert, die Abschluss-Zeile geschrieben und der Status auf `completed` gesetzt alles oder nichts. Gates: Lieferung aktiv, alle scanbaren Positionen fertig, Notizen bestätigt (falls vorhanden).
### Example
```dart
import 'package:holzleitner_api/api.dart';
@ -139,7 +190,7 @@ Name | Type | Description | Notes
### HTTP request headers
- **Content-Type**: Not defined
- **Content-Type**: multipart/form-data
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@ -187,6 +238,90 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **deleteNote**
> deleteNote(deliveryId, noteId)
Löscht eine Notiz. Antwortet mit `204 No Content`.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final String noteId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
try {
api.deleteNote(deliveryId, noteId);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->deleteNote: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**noteId** | **String**| |
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **deleteServiceValue**
> deleteServiceValue(deliveryId, serviceId)
Entfernt den Service-Wert einer Lieferung (Service nicht gesetzt\"). Nur bei aktiver Lieferung. Antwort `204`.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final String serviceId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
try {
api.deleteServiceValue(deliveryId, serviceId);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->deleteServiceValue: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**serviceId** | **String**| |
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **hold**
> DeliveryResponse hold(deliveryId, holdDeliveryRequest)
@ -271,3 +406,134 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **setService**
> DeliveryServiceResponse setService(deliveryId, serviceId, setDeliveryServiceRequest)
Setzt (Upsert) den Wert eines Service für eine Lieferung. Genau das zum Service-Typ passende Feld (`boolValue`/`numericValue`) muss gesetzt sein; numerische Werte werden gegen min/max geprüft. Nur bei aktiver Lieferung.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final String serviceId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final SetDeliveryServiceRequest setDeliveryServiceRequest = ; // SetDeliveryServiceRequest |
try {
final response = api.setService(deliveryId, serviceId, setDeliveryServiceRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->setService: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**serviceId** | **String**| |
**setDeliveryServiceRequest** | [**SetDeliveryServiceRequest**](SetDeliveryServiceRequest.md)| |
### Return type
[**DeliveryServiceResponse**](DeliveryServiceResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **updateNote**
> DeliveryNoteResponse updateNote(deliveryId, noteId, updateDeliveryNoteRequest)
Ändert Text/Bild einer Notiz. Innerhalb des (geteilten) Accounts darf jeder Fahrer Notizen pflegen kein Autor-Check. `delivery_id` ist Teil des Pfads (REST-Konsistenz), die Notiz wird über `note_id` adressiert.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final String noteId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final UpdateDeliveryNoteRequest updateDeliveryNoteRequest = ; // UpdateDeliveryNoteRequest |
try {
final response = api.updateNote(deliveryId, noteId, updateDeliveryNoteRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->updateNote: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**noteId** | **String**| |
**updateDeliveryNoteRequest** | [**UpdateDeliveryNoteRequest**](UpdateDeliveryNoteRequest.md)| |
### Return type
[**DeliveryNoteResponse**](DeliveryNoteResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **uploadNoteImage**
> DeliveryNoteResponse uploadNoteImage(deliveryId)
Lädt ein Bild zu einer Lieferung hoch (multipart/form-data, Feld `file`) und legt dafür eine Bild-Notiz an. Das Bild geht in den DOCUframe-Dokumentenspeicher; gespeichert wird die zurückgelieferte Referenz (`~ObjectID`) als `image_attachment` der Notiz.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
try {
final response = api.uploadNoteImage(deliveryId);
print(response);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->uploadNoteImage: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
### Return type
[**DeliveryNoteResponse**](DeliveryNoteResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: multipart/form-data
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -16,6 +16,8 @@ Name | Type | Description | Notes
**erpBelegartId** | **int** | ERP-Beleg-Bezug: business-stabiles Paar `(Belegart, Belegnummer)`. Überlebt den Belegkopf-Archivübergang. |
**erpBelegnummer** | **String** | |
**id** | **String** | |
**paymentMethodId** | **String** | Für den Restbetrag gewählte Zahlungsart — FK auf `payment_methods`. Vom Kunden bei Bestellung festgelegt, der Fahrer übernimmt nur die Abwicklung. Aktiv-Flag und Anzeige-Name werden über die Stammdaten-Tabelle aufgelöst, nicht hier embeddet. |
**prepaidAmount** | **double** | Bei Bestellung schon bezahlter Betrag in EUR. `0.0` wenn der Kunde alles bei Lieferung zahlt. Wird vom ERP-Sync gefüllt. |
**specialAgreements** | **String** | Sondervereinbarungen (z. B. „Türklingel defekt, hintenrum klopfen\"). | [optional]
**state** | [**DeliveryState**](DeliveryState.md) | |
**stateReason** | **String** | Begründung bei `state == Held` oder `state == Canceled`. Beim Resume / Complete wieder `None`. | [optional]

View File

@ -0,0 +1,17 @@
# holzleitner_api.model.DeliveryCredit
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**amountCents** | **int** | Gutschrift-Betrag in Cent (> 0, ≤ 15000). |
**deliveryId** | **String** | |
**reason** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,19 @@
# holzleitner_api.model.DeliveryCreditEventRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**action** | [**CreditAction**](CreditAction.md) | |
**amountCents** | **int** | Bei `Set` Pflicht: Betrag in Cent (> 0, ≤ 15000, Vielfaches von 1000). | [optional]
**authorCarId** | **String** | Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören. | [optional]
**clientEventId** | **String** | Idempotenz-Schlüssel — pro erzeugtem Ereignis genau einmal vergeben. Ein Retry mit derselben Id wendet nichts erneut an. |
**reason** | **String** | Bei `Set` Pflicht: Begründung. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.DeliveryCreditResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**credit** | [**DeliveryCredit**](DeliveryCredit.md) | Aktueller Stand nach dem Ereignis — `None`, wenn (zuletzt) entfernt. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -13,8 +13,10 @@ Name | Type | Description | Notes
**deliveryId** | **String** | |
**id** | **String** | |
**komponentenArtikelNr** | **String** | Bei Items aus einer Stückliste: Artikelnummer der Komponente. Bei regulären Belegzeilen: `None`. | [optional]
**parentArtikelNr** | **String** | Artikelnummer des Oberartikels, zu dem diese Komponente gehört. `None` bei Oberartikeln/regulären Zeilen — die App rückt Komponenten darüber unter ihrem Oberartikel ein. | [optional]
**requiredQuantity** | **int** | |
**scanState** | [**ScanState**](ScanState.md) | |
**unitPrice** | **double** | Stückpreis (brutto, EUR) aus dem ERP-Sync. Der Warenwert einer Lieferung = Σ `unit_price` × ausgelieferte Menge. |
**warehouseId** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -11,9 +11,12 @@ Name | Type | Description | Notes
**authorCarId** | **String** | Fahrzeug, falls bekannt — nullable bis das Backend Cars verwaltet. | [optional]
**authorPersonalnummer** | **int** | Personalnummer des Akteurs (aus dem JWT). Pflicht. |
**createdAt** | [**DateTime**](DateTime.md) | |
**creditDeliveryItemId** | **String** | Wenn die Notiz als Gutschrift-Grund zu einer Belegzeile angelegt wurde: deren `DeliveryItem`-Id. Erlaubt dem Client, die Notiz beim Zurücknehmen der Gutschrift (Unremove) gezielt wieder zu löschen. `None` bei normalen Text-/Foto-Notizen. | [optional]
**deliveryId** | **String** | |
**id** | **String** | |
**imageAttachment** | **String** | Referenz auf einen Bild-Anhang (z. B. Object-Storage-Key/URL). | [optional]
**imageAttachmentDeleted** | **bool** | `true`, wenn die lokale Bilddatei nach erfolgreichem Report-Upload gelöscht wurde (das Bild steckt nun im Lieferbericht in DOCUframe). Read-only; die App zeigt dann statt der Vorschau einen Hinweis. Bei Text-Notizen / vorhandenem Bild: `false`. | [optional]
**isAmountCreditNote** | **bool** | `true`, wenn die Notiz den Grund einer **Betrags-Gutschrift** (Geld-Nachlass, Lieferungs-Ebene) dokumentiert. Erlaubt dem Client, sie beim Entfernen der Gutschrift gezielt zu löschen. |
**text** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.DeliveryServiceResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**value** | [**DeliveryServiceValue**](DeliveryServiceValue.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,18 @@
# holzleitner_api.model.DeliveryServiceValue
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**boolValue** | **bool** | | [optional]
**deliveryId** | **String** | |
**numericValue** | **int** | | [optional]
**serviceId** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -16,6 +16,8 @@ Name | Type | Description | Notes
**erpBelegartId** | **int** | ERP-Beleg-Bezug: business-stabiles Paar `(Belegart, Belegnummer)`. Überlebt den Belegkopf-Archivübergang. |
**erpBelegnummer** | **String** | |
**id** | **String** | |
**paymentMethodId** | **String** | Für den Restbetrag gewählte Zahlungsart — FK auf `payment_methods`. Vom Kunden bei Bestellung festgelegt, der Fahrer übernimmt nur die Abwicklung. Aktiv-Flag und Anzeige-Name werden über die Stammdaten-Tabelle aufgelöst, nicht hier embeddet. |
**prepaidAmount** | **double** | Bei Bestellung schon bezahlter Betrag in EUR. `0.0` wenn der Kunde alles bei Lieferung zahlt. Wird vom ERP-Sync gefüllt. |
**specialAgreements** | **String** | Sondervereinbarungen (z. B. „Türklingel defekt, hintenrum klopfen\"). | [optional]
**state** | [**DeliveryState**](DeliveryState.md) | |
**stateReason** | **String** | Begründung bei `state == Held` oder `state == Canceled`. Beim Resume / Complete wieder `None`. | [optional]

View File

@ -0,0 +1,21 @@
# holzleitner_api.model.ImportSummary
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**date** | [**Date**](Date.md) | |
**driversProvisioned** | **int** | Anzahl der **neu** im Identity-Provider (Keycloak) angelegten Fahrer-Konten in diesem Lauf (0, wenn Provisionierung deaktiviert ist oder alle Konten bereits existierten). | [optional]
**errors** | **BuiltList&lt;String&gt;** | Fehlertexte je fehlgeschlagener Fahrer-Tour (z. B. unbekannter Fahrer → FK auf `accounts`, oder Validierungsfehler). |
**provisioningErrors** | **BuiltList&lt;String&gt;** | Fehlertexte der Konto-Provisionierung (Keycloak). Best-effort: ein Fehler hier blockiert den Touren-Import **nicht**. | [optional]
**toursFailed** | **int** | |
**toursOk** | **int** | |
**toursTotal** | **int** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.MarkMailSentRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**belegnummern** | **BuiltList&lt;String&gt;** | Belegnummern, deren Liefermail erfolgreich versendet wurde und die als versendet markiert werden sollen. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.MarkMailSentResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**marked** | **int** | Anzahl frisch markierter (vorher offener) Belege. Bereits markierte zählen nicht mit (idempotent). |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,19 @@
# holzleitner_api.model.PaymentMethod
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**active** | **bool** | |
**code** | **String** | Stabiler Programm-Identifier — z. B. `\"cash\"`, `\"ec_card\"`. Eindeutig pro Eintrag. Wird vom Aufrufer beim Anlegen gesetzt. |
**createdAt** | [**DateTime**](DateTime.md) | |
**id** | **String** | |
**name** | **String** | Display-Name in der UI — frei via PATCH änderbar. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.PaymentMethodResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**method** | [**PaymentMethod**](PaymentMethod.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,182 @@
# holzleitner_api.api.PaymentMethodsApi
## Load the API package
```dart
import 'package:holzleitner_api/api.dart';
```
All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**createPaymentMethod**](PaymentMethodsApi.md#createpaymentmethod) | **POST** /payment-methods | Legt eine neue Zahlungsmethode an.
[**deletePaymentMethod**](PaymentMethodsApi.md#deletepaymentmethod) | **DELETE** /payment-methods/{id} | Hartes Löschen. &#x60;409 Conflict&#x60;, wenn die Methode von einer Lieferung referenziert wird — der Admin soll dann den &#x60;active &#x3D; false&#x60;-Pfad nutzen.
[**listPaymentMethods**](PaymentMethodsApi.md#listpaymentmethods) | **GET** /payment-methods | Listet die Zahlungsmethoden.
[**updatePaymentMethod**](PaymentMethodsApi.md#updatepaymentmethod) | **PATCH** /payment-methods/{id} | Patcht Anzeige-Name und/oder Aktiv-Flag.
# **createPaymentMethod**
> PaymentMethodResponse createPaymentMethod(createPaymentMethodRequest)
Legt eine neue Zahlungsmethode an.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getPaymentMethodsApi();
final CreatePaymentMethodRequest createPaymentMethodRequest = ; // CreatePaymentMethodRequest |
try {
final response = api.createPaymentMethod(createPaymentMethodRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling PaymentMethodsApi->createPaymentMethod: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**createPaymentMethodRequest** | [**CreatePaymentMethodRequest**](CreatePaymentMethodRequest.md)| |
### Return type
[**PaymentMethodResponse**](PaymentMethodResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **deletePaymentMethod**
> deletePaymentMethod(id)
Hartes Löschen. `409 Conflict`, wenn die Methode von einer Lieferung referenziert wird — der Admin soll dann den `active = false`-Pfad nutzen.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getPaymentMethodsApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Zahlungsmethoden-Id
try {
api.deletePaymentMethod(id);
} catch on DioException (e) {
print('Exception when calling PaymentMethodsApi->deletePaymentMethod: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Zahlungsmethoden-Id |
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **listPaymentMethods**
> PaymentMethodsList listPaymentMethods(includeInactive)
Listet die Zahlungsmethoden.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getPaymentMethodsApi();
final bool includeInactive = true; // bool | Wenn true, werden inaktive Methoden mitgeliefert (default: false)
try {
final response = api.listPaymentMethods(includeInactive);
print(response);
} catch on DioException (e) {
print('Exception when calling PaymentMethodsApi->listPaymentMethods: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**includeInactive** | **bool**| Wenn true, werden inaktive Methoden mitgeliefert (default: false) | [optional]
### Return type
[**PaymentMethodsList**](PaymentMethodsList.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **updatePaymentMethod**
> PaymentMethodResponse updatePaymentMethod(id, updatePaymentMethodRequest)
Patcht Anzeige-Name und/oder Aktiv-Flag.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getPaymentMethodsApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Zahlungsmethoden-Id
final UpdatePaymentMethodRequest updatePaymentMethodRequest = ; // UpdatePaymentMethodRequest |
try {
final response = api.updatePaymentMethod(id, updatePaymentMethodRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling PaymentMethodsApi->updatePaymentMethod: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Zahlungsmethoden-Id |
**updatePaymentMethodRequest** | [**UpdatePaymentMethodRequest**](UpdatePaymentMethodRequest.md)| |
### Return type
[**PaymentMethodResponse**](PaymentMethodResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.PaymentMethodsList
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**methods** | [**BuiltList&lt;PaymentMethod&gt;**](PaymentMethod.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -13,6 +13,8 @@ Name | Type | Description | Notes
**clientScanId** | **String** | |
**clientScannedAt** | [**DateTime**](DateTime.md) | |
**deliveryItemId** | **String** | |
**manual** | **bool** | `true`, wenn der Fahrer die Position **manuell** als geladen bestätigt hat (Fallback ohne Barcode-Scan). Wird nur im Audit (`scan_audit.manual`) festgehalten; an der Mengen-/Status-Logik ändert es nichts. Default `false` (regulärer Barcode-Scan). | [optional]
**quantity** | **int** | Menge für `Remove` / `Unremove` (Mengen-Gutschrift): wie viele Stück der Belegzeile gutgeschrieben bzw. wieder hergestellt werden. `None` = ganze Restmenge (abwärtskompatibel zum bisherigen „ganze Zeile entfernen\"). Bei `Scan`/`Unscan`/`Hold`/`Unhold` ignoriert. Muss, wenn gesetzt, `> 0` sein. | [optional]
**reason** | **String** | Pflicht bei `Hold` und `Remove`. Sonst ignoriert. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -8,6 +8,7 @@ import 'package:holzleitner_api/api.dart';
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**creditedQuantity** | **int** | Als Gutschrift entfernte Menge (0..=required_quantity). Eigene Dimension neben `scanned_quantity`: „wie viele Stück dieser Zeile hat der Kunde nicht angenommen\". `status == Removed` entspricht `credited_quantity == required_quantity` (ganze Zeile gutgeschrieben). |
**heldReason** | **String** | Grund bei `status == Held` oder `status == Removed`. | [optional]
**lastUpdatedAt** | [**DateTime**](DateTime.md) | |
**scannedQuantity** | **int** | |

View File

@ -0,0 +1,22 @@
# holzleitner_api.model.Service
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**active** | **bool** | |
**id** | **String** | |
**key** | **String** | |
**kind** | [**ServiceKind**](ServiceKind.md) | |
**maxValue** | **int** | | [optional]
**minValue** | **int** | | [optional]
**name** | **String** | |
**sortOrder** | **int** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,14 @@
# holzleitner_api.model.ServiceKind
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.ServiceResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**service** | [**Service**](Service.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,182 @@
# holzleitner_api.api.ServicesApi
## Load the API package
```dart
import 'package:holzleitner_api/api.dart';
```
All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**createService**](ServicesApi.md#createservice) | **POST** /services | Legt einen neuen Service an.
[**deleteService**](ServicesApi.md#deleteservice) | **DELETE** /services/{id} | Hartes Löschen. &#x60;409 Conflict&#x60;, wenn der Service noch von einer Lieferung referenziert wird — dann stattdessen deaktivieren.
[**listServices**](ServicesApi.md#listservices) | **GET** /services | Listet die Services (sortiert nach &#x60;sortOrder&#x60;).
[**updateService**](ServicesApi.md#updateservice) | **PATCH** /services/{id} | Patcht Name/Grenzen/Aktiv-Flag/Sortierung. &#x60;kind&#x60; ist nicht änderbar.
# **createService**
> ServiceResponse createService(createServiceRequest)
Legt einen neuen Service an.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getServicesApi();
final CreateServiceRequest createServiceRequest = ; // CreateServiceRequest |
try {
final response = api.createService(createServiceRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling ServicesApi->createService: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**createServiceRequest** | [**CreateServiceRequest**](CreateServiceRequest.md)| |
### Return type
[**ServiceResponse**](ServiceResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **deleteService**
> deleteService(id)
Hartes Löschen. `409 Conflict`, wenn der Service noch von einer Lieferung referenziert wird — dann stattdessen deaktivieren.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getServicesApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Service-Id
try {
api.deleteService(id);
} catch on DioException (e) {
print('Exception when calling ServicesApi->deleteService: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Service-Id |
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **listServices**
> ServicesList listServices(includeInactive)
Listet die Services (sortiert nach `sortOrder`).
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getServicesApi();
final bool includeInactive = true; // bool | Wenn true, werden inaktive Services mitgeliefert (default: false)
try {
final response = api.listServices(includeInactive);
print(response);
} catch on DioException (e) {
print('Exception when calling ServicesApi->listServices: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**includeInactive** | **bool**| Wenn true, werden inaktive Services mitgeliefert (default: false) | [optional]
### Return type
[**ServicesList**](ServicesList.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **updateService**
> ServiceResponse updateService(id, updateServiceRequest)
Patcht Name/Grenzen/Aktiv-Flag/Sortierung. `kind` ist nicht änderbar.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getServicesApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Service-Id
final UpdateServiceRequest updateServiceRequest = ; // UpdateServiceRequest |
try {
final response = api.updateService(id, updateServiceRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling ServicesApi->updateService: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Service-Id |
**updateServiceRequest** | [**UpdateServiceRequest**](UpdateServiceRequest.md)| |
### Return type
[**ServiceResponse**](ServiceResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.ServicesList
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**services** | [**BuiltList&lt;Service&gt;**](Service.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,17 @@
# holzleitner_api.model.SetDeliveryServiceRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**authorCarId** | **String** | | [optional]
**boolValue** | **bool** | | [optional]
**numericValue** | **int** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,17 @@
# holzleitner_api.model.SyncContactChannel
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**kind** | [**ContactKind**](ContactKind.md) | |
**position** | **int** | 1-basiert: spiegelt ERP-Spaltenposition (Telefon → 1, Telefon2 → 2, …). |
**value** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,23 @@
# holzleitner_api.model.SyncContactSource
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**abteilung** | **String** | | [optional]
**anrede** | **String** | | [optional]
**channels** | [**BuiltList&lt;SyncContactChannel&gt;**](SyncContactChannel.md) | | [optional]
**funktion** | **String** | | [optional]
**name1** | **String** | | [optional]
**name2** | **String** | | [optional]
**name3** | **String** | | [optional]
**role** | [**ContactRole**](ContactRole.md) | |
**titel** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -8,14 +8,19 @@ import 'package:holzleitner_api/api.dart';
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**belegartCode** | **String** | Belegart-Kurzcode (z. B. „VL5\"), aus `Belegarten.Belegart` (getrimmt). | [optional]
**belegartId** | **int** | |
**belegartName** | **String** | Belegart-Klartext (z. B. „Lieferschein EH\"), aus `Belegarten.Bezeichnung`. | [optional]
**belegnummer** | **String** | |
**contactSources** | [**BuiltList&lt;SyncContactSource&gt;**](SyncContactSource.md) | Alle vom ERP an diesem Beleg hängenden Kontakt-Adressen (Beleg-/ Liefer-/Rechnungsadresse, Ansprechpartner, Kundenstamm). Leere Quellen (kein einziger ausgefüllter Kanal *und* kein Name) lässt der Sync weg. | [optional]
**customerAddress** | [**Address**](Address.md) | |
**customerName** | **String** | |
**deliveryAddress** | [**Address**](Address.md) | Snapshot der Lieferadresse (kann von der Stammadresse abweichen). |
**desiredTime** | **String** | | [optional]
**erpCustomerId** | **int** | |
**items** | [**BuiltList&lt;SyncDeliveryItem&gt;**](SyncDeliveryItem.md) | |
**paymentMethodCode** | **String** | Für den Restbetrag gewählte Zahlungsart — Referenz per `code` (z. B. `\"cash\"`, `\"invoice\"`). Das ERP kennt seine Standard-Codes, der Sync-Code resolvet sie zur UUID. Wenn `None`, fällt der Backend-Code auf `\"cash\"` zurück. | [optional]
**prepaidAmount** | **double** | Bei Bestellung schon bezahlter Betrag in EUR. Default `0.0`, wenn der Kunde alles bei Lieferung zahlt. Der ERP-Sync liefert den Wert mit. | [optional]
**sortOrder** | **int** | 1-basiert, definiert die initiale Reihenfolge in der App. |
**specialAgreements** | **String** | | [optional]

View File

@ -13,8 +13,10 @@ Name | Type | Description | Notes
**articleNumber** | **String** | |
**articleScannable** | **bool** | |
**belegzeilenNr** | **int** | |
**komponentenArtikelNr** | **String** | Komponenten-Artikelnummer bei aufgelösten Stücklisten, sonst leer. | [optional]
**komponentenArtikelNr** | **String** | Komponenten-Artikelnummer bei aufgelösten Stücklisten, sonst leer. Trägt die **eigene** Nummer der Komponente (eindeutig je Belegzeile). | [optional]
**parentArtikelNr** | **String** | Artikelnummer des **Oberartikels**, zu dem diese Komponente gehört. `None` bei Oberartikeln/regulären Zeilen. Erlaubt der App, Komponenten unter ihrem Oberartikel einzurücken. | [optional]
**requiredQuantity** | **int** | |
**unitPrice** | **double** | Stückpreis (brutto, EUR). Default `0.0`. Liefert der ERP-Sync mit; die App rechnet daraus den Warenwert. | [optional]
**warehouseCode** | **String** | |
**warehouseName** | **String** | |

View File

@ -9,10 +9,15 @@ import 'package:holzleitner_api/api.dart';
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**articles** | [**BuiltList&lt;Article&gt;**](Article.md) | |
**contactChannels** | [**BuiltList&lt;ContactChannel&gt;**](ContactChannel.md) | Die zu `contact_sources` gehörenden Einzel-Kanäle (Telefon, Mobil, E-Mail, Web). Join per `source_id`. |
**contactSources** | [**BuiltList&lt;ContactSource&gt;**](ContactSource.md) | Alle vom ERP gespiegelten Kontaktquellen aller Lieferungen dieser Tour. Die App joint clientseitig per `delivery_id` und gruppiert nach `role` (Lieferadresse / Rechnungsadresse / Ansprechpartner / Kundenstamm / Belegadresse). |
**credits** | [**BuiltList&lt;DeliveryCredit&gt;**](DeliveryCredit.md) | Aktuelle Betrags-Gutschriften (jüngster Stand pro Lieferung), nur für Lieferungen, deren letztes Ereignis `set` war. Join per `delivery_id`. |
**customerContacts** | [**BuiltList&lt;CustomerContact&gt;**](CustomerContact.md) | |
**customers** | [**BuiltList&lt;Customer&gt;**](Customer.md) | |
**deliveries** | [**BuiltList&lt;DeliveryWithItems&gt;**](DeliveryWithItems.md) | |
**deliveryServices** | [**BuiltList&lt;DeliveryServiceValue&gt;**](DeliveryServiceValue.md) | Pro-Lieferung gesetzte Service-Werte. Join per `delivery_id` + `service_id`. |
**notes** | [**BuiltList&lt;DeliveryNote&gt;**](DeliveryNote.md) | Alle Notizen aller Lieferungen dieser Tour, in einer Liste. Die App joint clientseitig per `delivery_id`. Reihenfolge: pro Lieferung aufsteigend nach `created_at`. |
**services** | [**BuiltList&lt;Service&gt;**](Service.md) | Aktive Service-Definitionen (Stammdaten) — die App rendert daraus Phase 4. Bewusst hier mitgeliefert, damit die Detailseite alles aus dem Tour-Aggregat hat. |
**tour** | [**Tour**](Tour.md) | |
**warehouses** | [**BuiltList&lt;Warehouse&gt;**](Warehouse.md) | |

View File

@ -0,0 +1,16 @@
# holzleitner_api.model.UpdateDeliveryNoteRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**imageAttachment** | **String** | Object-Storage-Key oder URL eines vorab hochgeladenen Bildes. | [optional]
**text** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,16 @@
# holzleitner_api.model.UpdatePaymentMethodRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**active** | **bool** | Wenn gesetzt: aktiv/inaktiv. Inaktive Methoden bleiben für historische Lieferungen referenzierbar, tauchen aber im Default-Listing nicht auf. | [optional]
**name** | **String** | Wenn gesetzt: neuer Anzeige-Name. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,19 @@
# holzleitner_api.model.UpdateServiceRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**active** | **bool** | | [optional]
**maxValue** | **int** | | [optional]
**minValue** | **int** | | [optional]
**name** | **String** | | [optional]
**sortOrder** | **int** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -11,10 +11,14 @@ export 'package:holzleitner_api/src/serializers.dart';
export 'package:holzleitner_api/src/model/date.dart';
export 'package:holzleitner_api/src/api/accounts_api.dart';
export 'package:holzleitner_api/src/api/admin_api.dart';
export 'package:holzleitner_api/src/api/attachments_api.dart';
export 'package:holzleitner_api/src/api/cars_api.dart';
export 'package:holzleitner_api/src/api/deliveries_api.dart';
export 'package:holzleitner_api/src/api/health_api.dart';
export 'package:holzleitner_api/src/api/payment_methods_api.dart';
export 'package:holzleitner_api/src/api/scans_api.dart';
export 'package:holzleitner_api/src/api/services_api.dart';
export 'package:holzleitner_api/src/api/sync_api.dart';
export 'package:holzleitner_api/src/api/tours_api.dart';
@ -29,26 +33,53 @@ export 'package:holzleitner_api/src/model/cancel_delivery_request.dart';
export 'package:holzleitner_api/src/model/car.dart';
export 'package:holzleitner_api/src/model/car_response.dart';
export 'package:holzleitner_api/src/model/cars_list.dart';
export 'package:holzleitner_api/src/model/complete_delivery_acknowledgements.dart';
export 'package:holzleitner_api/src/model/contact_channel.dart';
export 'package:holzleitner_api/src/model/contact_kind.dart';
export 'package:holzleitner_api/src/model/contact_role.dart';
export 'package:holzleitner_api/src/model/contact_source.dart';
export 'package:holzleitner_api/src/model/create_car_request.dart';
export 'package:holzleitner_api/src/model/create_delivery_note_request.dart';
export 'package:holzleitner_api/src/model/create_payment_method_request.dart';
export 'package:holzleitner_api/src/model/create_service_request.dart';
export 'package:holzleitner_api/src/model/credit_action.dart';
export 'package:holzleitner_api/src/model/customer.dart';
export 'package:holzleitner_api/src/model/customer_contact.dart';
export 'package:holzleitner_api/src/model/delivered_belegnummern_response.dart';
export 'package:holzleitner_api/src/model/delivery.dart';
export 'package:holzleitner_api/src/model/delivery_credit.dart';
export 'package:holzleitner_api/src/model/delivery_credit_event_request.dart';
export 'package:holzleitner_api/src/model/delivery_credit_response.dart';
export 'package:holzleitner_api/src/model/delivery_item.dart';
export 'package:holzleitner_api/src/model/delivery_note.dart';
export 'package:holzleitner_api/src/model/delivery_note_response.dart';
export 'package:holzleitner_api/src/model/delivery_order_entry.dart';
export 'package:holzleitner_api/src/model/delivery_response.dart';
export 'package:holzleitner_api/src/model/delivery_service_response.dart';
export 'package:holzleitner_api/src/model/delivery_service_value.dart';
export 'package:holzleitner_api/src/model/delivery_state.dart';
export 'package:holzleitner_api/src/model/delivery_with_items.dart';
export 'package:holzleitner_api/src/model/hold_delivery_request.dart';
export 'package:holzleitner_api/src/model/import_summary.dart';
export 'package:holzleitner_api/src/model/mark_mail_sent_request.dart';
export 'package:holzleitner_api/src/model/mark_mail_sent_response.dart';
export 'package:holzleitner_api/src/model/payment_method.dart';
export 'package:holzleitner_api/src/model/payment_method_response.dart';
export 'package:holzleitner_api/src/model/payment_methods_list.dart';
export 'package:holzleitner_api/src/model/scan_event.dart';
export 'package:holzleitner_api/src/model/scan_result.dart';
export 'package:holzleitner_api/src/model/scan_result_status.dart';
export 'package:holzleitner_api/src/model/scan_state.dart';
export 'package:holzleitner_api/src/model/scan_status.dart';
export 'package:holzleitner_api/src/model/service.dart';
export 'package:holzleitner_api/src/model/service_kind.dart';
export 'package:holzleitner_api/src/model/service_response.dart';
export 'package:holzleitner_api/src/model/services_list.dart';
export 'package:holzleitner_api/src/model/set_delivery_order_request.dart';
export 'package:holzleitner_api/src/model/set_delivery_order_response.dart';
export 'package:holzleitner_api/src/model/set_delivery_service_request.dart';
export 'package:holzleitner_api/src/model/sync_contact_channel.dart';
export 'package:holzleitner_api/src/model/sync_contact_source.dart';
export 'package:holzleitner_api/src/model/sync_delivery.dart';
export 'package:holzleitner_api/src/model/sync_delivery_item.dart';
export 'package:holzleitner_api/src/model/sync_tour_request.dart';
@ -58,5 +89,8 @@ export 'package:holzleitner_api/src/model/tour_details.dart';
export 'package:holzleitner_api/src/model/tour_summary.dart';
export 'package:holzleitner_api/src/model/tour_summary_list.dart';
export 'package:holzleitner_api/src/model/update_car_request.dart';
export 'package:holzleitner_api/src/model/update_delivery_note_request.dart';
export 'package:holzleitner_api/src/model/update_payment_method_request.dart';
export 'package:holzleitner_api/src/model/update_service_request.dart';
export 'package:holzleitner_api/src/model/warehouse.dart';

View File

@ -10,10 +10,14 @@ import 'package:holzleitner_api/src/auth/basic_auth.dart';
import 'package:holzleitner_api/src/auth/bearer_auth.dart';
import 'package:holzleitner_api/src/auth/oauth.dart';
import 'package:holzleitner_api/src/api/accounts_api.dart';
import 'package:holzleitner_api/src/api/admin_api.dart';
import 'package:holzleitner_api/src/api/attachments_api.dart';
import 'package:holzleitner_api/src/api/cars_api.dart';
import 'package:holzleitner_api/src/api/deliveries_api.dart';
import 'package:holzleitner_api/src/api/health_api.dart';
import 'package:holzleitner_api/src/api/payment_methods_api.dart';
import 'package:holzleitner_api/src/api/scans_api.dart';
import 'package:holzleitner_api/src/api/services_api.dart';
import 'package:holzleitner_api/src/api/sync_api.dart';
import 'package:holzleitner_api/src/api/tours_api.dart';
@ -77,6 +81,18 @@ class HolzleitnerApi {
return AccountsApi(dio, serializers);
}
/// Get AdminApi instance, base route and serializer can be overridden by a given but be careful,
/// by doing that all interceptors will not be executed
AdminApi getAdminApi() {
return AdminApi(dio, serializers);
}
/// Get AttachmentsApi instance, base route and serializer can be overridden by a given but be careful,
/// by doing that all interceptors will not be executed
AttachmentsApi getAttachmentsApi() {
return AttachmentsApi(dio, serializers);
}
/// Get CarsApi instance, base route and serializer can be overridden by a given but be careful,
/// by doing that all interceptors will not be executed
CarsApi getCarsApi() {
@ -95,12 +111,24 @@ class HolzleitnerApi {
return HealthApi(dio, serializers);
}
/// Get PaymentMethodsApi instance, base route and serializer can be overridden by a given but be careful,
/// by doing that all interceptors will not be executed
PaymentMethodsApi getPaymentMethodsApi() {
return PaymentMethodsApi(dio, serializers);
}
/// Get ScansApi instance, base route and serializer can be overridden by a given but be careful,
/// by doing that all interceptors will not be executed
ScansApi getScansApi() {
return ScansApi(dio, serializers);
}
/// Get ServicesApi instance, base route and serializer can be overridden by a given but be careful,
/// by doing that all interceptors will not be executed
ServicesApi getServicesApi() {
return ServicesApi(dio, serializers);
}
/// Get SyncApi instance, base route and serializer can be overridden by a given but be careful,
/// by doing that all interceptors will not be executed
SyncApi getSyncApi() {

View File

@ -0,0 +1,360 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
import 'dart:async';
import 'package:built_value/json_object.dart';
import 'package:built_value/serializer.dart';
import 'package:dio/dio.dart';
import 'package:holzleitner_api/src/api_util.dart';
import 'package:holzleitner_api/src/model/delivered_belegnummern_response.dart';
import 'package:holzleitner_api/src/model/import_summary.dart';
import 'package:holzleitner_api/src/model/mark_mail_sent_request.dart';
import 'package:holzleitner_api/src/model/mark_mail_sent_response.dart';
class AdminApi {
final Dio _dio;
final Serializers _serializers;
const AdminApi(this._dio, this._serializers);
/// Liefert die Belegnummern ausgelieferter (abgeschlossener) Lieferungen, **deren Liefermail noch nicht versendet wurde** (&#x60;mail_sent_at IS NULL&#x60;). „Ausgeliefert\&quot; &#x3D; es existiert ein Abschluss. Mit &#x60;day&#x60; (DD-MM-YYYY) nur Abschlüsse dieses Berliner Kalendertages; **ohne &#x60;day&#x60; alle offenen** (über alle Tage) — so bleiben Belege über Mitternacht nicht hängen.
///
///
/// Parameters:
/// * [day] - Tag DD-MM-YYYY; ohne Angabe ALLE offenen Belege
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [DeliveredBelegnummernResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<DeliveredBelegnummernResponse>> deliveredBelegnummern({
String? day,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/admin/delivered-belegnummern';
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'admin_api_key',
'keyName': 'X-Admin-Api-Key',
'where': 'header',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
if (day != null) r'day': encodeQueryParameter(_serializers, day, const FullType(String)),
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
DeliveredBelegnummernResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(DeliveredBelegnummernResponse),
) as DeliveredBelegnummernResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<DeliveredBelegnummernResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Stößt den ERP-Import für ein Datum an und liefert die Zusammenfassung.
///
///
/// Parameters:
/// * [date] - Ziel-Tourdatum YYYY-MM-DD (Default: heute)
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [ImportSummary] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<ImportSummary>> importErp({
String? date,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/admin/import-erp';
final _options = Options(
method: r'POST',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'admin_api_key',
'keyName': 'X-Admin-Api-Key',
'where': 'header',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
if (date != null) r'date': encodeQueryParameter(_serializers, date, const FullType(String)),
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
ImportSummary? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(ImportSummary),
) as ImportSummary;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<ImportSummary>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Markiert die Liefermails der angegebenen Belegnummern als **versendet** (&#x60;mail_sent_at &#x3D; now()&#x60;, nur wo noch offen). Vom Mailclient aufzurufen, NACHDEM ERPframe die Mails erfolgreich verschickt hat — danach erscheinen die Belege nicht mehr in &#x60;GET /admin/delivered-belegnummern&#x60;.
///
///
/// Parameters:
/// * [markMailSentRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [MarkMailSentResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<MarkMailSentResponse>> markMailSent({
required MarkMailSentRequest markMailSentRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/admin/mark-mail-sent';
final _options = Options(
method: r'POST',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'admin_api_key',
'keyName': 'X-Admin-Api-Key',
'where': 'header',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(MarkMailSentRequest);
_bodyData = _serializers.serialize(markMailSentRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
MarkMailSentResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(MarkMailSentResponse),
) as MarkMailSentResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<MarkMailSentResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Stößt das ERP-Rückschreiben eines bereits lokal abgeschlossenen Lieferabschlusses erneut an (idempotenter Retry, falls der automatische Push beim Abschluss fehlschlug).
///
///
/// Parameters:
/// * [deliveryId] - UUID der abgeschlossenen Lieferung
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future]
/// Throws [DioException] if API call or serialization fails
Future<Response<void>> pushCompletion({
required String deliveryId,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/admin/push-completion';
final _options = Options(
method: r'POST',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'admin_api_key',
'keyName': 'X-Admin-Api-Key',
'where': 'header',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
r'delivery_id': encodeQueryParameter(_serializers, deliveryId, const FullType(String)),
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
return _response;
}
}

View File

@ -0,0 +1,93 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
import 'dart:async';
import 'package:built_value/json_object.dart';
import 'package:built_value/serializer.dart';
import 'package:dio/dio.dart';
import 'package:holzleitner_api/src/api_util.dart';
class AttachmentsApi {
final Dio _dio;
final Serializers _serializers;
const AttachmentsApi(this._dio, this._serializers);
/// Liefert ein gerendertes Vorschaubild des Attachments (Bytes), geladen aus DOCUframe. Auflösung/Format über Query-Parameter steuerbar (&#x60;?w&#x3D;&amp;h&#x3D;&amp;q&#x3D;&amp;ext&#x3D;&amp;page&#x3D;&#x60;).
///
///
/// Parameters:
/// * [id] - Attachment-Id (unsere UUID)
/// * [w] - Breite in Pixeln (Default 1024)
/// * [h] - Höhe in Pixeln (Default 1024)
/// * [q] - Qualität 0100 (Default 85)
/// * [ext] - png|jpeg|jpg|webp|tiff (Default jpeg)
/// * [page] - Seitennummer (Default 1)
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future]
/// Throws [DioException] if API call or serialization fails
Future<Response<void>> getAttachment({
required String id,
int? w,
int? h,
int? q,
String? ext,
String? page,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/attachments/{id}'.replaceAll('{' r'id' '}', encodeQueryParameter(_serializers, id, const FullType(String)).toString());
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
if (w != null) r'w': encodeQueryParameter(_serializers, w, const FullType(int)),
if (h != null) r'h': encodeQueryParameter(_serializers, h, const FullType(int)),
if (q != null) r'q': encodeQueryParameter(_serializers, q, const FullType(int)),
if (ext != null) r'ext': encodeQueryParameter(_serializers, ext, const FullType(String)),
if (page != null) r'page': encodeQueryParameter(_serializers, page, const FullType(String)),
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
return _response;
}
}

View File

@ -12,9 +12,14 @@ import 'package:holzleitner_api/src/api_util.dart';
import 'package:holzleitner_api/src/model/assign_car_request.dart';
import 'package:holzleitner_api/src/model/cancel_delivery_request.dart';
import 'package:holzleitner_api/src/model/create_delivery_note_request.dart';
import 'package:holzleitner_api/src/model/delivery_credit_event_request.dart';
import 'package:holzleitner_api/src/model/delivery_credit_response.dart';
import 'package:holzleitner_api/src/model/delivery_note_response.dart';
import 'package:holzleitner_api/src/model/delivery_response.dart';
import 'package:holzleitner_api/src/model/delivery_service_response.dart';
import 'package:holzleitner_api/src/model/hold_delivery_request.dart';
import 'package:holzleitner_api/src/model/set_delivery_service_request.dart';
import 'package:holzleitner_api/src/model/update_delivery_note_request.dart';
class DeliveriesApi {
@ -24,6 +29,109 @@ class DeliveriesApi {
const DeliveriesApi(this._dio, this._serializers);
/// Wendet ein Betrags-Gutschrift-Ereignis an (&#x60;set&#x60;/&#x60;remove&#x60;). Append-only, idempotent über &#x60;clientEventId&#x60;. Nur bei aktiver Lieferung; bei &#x60;set&#x60; sind Betrag (0 &lt; x ≤ 150 €, 10-€-Schritte) und Grund Pflicht. Antwort: der aktuelle Gutschrift-Stand (&#x60;null&#x60;, wenn entfernt).
///
///
/// Parameters:
/// * [deliveryId]
/// * [deliveryCreditEventRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [DeliveryCreditResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<DeliveryCreditResponse>> applyCredit({
required String deliveryId,
required DeliveryCreditEventRequest deliveryCreditEventRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/deliveries/{delivery_id}/credit'.replaceAll('{' r'delivery_id' '}', encodeQueryParameter(_serializers, deliveryId, const FullType(String)).toString());
final _options = Options(
method: r'POST',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(DeliveryCreditEventRequest);
_bodyData = _serializers.serialize(deliveryCreditEventRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
DeliveryCreditResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(DeliveryCreditResponse),
) as DeliveryCreditResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<DeliveryCreditResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Setzt das &#x60;assigned_car_id&#x60; einer Lieferung. &#x60;carId: null&#x60; löst die Zuordnung wieder. Der Use Case stellt sicher, dass das Fahrzeug zum angemeldeten Account gehört.
///
///
@ -231,7 +339,7 @@ class DeliveriesApi {
}
/// Schließt die Lieferung ab — &#x60;state &#x3D; completed&#x60;. Nur aus &#x60;active&#x60;.
///
/// &#x60;multipart/form-data&#x60; mit drei Feldern: * &#x60;customer_signature&#x60; — PNG der Kunden-Unterschrift (Pflicht) * &#x60;driver_signature&#x60; — PNG der Fahrer-Unterschrift (Pflicht) * &#x60;acknowledgements&#x60; — JSON (&#x60;CompleteDeliveryAcknowledgements&#x60;): &#x60;receiptConfirmed&#x60; (Pflicht true), &#x60;notesAcknowledged&#x60;, &#x60;acknowledgedNoteIds&#x60;, &#x60;authorCarId&#x60;. Atomar: Signaturen werden lokal gespeichert, die Abschluss-Zeile geschrieben und der Status auf &#x60;completed&#x60; gesetzt — alles oder nichts. Gates: Lieferung aktiv, alle scanbaren Positionen fertig, Notizen bestätigt (falls vorhanden).
///
/// Parameters:
/// * [deliveryId]
@ -269,6 +377,7 @@ class DeliveriesApi {
],
...?extra,
},
contentType: 'multipart/form-data',
validateStatus: validateStatus,
);
@ -414,6 +523,116 @@ class DeliveriesApi {
);
}
/// Löscht eine Notiz. Antwortet mit &#x60;204 No Content&#x60;.
///
///
/// Parameters:
/// * [deliveryId]
/// * [noteId]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future]
/// Throws [DioException] if API call or serialization fails
Future<Response<void>> deleteNote({
required String deliveryId,
required String noteId,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/deliveries/{delivery_id}/notes/{note_id}'.replaceAll('{' r'delivery_id' '}', encodeQueryParameter(_serializers, deliveryId, const FullType(String)).toString()).replaceAll('{' r'note_id' '}', encodeQueryParameter(_serializers, noteId, const FullType(String)).toString());
final _options = Options(
method: r'DELETE',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _response = await _dio.request<Object>(
_path,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
return _response;
}
/// Entfernt den Service-Wert einer Lieferung (Service „nicht gesetzt\&quot;). Nur bei aktiver Lieferung. Antwort &#x60;204&#x60;.
///
///
/// Parameters:
/// * [deliveryId]
/// * [serviceId]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future]
/// Throws [DioException] if API call or serialization fails
Future<Response<void>> deleteServiceValue({
required String deliveryId,
required String serviceId,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/deliveries/{delivery_id}/services/{service_id}'.replaceAll('{' r'delivery_id' '}', encodeQueryParameter(_serializers, deliveryId, const FullType(String)).toString()).replaceAll('{' r'service_id' '}', encodeQueryParameter(_serializers, serviceId, const FullType(String)).toString());
final _options = Options(
method: r'DELETE',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _response = await _dio.request<Object>(
_path,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
return _response;
}
/// Setzt die Lieferung auf &#x60;held&#x60;. Nur aus &#x60;active&#x60; zulässig.
///
///
@ -598,4 +817,296 @@ class DeliveriesApi {
);
}
/// Setzt (Upsert) den Wert eines Service für eine Lieferung. Genau das zum Service-Typ passende Feld (&#x60;boolValue&#x60;/&#x60;numericValue&#x60;) muss gesetzt sein; numerische Werte werden gegen min/max geprüft. Nur bei aktiver Lieferung.
///
///
/// Parameters:
/// * [deliveryId]
/// * [serviceId]
/// * [setDeliveryServiceRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [DeliveryServiceResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<DeliveryServiceResponse>> setService({
required String deliveryId,
required String serviceId,
required SetDeliveryServiceRequest setDeliveryServiceRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/deliveries/{delivery_id}/services/{service_id}'.replaceAll('{' r'delivery_id' '}', encodeQueryParameter(_serializers, deliveryId, const FullType(String)).toString()).replaceAll('{' r'service_id' '}', encodeQueryParameter(_serializers, serviceId, const FullType(String)).toString());
final _options = Options(
method: r'PUT',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(SetDeliveryServiceRequest);
_bodyData = _serializers.serialize(setDeliveryServiceRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
DeliveryServiceResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(DeliveryServiceResponse),
) as DeliveryServiceResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<DeliveryServiceResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Ändert Text/Bild einer Notiz. Innerhalb des (geteilten) Accounts darf jeder Fahrer Notizen pflegen — kein Autor-Check. &#x60;delivery_id&#x60; ist Teil des Pfads (REST-Konsistenz), die Notiz wird über &#x60;note_id&#x60; adressiert.
///
///
/// Parameters:
/// * [deliveryId]
/// * [noteId]
/// * [updateDeliveryNoteRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [DeliveryNoteResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<DeliveryNoteResponse>> updateNote({
required String deliveryId,
required String noteId,
required UpdateDeliveryNoteRequest updateDeliveryNoteRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/deliveries/{delivery_id}/notes/{note_id}'.replaceAll('{' r'delivery_id' '}', encodeQueryParameter(_serializers, deliveryId, const FullType(String)).toString()).replaceAll('{' r'note_id' '}', encodeQueryParameter(_serializers, noteId, const FullType(String)).toString());
final _options = Options(
method: r'PATCH',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(UpdateDeliveryNoteRequest);
_bodyData = _serializers.serialize(updateDeliveryNoteRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
DeliveryNoteResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(DeliveryNoteResponse),
) as DeliveryNoteResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<DeliveryNoteResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Lädt ein Bild zu einer Lieferung hoch (multipart/form-data, Feld &#x60;file&#x60;) und legt dafür eine Bild-Notiz an. Das Bild geht in den DOCUframe-Dokumentenspeicher; gespeichert wird die zurückgelieferte Referenz (&#x60;~ObjectID&#x60;) als &#x60;image_attachment&#x60; der Notiz.
///
///
/// Parameters:
/// * [deliveryId]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [DeliveryNoteResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<DeliveryNoteResponse>> uploadNoteImage({
required String deliveryId,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/deliveries/{delivery_id}/notes/image'.replaceAll('{' r'delivery_id' '}', encodeQueryParameter(_serializers, deliveryId, const FullType(String)).toString());
final _options = Options(
method: r'POST',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
contentType: 'multipart/form-data',
validateStatus: validateStatus,
);
final _response = await _dio.request<Object>(
_path,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
DeliveryNoteResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(DeliveryNoteResponse),
) as DeliveryNoteResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<DeliveryNoteResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
}

View File

@ -0,0 +1,368 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
import 'dart:async';
import 'package:built_value/json_object.dart';
import 'package:built_value/serializer.dart';
import 'package:dio/dio.dart';
import 'package:holzleitner_api/src/api_util.dart';
import 'package:holzleitner_api/src/model/create_payment_method_request.dart';
import 'package:holzleitner_api/src/model/payment_method_response.dart';
import 'package:holzleitner_api/src/model/payment_methods_list.dart';
import 'package:holzleitner_api/src/model/update_payment_method_request.dart';
class PaymentMethodsApi {
final Dio _dio;
final Serializers _serializers;
const PaymentMethodsApi(this._dio, this._serializers);
/// Legt eine neue Zahlungsmethode an.
///
///
/// Parameters:
/// * [createPaymentMethodRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [PaymentMethodResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<PaymentMethodResponse>> createPaymentMethod({
required CreatePaymentMethodRequest createPaymentMethodRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/payment-methods';
final _options = Options(
method: r'POST',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(CreatePaymentMethodRequest);
_bodyData = _serializers.serialize(createPaymentMethodRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
PaymentMethodResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(PaymentMethodResponse),
) as PaymentMethodResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<PaymentMethodResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Hartes Löschen. &#x60;409 Conflict&#x60;, wenn die Methode von einer Lieferung referenziert wird — der Admin soll dann den &#x60;active &#x3D; false&#x60;-Pfad nutzen.
///
///
/// Parameters:
/// * [id] - Zahlungsmethoden-Id
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future]
/// Throws [DioException] if API call or serialization fails
Future<Response<void>> deletePaymentMethod({
required String id,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/payment-methods/{id}'.replaceAll('{' r'id' '}', encodeQueryParameter(_serializers, id, const FullType(String)).toString());
final _options = Options(
method: r'DELETE',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _response = await _dio.request<Object>(
_path,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
return _response;
}
/// Listet die Zahlungsmethoden.
///
///
/// Parameters:
/// * [includeInactive] - Wenn true, werden inaktive Methoden mitgeliefert (default: false)
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [PaymentMethodsList] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<PaymentMethodsList>> listPaymentMethods({
bool? includeInactive,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/payment-methods';
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
if (includeInactive != null) r'includeInactive': encodeQueryParameter(_serializers, includeInactive, const FullType(bool)),
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
PaymentMethodsList? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(PaymentMethodsList),
) as PaymentMethodsList;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<PaymentMethodsList>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Patcht Anzeige-Name und/oder Aktiv-Flag.
///
///
/// Parameters:
/// * [id] - Zahlungsmethoden-Id
/// * [updatePaymentMethodRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [PaymentMethodResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<PaymentMethodResponse>> updatePaymentMethod({
required String id,
required UpdatePaymentMethodRequest updatePaymentMethodRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/payment-methods/{id}'.replaceAll('{' r'id' '}', encodeQueryParameter(_serializers, id, const FullType(String)).toString());
final _options = Options(
method: r'PATCH',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(UpdatePaymentMethodRequest);
_bodyData = _serializers.serialize(updatePaymentMethodRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
PaymentMethodResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(PaymentMethodResponse),
) as PaymentMethodResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<PaymentMethodResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
}

View File

@ -0,0 +1,368 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
import 'dart:async';
import 'package:built_value/json_object.dart';
import 'package:built_value/serializer.dart';
import 'package:dio/dio.dart';
import 'package:holzleitner_api/src/api_util.dart';
import 'package:holzleitner_api/src/model/create_service_request.dart';
import 'package:holzleitner_api/src/model/service_response.dart';
import 'package:holzleitner_api/src/model/services_list.dart';
import 'package:holzleitner_api/src/model/update_service_request.dart';
class ServicesApi {
final Dio _dio;
final Serializers _serializers;
const ServicesApi(this._dio, this._serializers);
/// Legt einen neuen Service an.
///
///
/// Parameters:
/// * [createServiceRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [ServiceResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<ServiceResponse>> createService({
required CreateServiceRequest createServiceRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/services';
final _options = Options(
method: r'POST',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(CreateServiceRequest);
_bodyData = _serializers.serialize(createServiceRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
ServiceResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(ServiceResponse),
) as ServiceResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<ServiceResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Hartes Löschen. &#x60;409 Conflict&#x60;, wenn der Service noch von einer Lieferung referenziert wird — dann stattdessen deaktivieren.
///
///
/// Parameters:
/// * [id] - Service-Id
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future]
/// Throws [DioException] if API call or serialization fails
Future<Response<void>> deleteService({
required String id,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/services/{id}'.replaceAll('{' r'id' '}', encodeQueryParameter(_serializers, id, const FullType(String)).toString());
final _options = Options(
method: r'DELETE',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _response = await _dio.request<Object>(
_path,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
return _response;
}
/// Listet die Services (sortiert nach &#x60;sortOrder&#x60;).
///
///
/// Parameters:
/// * [includeInactive] - Wenn true, werden inaktive Services mitgeliefert (default: false)
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [ServicesList] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<ServicesList>> listServices({
bool? includeInactive,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/services';
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
if (includeInactive != null) r'includeInactive': encodeQueryParameter(_serializers, includeInactive, const FullType(bool)),
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
ServicesList? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(ServicesList),
) as ServicesList;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<ServicesList>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Patcht Name/Grenzen/Aktiv-Flag/Sortierung. &#x60;kind&#x60; ist nicht änderbar.
///
///
/// Parameters:
/// * [id] - Service-Id
/// * [updateServiceRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [ServiceResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<ServiceResponse>> updateService({
required String id,
required UpdateServiceRequest updateServiceRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/services/{id}'.replaceAll('{' r'id' '}', encodeQueryParameter(_serializers, id, const FullType(String)).toString());
final _options = Options(
method: r'PATCH',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(UpdateServiceRequest);
_bodyData = _serializers.serialize(updateServiceRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
ServiceResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(ServiceResponse),
) as ServiceResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<ServiceResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
}

View File

@ -11,21 +11,24 @@ part 'audit_action.g.dart';
class AuditAction extends EnumClass {
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt).
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt). * `Unremove` hebt ein `Remove` wieder auf — die Position landet zurück in `InProgress` (oder `Done`, falls die `scanned_quantity` schon `required_quantity` erreicht hatte). Der ursprüngliche `Remove`-Audit-Eintrag bleibt unangetastet; das `Unremove` erzeugt einen eigenen Audit-Eintrag — die Historie bleibt vollständig.
@BuiltValueEnumConst(wireName: r'scan')
static const AuditAction scan = _$scan;
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt).
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt). * `Unremove` hebt ein `Remove` wieder auf — die Position landet zurück in `InProgress` (oder `Done`, falls die `scanned_quantity` schon `required_quantity` erreicht hatte). Der ursprüngliche `Remove`-Audit-Eintrag bleibt unangetastet; das `Unremove` erzeugt einen eigenen Audit-Eintrag — die Historie bleibt vollständig.
@BuiltValueEnumConst(wireName: r'unscan')
static const AuditAction unscan = _$unscan;
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt).
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt). * `Unremove` hebt ein `Remove` wieder auf — die Position landet zurück in `InProgress` (oder `Done`, falls die `scanned_quantity` schon `required_quantity` erreicht hatte). Der ursprüngliche `Remove`-Audit-Eintrag bleibt unangetastet; das `Unremove` erzeugt einen eigenen Audit-Eintrag — die Historie bleibt vollständig.
@BuiltValueEnumConst(wireName: r'hold')
static const AuditAction hold = _$hold;
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt).
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt). * `Unremove` hebt ein `Remove` wieder auf — die Position landet zurück in `InProgress` (oder `Done`, falls die `scanned_quantity` schon `required_quantity` erreicht hatte). Der ursprüngliche `Remove`-Audit-Eintrag bleibt unangetastet; das `Unremove` erzeugt einen eigenen Audit-Eintrag — die Historie bleibt vollständig.
@BuiltValueEnumConst(wireName: r'unhold')
static const AuditAction unhold = _$unhold;
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt).
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt). * `Unremove` hebt ein `Remove` wieder auf — die Position landet zurück in `InProgress` (oder `Done`, falls die `scanned_quantity` schon `required_quantity` erreicht hatte). Der ursprüngliche `Remove`-Audit-Eintrag bleibt unangetastet; das `Unremove` erzeugt einen eigenen Audit-Eintrag — die Historie bleibt vollständig.
@BuiltValueEnumConst(wireName: r'remove')
static const AuditAction remove = _$remove;
/// Aktion-Typen im Scan-Audit-Log. * `Scan` / `Unscan` verändern die `scanned_quantity` (+1 / -1). * `Hold` / `Unhold` ändern nur den Status, keine Menge. * `Remove` markiert die Position als entfernt (Status `Removed`, z. B. weil der Kunde sie nicht annimmt). * `Unremove` hebt ein `Remove` wieder auf — die Position landet zurück in `InProgress` (oder `Done`, falls die `scanned_quantity` schon `required_quantity` erreicht hatte). Der ursprüngliche `Remove`-Audit-Eintrag bleibt unangetastet; das `Unremove` erzeugt einen eigenen Audit-Eintrag — die Historie bleibt vollständig.
@BuiltValueEnumConst(wireName: r'unremove')
static const AuditAction unremove = _$unremove;
static Serializer<AuditAction> get serializer => _$auditActionSerializer;

View File

@ -11,6 +11,7 @@ const AuditAction _$unscan = const AuditAction._('unscan');
const AuditAction _$hold = const AuditAction._('hold');
const AuditAction _$unhold = const AuditAction._('unhold');
const AuditAction _$remove = const AuditAction._('remove');
const AuditAction _$unremove = const AuditAction._('unremove');
AuditAction _$valueOf(String name) {
switch (name) {
@ -24,6 +25,8 @@ AuditAction _$valueOf(String name) {
return _$unhold;
case 'remove':
return _$remove;
case 'unremove':
return _$unremove;
default:
throw ArgumentError(name);
}
@ -36,6 +39,7 @@ final BuiltSet<AuditAction> _$values =
_$hold,
_$unhold,
_$remove,
_$unremove,
]);
class _$AuditActionMeta {
@ -45,6 +49,7 @@ class _$AuditActionMeta {
AuditAction get hold => _$hold;
AuditAction get unhold => _$unhold;
AuditAction get remove => _$remove;
AuditAction get unremove => _$unremove;
AuditAction valueOf(String name) => _$valueOf(name);
BuiltSet<AuditAction> get values => _$values;
}
@ -63,6 +68,7 @@ class _$AuditActionSerializer implements PrimitiveSerializer<AuditAction> {
'hold': 'hold',
'unhold': 'unhold',
'remove': 'remove',
'unremove': 'unremove',
};
static const Map<Object, String> _fromWire = const <Object, String>{
'scan': 'scan',
@ -70,6 +76,7 @@ class _$AuditActionSerializer implements PrimitiveSerializer<AuditAction> {
'hold': 'hold',
'unhold': 'unhold',
'remove': 'remove',
'unremove': 'unremove',
};
@override

View File

@ -0,0 +1,205 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'complete_delivery_acknowledgements.g.dart';
/// Dokumentierte Bestätigungen des Kunden zum Abschlusszeitpunkt.
///
/// Properties:
/// * [acknowledgedNoteIds] - Notiz-IDs, die zum Abschlusszeitpunkt sichtbar waren und mit-bestätigt wurden (Audit-Robustheit).
/// * [authorCarId] - Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören.
/// * [notesAcknowledged] - „Anmerkungen zur Lieferung zur Kenntnis genommen.\" — Pflicht nur, wenn Notizen existieren (das prüft der Server).
/// * [paymentCollected] - Inkasso-Bestätigung des Fahrers: „der offene Betrag wurde erhalten (bar) bzw. über das EC-Gerät abgerechnet.\" Pflicht nur, wenn beim Abschluss ein offener Betrag > 0 besteht UND die Methode ein Vor-Ort- Inkasso ist (Bar/EC) — das prüft der Server. Der kassierte Betrag wird server-seitig autoritativ berechnet (nicht vom Client übernommen).
/// * [paymentMethodId] - Optionale Zahlungsmethode, die der Fahrer beim Abschluss gewählt hat. `None` = die am Beleg hinterlegte Methode bleibt. Falls gesetzt, muss sie existieren **und** aktiv sein (vom Server geprüft).
/// * [receiptConfirmed] - „Ware im ordnungsgemäßen Zustand erhalten / Aufbau korrekt.\" — Pflicht.
@BuiltValue()
abstract class CompleteDeliveryAcknowledgements implements Built<CompleteDeliveryAcknowledgements, CompleteDeliveryAcknowledgementsBuilder> {
/// Notiz-IDs, die zum Abschlusszeitpunkt sichtbar waren und mit-bestätigt wurden (Audit-Robustheit).
@BuiltValueField(wireName: r'acknowledgedNoteIds')
BuiltList<String>? get acknowledgedNoteIds;
/// Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören.
@BuiltValueField(wireName: r'authorCarId')
String? get authorCarId;
/// „Anmerkungen zur Lieferung zur Kenntnis genommen.\" — Pflicht nur, wenn Notizen existieren (das prüft der Server).
@BuiltValueField(wireName: r'notesAcknowledged')
bool? get notesAcknowledged;
/// Inkasso-Bestätigung des Fahrers: „der offene Betrag wurde erhalten (bar) bzw. über das EC-Gerät abgerechnet.\" Pflicht nur, wenn beim Abschluss ein offener Betrag > 0 besteht UND die Methode ein Vor-Ort- Inkasso ist (Bar/EC) — das prüft der Server. Der kassierte Betrag wird server-seitig autoritativ berechnet (nicht vom Client übernommen).
@BuiltValueField(wireName: r'paymentCollected')
bool? get paymentCollected;
/// Optionale Zahlungsmethode, die der Fahrer beim Abschluss gewählt hat. `None` = die am Beleg hinterlegte Methode bleibt. Falls gesetzt, muss sie existieren **und** aktiv sein (vom Server geprüft).
@BuiltValueField(wireName: r'paymentMethodId')
String? get paymentMethodId;
/// „Ware im ordnungsgemäßen Zustand erhalten / Aufbau korrekt.\" — Pflicht.
@BuiltValueField(wireName: r'receiptConfirmed')
bool get receiptConfirmed;
CompleteDeliveryAcknowledgements._();
factory CompleteDeliveryAcknowledgements([void updates(CompleteDeliveryAcknowledgementsBuilder b)]) = _$CompleteDeliveryAcknowledgements;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(CompleteDeliveryAcknowledgementsBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<CompleteDeliveryAcknowledgements> get serializer => _$CompleteDeliveryAcknowledgementsSerializer();
}
class _$CompleteDeliveryAcknowledgementsSerializer implements PrimitiveSerializer<CompleteDeliveryAcknowledgements> {
@override
final Iterable<Type> types = const [CompleteDeliveryAcknowledgements, _$CompleteDeliveryAcknowledgements];
@override
final String wireName = r'CompleteDeliveryAcknowledgements';
Iterable<Object?> _serializeProperties(
Serializers serializers,
CompleteDeliveryAcknowledgements object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
if (object.acknowledgedNoteIds != null) {
yield r'acknowledgedNoteIds';
yield serializers.serialize(
object.acknowledgedNoteIds,
specifiedType: const FullType(BuiltList, [FullType(String)]),
);
}
if (object.authorCarId != null) {
yield r'authorCarId';
yield serializers.serialize(
object.authorCarId,
specifiedType: const FullType.nullable(String),
);
}
if (object.notesAcknowledged != null) {
yield r'notesAcknowledged';
yield serializers.serialize(
object.notesAcknowledged,
specifiedType: const FullType(bool),
);
}
if (object.paymentCollected != null) {
yield r'paymentCollected';
yield serializers.serialize(
object.paymentCollected,
specifiedType: const FullType(bool),
);
}
if (object.paymentMethodId != null) {
yield r'paymentMethodId';
yield serializers.serialize(
object.paymentMethodId,
specifiedType: const FullType.nullable(String),
);
}
yield r'receiptConfirmed';
yield serializers.serialize(
object.receiptConfirmed,
specifiedType: const FullType(bool),
);
}
@override
Object serialize(
Serializers serializers,
CompleteDeliveryAcknowledgements object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required CompleteDeliveryAcknowledgementsBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'acknowledgedNoteIds':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(String)]),
) as BuiltList<String>;
result.acknowledgedNoteIds.replace(valueDes);
break;
case r'authorCarId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.authorCarId = valueDes;
break;
case r'notesAcknowledged':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(bool),
) as bool;
result.notesAcknowledged = valueDes;
break;
case r'paymentCollected':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(bool),
) as bool;
result.paymentCollected = valueDes;
break;
case r'paymentMethodId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.paymentMethodId = valueDes;
break;
case r'receiptConfirmed':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(bool),
) as bool;
result.receiptConfirmed = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
CompleteDeliveryAcknowledgements deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = CompleteDeliveryAcknowledgementsBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,181 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'complete_delivery_acknowledgements.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$CompleteDeliveryAcknowledgements
extends CompleteDeliveryAcknowledgements {
@override
final BuiltList<String>? acknowledgedNoteIds;
@override
final String? authorCarId;
@override
final bool? notesAcknowledged;
@override
final bool? paymentCollected;
@override
final String? paymentMethodId;
@override
final bool receiptConfirmed;
factory _$CompleteDeliveryAcknowledgements(
[void Function(CompleteDeliveryAcknowledgementsBuilder)? updates]) =>
(CompleteDeliveryAcknowledgementsBuilder()..update(updates))._build();
_$CompleteDeliveryAcknowledgements._(
{this.acknowledgedNoteIds,
this.authorCarId,
this.notesAcknowledged,
this.paymentCollected,
this.paymentMethodId,
required this.receiptConfirmed})
: super._();
@override
CompleteDeliveryAcknowledgements rebuild(
void Function(CompleteDeliveryAcknowledgementsBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
CompleteDeliveryAcknowledgementsBuilder toBuilder() =>
CompleteDeliveryAcknowledgementsBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is CompleteDeliveryAcknowledgements &&
acknowledgedNoteIds == other.acknowledgedNoteIds &&
authorCarId == other.authorCarId &&
notesAcknowledged == other.notesAcknowledged &&
paymentCollected == other.paymentCollected &&
paymentMethodId == other.paymentMethodId &&
receiptConfirmed == other.receiptConfirmed;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, acknowledgedNoteIds.hashCode);
_$hash = $jc(_$hash, authorCarId.hashCode);
_$hash = $jc(_$hash, notesAcknowledged.hashCode);
_$hash = $jc(_$hash, paymentCollected.hashCode);
_$hash = $jc(_$hash, paymentMethodId.hashCode);
_$hash = $jc(_$hash, receiptConfirmed.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'CompleteDeliveryAcknowledgements')
..add('acknowledgedNoteIds', acknowledgedNoteIds)
..add('authorCarId', authorCarId)
..add('notesAcknowledged', notesAcknowledged)
..add('paymentCollected', paymentCollected)
..add('paymentMethodId', paymentMethodId)
..add('receiptConfirmed', receiptConfirmed))
.toString();
}
}
class CompleteDeliveryAcknowledgementsBuilder
implements
Builder<CompleteDeliveryAcknowledgements,
CompleteDeliveryAcknowledgementsBuilder> {
_$CompleteDeliveryAcknowledgements? _$v;
ListBuilder<String>? _acknowledgedNoteIds;
ListBuilder<String> get acknowledgedNoteIds =>
_$this._acknowledgedNoteIds ??= ListBuilder<String>();
set acknowledgedNoteIds(ListBuilder<String>? acknowledgedNoteIds) =>
_$this._acknowledgedNoteIds = acknowledgedNoteIds;
String? _authorCarId;
String? get authorCarId => _$this._authorCarId;
set authorCarId(String? authorCarId) => _$this._authorCarId = authorCarId;
bool? _notesAcknowledged;
bool? get notesAcknowledged => _$this._notesAcknowledged;
set notesAcknowledged(bool? notesAcknowledged) =>
_$this._notesAcknowledged = notesAcknowledged;
bool? _paymentCollected;
bool? get paymentCollected => _$this._paymentCollected;
set paymentCollected(bool? paymentCollected) =>
_$this._paymentCollected = paymentCollected;
String? _paymentMethodId;
String? get paymentMethodId => _$this._paymentMethodId;
set paymentMethodId(String? paymentMethodId) =>
_$this._paymentMethodId = paymentMethodId;
bool? _receiptConfirmed;
bool? get receiptConfirmed => _$this._receiptConfirmed;
set receiptConfirmed(bool? receiptConfirmed) =>
_$this._receiptConfirmed = receiptConfirmed;
CompleteDeliveryAcknowledgementsBuilder() {
CompleteDeliveryAcknowledgements._defaults(this);
}
CompleteDeliveryAcknowledgementsBuilder get _$this {
final $v = _$v;
if ($v != null) {
_acknowledgedNoteIds = $v.acknowledgedNoteIds?.toBuilder();
_authorCarId = $v.authorCarId;
_notesAcknowledged = $v.notesAcknowledged;
_paymentCollected = $v.paymentCollected;
_paymentMethodId = $v.paymentMethodId;
_receiptConfirmed = $v.receiptConfirmed;
_$v = null;
}
return this;
}
@override
void replace(CompleteDeliveryAcknowledgements other) {
_$v = other as _$CompleteDeliveryAcknowledgements;
}
@override
void update(void Function(CompleteDeliveryAcknowledgementsBuilder)? updates) {
if (updates != null) updates(this);
}
@override
CompleteDeliveryAcknowledgements build() => _build();
_$CompleteDeliveryAcknowledgements _build() {
_$CompleteDeliveryAcknowledgements _$result;
try {
_$result = _$v ??
_$CompleteDeliveryAcknowledgements._(
acknowledgedNoteIds: _acknowledgedNoteIds?.build(),
authorCarId: authorCarId,
notesAcknowledged: notesAcknowledged,
paymentCollected: paymentCollected,
paymentMethodId: paymentMethodId,
receiptConfirmed: BuiltValueNullFieldError.checkNotNull(
receiptConfirmed,
r'CompleteDeliveryAcknowledgements',
'receiptConfirmed'),
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'acknowledgedNoteIds';
_acknowledgedNoteIds?.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'CompleteDeliveryAcknowledgements', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,172 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/contact_kind.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'contact_channel.g.dart';
/// Ein einzelner Kontaktkanal (Telefonnummer / Mobil / E-Mail / Web). Mehrere pro [`ContactSource`] möglich, die `position` hält die 1-basierte ERP-Reihenfolge (`Telefon` → 1, `Telefon2` → 2 usw.) fest, damit der „primäre\" Kanal je Art stabil identifizierbar bleibt.
///
/// Properties:
/// * [id]
/// * [kind]
/// * [position]
/// * [sourceId]
/// * [value]
@BuiltValue()
abstract class ContactChannel implements Built<ContactChannel, ContactChannelBuilder> {
@BuiltValueField(wireName: r'id')
String get id;
@BuiltValueField(wireName: r'kind')
ContactKind get kind;
// enum kindEnum { phone, mobile, email, web, };
@BuiltValueField(wireName: r'position')
int get position;
@BuiltValueField(wireName: r'sourceId')
String get sourceId;
@BuiltValueField(wireName: r'value')
String get value;
ContactChannel._();
factory ContactChannel([void updates(ContactChannelBuilder b)]) = _$ContactChannel;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(ContactChannelBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<ContactChannel> get serializer => _$ContactChannelSerializer();
}
class _$ContactChannelSerializer implements PrimitiveSerializer<ContactChannel> {
@override
final Iterable<Type> types = const [ContactChannel, _$ContactChannel];
@override
final String wireName = r'ContactChannel';
Iterable<Object?> _serializeProperties(
Serializers serializers,
ContactChannel object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'id';
yield serializers.serialize(
object.id,
specifiedType: const FullType(String),
);
yield r'kind';
yield serializers.serialize(
object.kind,
specifiedType: const FullType(ContactKind),
);
yield r'position';
yield serializers.serialize(
object.position,
specifiedType: const FullType(int),
);
yield r'sourceId';
yield serializers.serialize(
object.sourceId,
specifiedType: const FullType(String),
);
yield r'value';
yield serializers.serialize(
object.value,
specifiedType: const FullType(String),
);
}
@override
Object serialize(
Serializers serializers,
ContactChannel object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required ContactChannelBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'id':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.id = valueDes;
break;
case r'kind':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(ContactKind),
) as ContactKind;
result.kind = valueDes;
break;
case r'position':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.position = valueDes;
break;
case r'sourceId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.sourceId = valueDes;
break;
case r'value':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.value = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
ContactChannel deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = ContactChannelBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,146 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'contact_channel.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$ContactChannel extends ContactChannel {
@override
final String id;
@override
final ContactKind kind;
@override
final int position;
@override
final String sourceId;
@override
final String value;
factory _$ContactChannel([void Function(ContactChannelBuilder)? updates]) =>
(ContactChannelBuilder()..update(updates))._build();
_$ContactChannel._(
{required this.id,
required this.kind,
required this.position,
required this.sourceId,
required this.value})
: super._();
@override
ContactChannel rebuild(void Function(ContactChannelBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
ContactChannelBuilder toBuilder() => ContactChannelBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is ContactChannel &&
id == other.id &&
kind == other.kind &&
position == other.position &&
sourceId == other.sourceId &&
value == other.value;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, id.hashCode);
_$hash = $jc(_$hash, kind.hashCode);
_$hash = $jc(_$hash, position.hashCode);
_$hash = $jc(_$hash, sourceId.hashCode);
_$hash = $jc(_$hash, value.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'ContactChannel')
..add('id', id)
..add('kind', kind)
..add('position', position)
..add('sourceId', sourceId)
..add('value', value))
.toString();
}
}
class ContactChannelBuilder
implements Builder<ContactChannel, ContactChannelBuilder> {
_$ContactChannel? _$v;
String? _id;
String? get id => _$this._id;
set id(String? id) => _$this._id = id;
ContactKind? _kind;
ContactKind? get kind => _$this._kind;
set kind(ContactKind? kind) => _$this._kind = kind;
int? _position;
int? get position => _$this._position;
set position(int? position) => _$this._position = position;
String? _sourceId;
String? get sourceId => _$this._sourceId;
set sourceId(String? sourceId) => _$this._sourceId = sourceId;
String? _value;
String? get value => _$this._value;
set value(String? value) => _$this._value = value;
ContactChannelBuilder() {
ContactChannel._defaults(this);
}
ContactChannelBuilder get _$this {
final $v = _$v;
if ($v != null) {
_id = $v.id;
_kind = $v.kind;
_position = $v.position;
_sourceId = $v.sourceId;
_value = $v.value;
_$v = null;
}
return this;
}
@override
void replace(ContactChannel other) {
_$v = other as _$ContactChannel;
}
@override
void update(void Function(ContactChannelBuilder)? updates) {
if (updates != null) updates(this);
}
@override
ContactChannel build() => _build();
_$ContactChannel _build() {
final _$result = _$v ??
_$ContactChannel._(
id: BuiltValueNullFieldError.checkNotNull(
id, r'ContactChannel', 'id'),
kind: BuiltValueNullFieldError.checkNotNull(
kind, r'ContactChannel', 'kind'),
position: BuiltValueNullFieldError.checkNotNull(
position, r'ContactChannel', 'position'),
sourceId: BuiltValueNullFieldError.checkNotNull(
sourceId, r'ContactChannel', 'sourceId'),
value: BuiltValueNullFieldError.checkNotNull(
value, r'ContactChannel', 'value'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,42 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'contact_kind.g.dart';
class ContactKind extends EnumClass {
/// Art eines Kommunikationskanals. `fax` bewusst nicht mitgeführt — in der App nicht verwendet.
@BuiltValueEnumConst(wireName: r'phone')
static const ContactKind phone = _$phone;
/// Art eines Kommunikationskanals. `fax` bewusst nicht mitgeführt — in der App nicht verwendet.
@BuiltValueEnumConst(wireName: r'mobile')
static const ContactKind mobile = _$mobile;
/// Art eines Kommunikationskanals. `fax` bewusst nicht mitgeführt — in der App nicht verwendet.
@BuiltValueEnumConst(wireName: r'email')
static const ContactKind email = _$email;
/// Art eines Kommunikationskanals. `fax` bewusst nicht mitgeführt — in der App nicht verwendet.
@BuiltValueEnumConst(wireName: r'web')
static const ContactKind web = _$web;
static Serializer<ContactKind> get serializer => _$contactKindSerializer;
const ContactKind._(String name): super(name);
static BuiltSet<ContactKind> get values => _$values;
static ContactKind valueOf(String name) => _$valueOf(name);
}
/// Optionally, enum_class can generate a mixin to go with your enum for use
/// with Angular. It exposes your enum constants as getters. So, if you mix it
/// in to your Dart component class, the values become available to the
/// corresponding Angular template.
///
/// Trigger mixin generation by writing a line like this one next to your enum.
abstract class ContactKindMixin = Object with _$ContactKindMixin;

View File

@ -0,0 +1,85 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'contact_kind.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
const ContactKind _$phone = const ContactKind._('phone');
const ContactKind _$mobile = const ContactKind._('mobile');
const ContactKind _$email = const ContactKind._('email');
const ContactKind _$web = const ContactKind._('web');
ContactKind _$valueOf(String name) {
switch (name) {
case 'phone':
return _$phone;
case 'mobile':
return _$mobile;
case 'email':
return _$email;
case 'web':
return _$web;
default:
throw ArgumentError(name);
}
}
final BuiltSet<ContactKind> _$values =
BuiltSet<ContactKind>(const <ContactKind>[
_$phone,
_$mobile,
_$email,
_$web,
]);
class _$ContactKindMeta {
const _$ContactKindMeta();
ContactKind get phone => _$phone;
ContactKind get mobile => _$mobile;
ContactKind get email => _$email;
ContactKind get web => _$web;
ContactKind valueOf(String name) => _$valueOf(name);
BuiltSet<ContactKind> get values => _$values;
}
abstract class _$ContactKindMixin {
// ignore: non_constant_identifier_names
_$ContactKindMeta get ContactKind => const _$ContactKindMeta();
}
Serializer<ContactKind> _$contactKindSerializer = _$ContactKindSerializer();
class _$ContactKindSerializer implements PrimitiveSerializer<ContactKind> {
static const Map<String, Object> _toWire = const <String, Object>{
'phone': 'phone',
'mobile': 'mobile',
'email': 'email',
'web': 'web',
};
static const Map<Object, String> _fromWire = const <Object, String>{
'phone': 'phone',
'mobile': 'mobile',
'email': 'email',
'web': 'web',
};
@override
final Iterable<Type> types = const <Type>[ContactKind];
@override
final String wireName = 'ContactKind';
@override
Object serialize(Serializers serializers, ContactKind object,
{FullType specifiedType = FullType.unspecified}) =>
_toWire[object.name] ?? object.name;
@override
ContactKind deserialize(Serializers serializers, Object serialized,
{FullType specifiedType = FullType.unspecified}) =>
ContactKind.valueOf(
_fromWire[serialized] ?? (serialized is String ? serialized : ''));
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,45 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'contact_role.g.dart';
class ContactRole extends EnumClass {
/// Rolle, mit der ein Kontakt-Datensatz an einer Lieferung hängt. Spiegelt die fünf Adress-FKs von `Belegkopf` (bzw. den Umweg über den Kunden): `header` = Belegadresse, `delivery` = Lieferadresse, `billing` = Rechnungsadresse, `contact_person` = Ansprechpartner, `customer_master` = Stammadresse des Kunden über `Kunden.AdressId`.
@BuiltValueEnumConst(wireName: r'header')
static const ContactRole header = _$header;
/// Rolle, mit der ein Kontakt-Datensatz an einer Lieferung hängt. Spiegelt die fünf Adress-FKs von `Belegkopf` (bzw. den Umweg über den Kunden): `header` = Belegadresse, `delivery` = Lieferadresse, `billing` = Rechnungsadresse, `contact_person` = Ansprechpartner, `customer_master` = Stammadresse des Kunden über `Kunden.AdressId`.
@BuiltValueEnumConst(wireName: r'delivery')
static const ContactRole delivery = _$delivery;
/// Rolle, mit der ein Kontakt-Datensatz an einer Lieferung hängt. Spiegelt die fünf Adress-FKs von `Belegkopf` (bzw. den Umweg über den Kunden): `header` = Belegadresse, `delivery` = Lieferadresse, `billing` = Rechnungsadresse, `contact_person` = Ansprechpartner, `customer_master` = Stammadresse des Kunden über `Kunden.AdressId`.
@BuiltValueEnumConst(wireName: r'billing')
static const ContactRole billing = _$billing;
/// Rolle, mit der ein Kontakt-Datensatz an einer Lieferung hängt. Spiegelt die fünf Adress-FKs von `Belegkopf` (bzw. den Umweg über den Kunden): `header` = Belegadresse, `delivery` = Lieferadresse, `billing` = Rechnungsadresse, `contact_person` = Ansprechpartner, `customer_master` = Stammadresse des Kunden über `Kunden.AdressId`.
@BuiltValueEnumConst(wireName: r'contact_person')
static const ContactRole contactPerson = _$contactPerson;
/// Rolle, mit der ein Kontakt-Datensatz an einer Lieferung hängt. Spiegelt die fünf Adress-FKs von `Belegkopf` (bzw. den Umweg über den Kunden): `header` = Belegadresse, `delivery` = Lieferadresse, `billing` = Rechnungsadresse, `contact_person` = Ansprechpartner, `customer_master` = Stammadresse des Kunden über `Kunden.AdressId`.
@BuiltValueEnumConst(wireName: r'customer_master')
static const ContactRole customerMaster = _$customerMaster;
static Serializer<ContactRole> get serializer => _$contactRoleSerializer;
const ContactRole._(String name): super(name);
static BuiltSet<ContactRole> get values => _$values;
static ContactRole valueOf(String name) => _$valueOf(name);
}
/// Optionally, enum_class can generate a mixin to go with your enum for use
/// with Angular. It exposes your enum constants as getters. So, if you mix it
/// in to your Dart component class, the values become available to the
/// corresponding Angular template.
///
/// Trigger mixin generation by writing a line like this one next to your enum.
abstract class ContactRoleMixin = Object with _$ContactRoleMixin;

View File

@ -0,0 +1,92 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'contact_role.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
const ContactRole _$header = const ContactRole._('header');
const ContactRole _$delivery = const ContactRole._('delivery');
const ContactRole _$billing = const ContactRole._('billing');
const ContactRole _$contactPerson = const ContactRole._('contactPerson');
const ContactRole _$customerMaster = const ContactRole._('customerMaster');
ContactRole _$valueOf(String name) {
switch (name) {
case 'header':
return _$header;
case 'delivery':
return _$delivery;
case 'billing':
return _$billing;
case 'contactPerson':
return _$contactPerson;
case 'customerMaster':
return _$customerMaster;
default:
throw ArgumentError(name);
}
}
final BuiltSet<ContactRole> _$values =
BuiltSet<ContactRole>(const <ContactRole>[
_$header,
_$delivery,
_$billing,
_$contactPerson,
_$customerMaster,
]);
class _$ContactRoleMeta {
const _$ContactRoleMeta();
ContactRole get header => _$header;
ContactRole get delivery => _$delivery;
ContactRole get billing => _$billing;
ContactRole get contactPerson => _$contactPerson;
ContactRole get customerMaster => _$customerMaster;
ContactRole valueOf(String name) => _$valueOf(name);
BuiltSet<ContactRole> get values => _$values;
}
abstract class _$ContactRoleMixin {
// ignore: non_constant_identifier_names
_$ContactRoleMeta get ContactRole => const _$ContactRoleMeta();
}
Serializer<ContactRole> _$contactRoleSerializer = _$ContactRoleSerializer();
class _$ContactRoleSerializer implements PrimitiveSerializer<ContactRole> {
static const Map<String, Object> _toWire = const <String, Object>{
'header': 'header',
'delivery': 'delivery',
'billing': 'billing',
'contactPerson': 'contact_person',
'customerMaster': 'customer_master',
};
static const Map<Object, String> _fromWire = const <Object, String>{
'header': 'header',
'delivery': 'delivery',
'billing': 'billing',
'contact_person': 'contactPerson',
'customer_master': 'customerMaster',
};
@override
final Iterable<Type> types = const <Type>[ContactRole];
@override
final String wireName = 'ContactRole';
@override
Object serialize(Serializers serializers, ContactRole object,
{FullType specifiedType = FullType.unspecified}) =>
_toWire[object.name] ?? object.name;
@override
ContactRole deserialize(Serializers serializers, Object serialized,
{FullType specifiedType = FullType.unspecified}) =>
ContactRole.valueOf(
_fromWire[serialized] ?? (serialized is String ? serialized : ''));
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,273 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/contact_role.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'contact_source.g.dart';
/// Snapshot eines ERP-Adress-Datensatzes, der zum Zeitpunkt des Tour-Syncs an einer Lieferung hing — Namensblock ohne Anschrift, weil die Adresse ihrerseits schon im Lieferungs-Snapshot steckt (`snap_*`-Spalten). Die eigentlichen Telefonnummern, E-Mails etc. liegen in den zugehörigen [`ContactChannel`]s.
///
/// Properties:
/// * [abteilung]
/// * [anrede]
/// * [deliveryId]
/// * [funktion]
/// * [id]
/// * [name1]
/// * [name2]
/// * [name3]
/// * [role]
/// * [titel]
@BuiltValue()
abstract class ContactSource implements Built<ContactSource, ContactSourceBuilder> {
@BuiltValueField(wireName: r'abteilung')
String? get abteilung;
@BuiltValueField(wireName: r'anrede')
String? get anrede;
@BuiltValueField(wireName: r'deliveryId')
String get deliveryId;
@BuiltValueField(wireName: r'funktion')
String? get funktion;
@BuiltValueField(wireName: r'id')
String get id;
@BuiltValueField(wireName: r'name1')
String? get name1;
@BuiltValueField(wireName: r'name2')
String? get name2;
@BuiltValueField(wireName: r'name3')
String? get name3;
@BuiltValueField(wireName: r'role')
ContactRole get role;
// enum roleEnum { header, delivery, billing, contact_person, customer_master, };
@BuiltValueField(wireName: r'titel')
String? get titel;
ContactSource._();
factory ContactSource([void updates(ContactSourceBuilder b)]) = _$ContactSource;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(ContactSourceBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<ContactSource> get serializer => _$ContactSourceSerializer();
}
class _$ContactSourceSerializer implements PrimitiveSerializer<ContactSource> {
@override
final Iterable<Type> types = const [ContactSource, _$ContactSource];
@override
final String wireName = r'ContactSource';
Iterable<Object?> _serializeProperties(
Serializers serializers,
ContactSource object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
if (object.abteilung != null) {
yield r'abteilung';
yield serializers.serialize(
object.abteilung,
specifiedType: const FullType.nullable(String),
);
}
if (object.anrede != null) {
yield r'anrede';
yield serializers.serialize(
object.anrede,
specifiedType: const FullType.nullable(String),
);
}
yield r'deliveryId';
yield serializers.serialize(
object.deliveryId,
specifiedType: const FullType(String),
);
if (object.funktion != null) {
yield r'funktion';
yield serializers.serialize(
object.funktion,
specifiedType: const FullType.nullable(String),
);
}
yield r'id';
yield serializers.serialize(
object.id,
specifiedType: const FullType(String),
);
if (object.name1 != null) {
yield r'name1';
yield serializers.serialize(
object.name1,
specifiedType: const FullType.nullable(String),
);
}
if (object.name2 != null) {
yield r'name2';
yield serializers.serialize(
object.name2,
specifiedType: const FullType.nullable(String),
);
}
if (object.name3 != null) {
yield r'name3';
yield serializers.serialize(
object.name3,
specifiedType: const FullType.nullable(String),
);
}
yield r'role';
yield serializers.serialize(
object.role,
specifiedType: const FullType(ContactRole),
);
if (object.titel != null) {
yield r'titel';
yield serializers.serialize(
object.titel,
specifiedType: const FullType.nullable(String),
);
}
}
@override
Object serialize(
Serializers serializers,
ContactSource object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required ContactSourceBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'abteilung':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.abteilung = valueDes;
break;
case r'anrede':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.anrede = valueDes;
break;
case r'deliveryId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.deliveryId = valueDes;
break;
case r'funktion':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.funktion = valueDes;
break;
case r'id':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.id = valueDes;
break;
case r'name1':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.name1 = valueDes;
break;
case r'name2':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.name2 = valueDes;
break;
case r'name3':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.name3 = valueDes;
break;
case r'role':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(ContactRole),
) as ContactRole;
result.role = valueDes;
break;
case r'titel':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.titel = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
ContactSource deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = ContactSourceBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,203 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'contact_source.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$ContactSource extends ContactSource {
@override
final String? abteilung;
@override
final String? anrede;
@override
final String deliveryId;
@override
final String? funktion;
@override
final String id;
@override
final String? name1;
@override
final String? name2;
@override
final String? name3;
@override
final ContactRole role;
@override
final String? titel;
factory _$ContactSource([void Function(ContactSourceBuilder)? updates]) =>
(ContactSourceBuilder()..update(updates))._build();
_$ContactSource._(
{this.abteilung,
this.anrede,
required this.deliveryId,
this.funktion,
required this.id,
this.name1,
this.name2,
this.name3,
required this.role,
this.titel})
: super._();
@override
ContactSource rebuild(void Function(ContactSourceBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
ContactSourceBuilder toBuilder() => ContactSourceBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is ContactSource &&
abteilung == other.abteilung &&
anrede == other.anrede &&
deliveryId == other.deliveryId &&
funktion == other.funktion &&
id == other.id &&
name1 == other.name1 &&
name2 == other.name2 &&
name3 == other.name3 &&
role == other.role &&
titel == other.titel;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, abteilung.hashCode);
_$hash = $jc(_$hash, anrede.hashCode);
_$hash = $jc(_$hash, deliveryId.hashCode);
_$hash = $jc(_$hash, funktion.hashCode);
_$hash = $jc(_$hash, id.hashCode);
_$hash = $jc(_$hash, name1.hashCode);
_$hash = $jc(_$hash, name2.hashCode);
_$hash = $jc(_$hash, name3.hashCode);
_$hash = $jc(_$hash, role.hashCode);
_$hash = $jc(_$hash, titel.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'ContactSource')
..add('abteilung', abteilung)
..add('anrede', anrede)
..add('deliveryId', deliveryId)
..add('funktion', funktion)
..add('id', id)
..add('name1', name1)
..add('name2', name2)
..add('name3', name3)
..add('role', role)
..add('titel', titel))
.toString();
}
}
class ContactSourceBuilder
implements Builder<ContactSource, ContactSourceBuilder> {
_$ContactSource? _$v;
String? _abteilung;
String? get abteilung => _$this._abteilung;
set abteilung(String? abteilung) => _$this._abteilung = abteilung;
String? _anrede;
String? get anrede => _$this._anrede;
set anrede(String? anrede) => _$this._anrede = anrede;
String? _deliveryId;
String? get deliveryId => _$this._deliveryId;
set deliveryId(String? deliveryId) => _$this._deliveryId = deliveryId;
String? _funktion;
String? get funktion => _$this._funktion;
set funktion(String? funktion) => _$this._funktion = funktion;
String? _id;
String? get id => _$this._id;
set id(String? id) => _$this._id = id;
String? _name1;
String? get name1 => _$this._name1;
set name1(String? name1) => _$this._name1 = name1;
String? _name2;
String? get name2 => _$this._name2;
set name2(String? name2) => _$this._name2 = name2;
String? _name3;
String? get name3 => _$this._name3;
set name3(String? name3) => _$this._name3 = name3;
ContactRole? _role;
ContactRole? get role => _$this._role;
set role(ContactRole? role) => _$this._role = role;
String? _titel;
String? get titel => _$this._titel;
set titel(String? titel) => _$this._titel = titel;
ContactSourceBuilder() {
ContactSource._defaults(this);
}
ContactSourceBuilder get _$this {
final $v = _$v;
if ($v != null) {
_abteilung = $v.abteilung;
_anrede = $v.anrede;
_deliveryId = $v.deliveryId;
_funktion = $v.funktion;
_id = $v.id;
_name1 = $v.name1;
_name2 = $v.name2;
_name3 = $v.name3;
_role = $v.role;
_titel = $v.titel;
_$v = null;
}
return this;
}
@override
void replace(ContactSource other) {
_$v = other as _$ContactSource;
}
@override
void update(void Function(ContactSourceBuilder)? updates) {
if (updates != null) updates(this);
}
@override
ContactSource build() => _build();
_$ContactSource _build() {
final _$result = _$v ??
_$ContactSource._(
abteilung: abteilung,
anrede: anrede,
deliveryId: BuiltValueNullFieldError.checkNotNull(
deliveryId, r'ContactSource', 'deliveryId'),
funktion: funktion,
id: BuiltValueNullFieldError.checkNotNull(id, r'ContactSource', 'id'),
name1: name1,
name2: name2,
name3: name3,
role: BuiltValueNullFieldError.checkNotNull(
role, r'ContactSource', 'role'),
titel: titel,
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -12,7 +12,9 @@ part 'create_delivery_note_request.g.dart';
///
/// Properties:
/// * [authorCarId] - Fahrzeug, das die Notiz erzeugt hat. Muss zum angemeldeten Account gehören. `None` ist erlaubt.
/// * [creditDeliveryItemId] - Optionaler Gutschrift-Bezug: die Belegzeile, für die diese Notiz als Gutschrift-Grund angelegt wird. Ermöglicht das gezielte Löschen beim Unremove. `None` für normale Notizen.
/// * [imageAttachment] - Object-Storage-Key oder URL eines vorab hochgeladenen Bildes.
/// * [isAmountCreditNote] - `true` markiert die Notiz als Grund einer Betrags-Gutschrift (Lieferungs-Ebene). Default `false`.
/// * [text]
@BuiltValue()
abstract class CreateDeliveryNoteRequest implements Built<CreateDeliveryNoteRequest, CreateDeliveryNoteRequestBuilder> {
@ -20,10 +22,18 @@ abstract class CreateDeliveryNoteRequest implements Built<CreateDeliveryNoteRequ
@BuiltValueField(wireName: r'authorCarId')
String? get authorCarId;
/// Optionaler Gutschrift-Bezug: die Belegzeile, für die diese Notiz als Gutschrift-Grund angelegt wird. Ermöglicht das gezielte Löschen beim Unremove. `None` für normale Notizen.
@BuiltValueField(wireName: r'creditDeliveryItemId')
String? get creditDeliveryItemId;
/// Object-Storage-Key oder URL eines vorab hochgeladenen Bildes.
@BuiltValueField(wireName: r'imageAttachment')
String? get imageAttachment;
/// `true` markiert die Notiz als Grund einer Betrags-Gutschrift (Lieferungs-Ebene). Default `false`.
@BuiltValueField(wireName: r'isAmountCreditNote')
bool? get isAmountCreditNote;
@BuiltValueField(wireName: r'text')
String? get text;
@ -57,6 +67,13 @@ class _$CreateDeliveryNoteRequestSerializer implements PrimitiveSerializer<Creat
specifiedType: const FullType.nullable(String),
);
}
if (object.creditDeliveryItemId != null) {
yield r'creditDeliveryItemId';
yield serializers.serialize(
object.creditDeliveryItemId,
specifiedType: const FullType.nullable(String),
);
}
if (object.imageAttachment != null) {
yield r'imageAttachment';
yield serializers.serialize(
@ -64,6 +81,13 @@ class _$CreateDeliveryNoteRequestSerializer implements PrimitiveSerializer<Creat
specifiedType: const FullType.nullable(String),
);
}
if (object.isAmountCreditNote != null) {
yield r'isAmountCreditNote';
yield serializers.serialize(
object.isAmountCreditNote,
specifiedType: const FullType(bool),
);
}
if (object.text != null) {
yield r'text';
yield serializers.serialize(
@ -102,6 +126,14 @@ class _$CreateDeliveryNoteRequestSerializer implements PrimitiveSerializer<Creat
if (valueDes == null) continue;
result.authorCarId = valueDes;
break;
case r'creditDeliveryItemId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.creditDeliveryItemId = valueDes;
break;
case r'imageAttachment':
final valueDes = serializers.deserialize(
value,
@ -110,6 +142,13 @@ class _$CreateDeliveryNoteRequestSerializer implements PrimitiveSerializer<Creat
if (valueDes == null) continue;
result.imageAttachment = valueDes;
break;
case r'isAmountCreditNote':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(bool),
) as bool;
result.isAmountCreditNote = valueDes;
break;
case r'text':
final valueDes = serializers.deserialize(
value,

View File

@ -10,8 +10,12 @@ class _$CreateDeliveryNoteRequest extends CreateDeliveryNoteRequest {
@override
final String? authorCarId;
@override
final String? creditDeliveryItemId;
@override
final String? imageAttachment;
@override
final bool? isAmountCreditNote;
@override
final String? text;
factory _$CreateDeliveryNoteRequest(
@ -19,7 +23,11 @@ class _$CreateDeliveryNoteRequest extends CreateDeliveryNoteRequest {
(CreateDeliveryNoteRequestBuilder()..update(updates))._build();
_$CreateDeliveryNoteRequest._(
{this.authorCarId, this.imageAttachment, this.text})
{this.authorCarId,
this.creditDeliveryItemId,
this.imageAttachment,
this.isAmountCreditNote,
this.text})
: super._();
@override
CreateDeliveryNoteRequest rebuild(
@ -35,7 +43,9 @@ class _$CreateDeliveryNoteRequest extends CreateDeliveryNoteRequest {
if (identical(other, this)) return true;
return other is CreateDeliveryNoteRequest &&
authorCarId == other.authorCarId &&
creditDeliveryItemId == other.creditDeliveryItemId &&
imageAttachment == other.imageAttachment &&
isAmountCreditNote == other.isAmountCreditNote &&
text == other.text;
}
@ -43,7 +53,9 @@ class _$CreateDeliveryNoteRequest extends CreateDeliveryNoteRequest {
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, authorCarId.hashCode);
_$hash = $jc(_$hash, creditDeliveryItemId.hashCode);
_$hash = $jc(_$hash, imageAttachment.hashCode);
_$hash = $jc(_$hash, isAmountCreditNote.hashCode);
_$hash = $jc(_$hash, text.hashCode);
_$hash = $jf(_$hash);
return _$hash;
@ -53,7 +65,9 @@ class _$CreateDeliveryNoteRequest extends CreateDeliveryNoteRequest {
String toString() {
return (newBuiltValueToStringHelper(r'CreateDeliveryNoteRequest')
..add('authorCarId', authorCarId)
..add('creditDeliveryItemId', creditDeliveryItemId)
..add('imageAttachment', imageAttachment)
..add('isAmountCreditNote', isAmountCreditNote)
..add('text', text))
.toString();
}
@ -68,11 +82,21 @@ class CreateDeliveryNoteRequestBuilder
String? get authorCarId => _$this._authorCarId;
set authorCarId(String? authorCarId) => _$this._authorCarId = authorCarId;
String? _creditDeliveryItemId;
String? get creditDeliveryItemId => _$this._creditDeliveryItemId;
set creditDeliveryItemId(String? creditDeliveryItemId) =>
_$this._creditDeliveryItemId = creditDeliveryItemId;
String? _imageAttachment;
String? get imageAttachment => _$this._imageAttachment;
set imageAttachment(String? imageAttachment) =>
_$this._imageAttachment = imageAttachment;
bool? _isAmountCreditNote;
bool? get isAmountCreditNote => _$this._isAmountCreditNote;
set isAmountCreditNote(bool? isAmountCreditNote) =>
_$this._isAmountCreditNote = isAmountCreditNote;
String? _text;
String? get text => _$this._text;
set text(String? text) => _$this._text = text;
@ -85,7 +109,9 @@ class CreateDeliveryNoteRequestBuilder
final $v = _$v;
if ($v != null) {
_authorCarId = $v.authorCarId;
_creditDeliveryItemId = $v.creditDeliveryItemId;
_imageAttachment = $v.imageAttachment;
_isAmountCreditNote = $v.isAmountCreditNote;
_text = $v.text;
_$v = null;
}
@ -109,7 +135,9 @@ class CreateDeliveryNoteRequestBuilder
final _$result = _$v ??
_$CreateDeliveryNoteRequest._(
authorCarId: authorCarId,
creditDeliveryItemId: creditDeliveryItemId,
imageAttachment: imageAttachment,
isAmountCreditNote: isAmountCreditNote,
text: text,
);
replace(_$result);

View File

@ -0,0 +1,124 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'create_payment_method_request.g.dart';
/// CreatePaymentMethodRequest
///
/// Properties:
/// * [code] - Eindeutiger Programm-Identifier (z. B. `\"paypal\"`, `\"klarna\"`).
/// * [name] - Anzeige-Name in der UI.
@BuiltValue()
abstract class CreatePaymentMethodRequest implements Built<CreatePaymentMethodRequest, CreatePaymentMethodRequestBuilder> {
/// Eindeutiger Programm-Identifier (z. B. `\"paypal\"`, `\"klarna\"`).
@BuiltValueField(wireName: r'code')
String get code;
/// Anzeige-Name in der UI.
@BuiltValueField(wireName: r'name')
String get name;
CreatePaymentMethodRequest._();
factory CreatePaymentMethodRequest([void updates(CreatePaymentMethodRequestBuilder b)]) = _$CreatePaymentMethodRequest;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(CreatePaymentMethodRequestBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<CreatePaymentMethodRequest> get serializer => _$CreatePaymentMethodRequestSerializer();
}
class _$CreatePaymentMethodRequestSerializer implements PrimitiveSerializer<CreatePaymentMethodRequest> {
@override
final Iterable<Type> types = const [CreatePaymentMethodRequest, _$CreatePaymentMethodRequest];
@override
final String wireName = r'CreatePaymentMethodRequest';
Iterable<Object?> _serializeProperties(
Serializers serializers,
CreatePaymentMethodRequest object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'code';
yield serializers.serialize(
object.code,
specifiedType: const FullType(String),
);
yield r'name';
yield serializers.serialize(
object.name,
specifiedType: const FullType(String),
);
}
@override
Object serialize(
Serializers serializers,
CreatePaymentMethodRequest object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required CreatePaymentMethodRequestBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'code':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.code = valueDes;
break;
case r'name':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.name = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
CreatePaymentMethodRequest deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = CreatePaymentMethodRequestBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,109 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'create_payment_method_request.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$CreatePaymentMethodRequest extends CreatePaymentMethodRequest {
@override
final String code;
@override
final String name;
factory _$CreatePaymentMethodRequest(
[void Function(CreatePaymentMethodRequestBuilder)? updates]) =>
(CreatePaymentMethodRequestBuilder()..update(updates))._build();
_$CreatePaymentMethodRequest._({required this.code, required this.name})
: super._();
@override
CreatePaymentMethodRequest rebuild(
void Function(CreatePaymentMethodRequestBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
CreatePaymentMethodRequestBuilder toBuilder() =>
CreatePaymentMethodRequestBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is CreatePaymentMethodRequest &&
code == other.code &&
name == other.name;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, code.hashCode);
_$hash = $jc(_$hash, name.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'CreatePaymentMethodRequest')
..add('code', code)
..add('name', name))
.toString();
}
}
class CreatePaymentMethodRequestBuilder
implements
Builder<CreatePaymentMethodRequest, CreatePaymentMethodRequestBuilder> {
_$CreatePaymentMethodRequest? _$v;
String? _code;
String? get code => _$this._code;
set code(String? code) => _$this._code = code;
String? _name;
String? get name => _$this._name;
set name(String? name) => _$this._name = name;
CreatePaymentMethodRequestBuilder() {
CreatePaymentMethodRequest._defaults(this);
}
CreatePaymentMethodRequestBuilder get _$this {
final $v = _$v;
if ($v != null) {
_code = $v.code;
_name = $v.name;
_$v = null;
}
return this;
}
@override
void replace(CreatePaymentMethodRequest other) {
_$v = other as _$CreatePaymentMethodRequest;
}
@override
void update(void Function(CreatePaymentMethodRequestBuilder)? updates) {
if (updates != null) updates(this);
}
@override
CreatePaymentMethodRequest build() => _build();
_$CreatePaymentMethodRequest _build() {
final _$result = _$v ??
_$CreatePaymentMethodRequest._(
code: BuiltValueNullFieldError.checkNotNull(
code, r'CreatePaymentMethodRequest', 'code'),
name: BuiltValueNullFieldError.checkNotNull(
name, r'CreatePaymentMethodRequest', 'name'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,199 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/service_kind.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'create_service_request.g.dart';
/// CreateServiceRequest
///
/// Properties:
/// * [key] - Eindeutiger Programm-Identifier (z. B. `\"podium_setup\"`).
/// * [kind]
/// * [maxValue]
/// * [minValue] - Nur bei `Numeric` sinnvoll.
/// * [name]
/// * [sortOrder]
@BuiltValue()
abstract class CreateServiceRequest implements Built<CreateServiceRequest, CreateServiceRequestBuilder> {
/// Eindeutiger Programm-Identifier (z. B. `\"podium_setup\"`).
@BuiltValueField(wireName: r'key')
String get key;
@BuiltValueField(wireName: r'kind')
ServiceKind get kind;
// enum kindEnum { boolean, numeric, };
@BuiltValueField(wireName: r'maxValue')
int? get maxValue;
/// Nur bei `Numeric` sinnvoll.
@BuiltValueField(wireName: r'minValue')
int? get minValue;
@BuiltValueField(wireName: r'name')
String get name;
@BuiltValueField(wireName: r'sortOrder')
int? get sortOrder;
CreateServiceRequest._();
factory CreateServiceRequest([void updates(CreateServiceRequestBuilder b)]) = _$CreateServiceRequest;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(CreateServiceRequestBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<CreateServiceRequest> get serializer => _$CreateServiceRequestSerializer();
}
class _$CreateServiceRequestSerializer implements PrimitiveSerializer<CreateServiceRequest> {
@override
final Iterable<Type> types = const [CreateServiceRequest, _$CreateServiceRequest];
@override
final String wireName = r'CreateServiceRequest';
Iterable<Object?> _serializeProperties(
Serializers serializers,
CreateServiceRequest object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'key';
yield serializers.serialize(
object.key,
specifiedType: const FullType(String),
);
yield r'kind';
yield serializers.serialize(
object.kind,
specifiedType: const FullType(ServiceKind),
);
if (object.maxValue != null) {
yield r'maxValue';
yield serializers.serialize(
object.maxValue,
specifiedType: const FullType.nullable(int),
);
}
if (object.minValue != null) {
yield r'minValue';
yield serializers.serialize(
object.minValue,
specifiedType: const FullType.nullable(int),
);
}
yield r'name';
yield serializers.serialize(
object.name,
specifiedType: const FullType(String),
);
if (object.sortOrder != null) {
yield r'sortOrder';
yield serializers.serialize(
object.sortOrder,
specifiedType: const FullType.nullable(int),
);
}
}
@override
Object serialize(
Serializers serializers,
CreateServiceRequest object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required CreateServiceRequestBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'key':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.key = valueDes;
break;
case r'kind':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(ServiceKind),
) as ServiceKind;
result.kind = valueDes;
break;
case r'maxValue':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(int),
) as int?;
if (valueDes == null) continue;
result.maxValue = valueDes;
break;
case r'minValue':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(int),
) as int?;
if (valueDes == null) continue;
result.minValue = valueDes;
break;
case r'name':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.name = valueDes;
break;
case r'sortOrder':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(int),
) as int?;
if (valueDes == null) continue;
result.sortOrder = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
CreateServiceRequest deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = CreateServiceRequestBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,159 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'create_service_request.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$CreateServiceRequest extends CreateServiceRequest {
@override
final String key;
@override
final ServiceKind kind;
@override
final int? maxValue;
@override
final int? minValue;
@override
final String name;
@override
final int? sortOrder;
factory _$CreateServiceRequest(
[void Function(CreateServiceRequestBuilder)? updates]) =>
(CreateServiceRequestBuilder()..update(updates))._build();
_$CreateServiceRequest._(
{required this.key,
required this.kind,
this.maxValue,
this.minValue,
required this.name,
this.sortOrder})
: super._();
@override
CreateServiceRequest rebuild(
void Function(CreateServiceRequestBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
CreateServiceRequestBuilder toBuilder() =>
CreateServiceRequestBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is CreateServiceRequest &&
key == other.key &&
kind == other.kind &&
maxValue == other.maxValue &&
minValue == other.minValue &&
name == other.name &&
sortOrder == other.sortOrder;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, key.hashCode);
_$hash = $jc(_$hash, kind.hashCode);
_$hash = $jc(_$hash, maxValue.hashCode);
_$hash = $jc(_$hash, minValue.hashCode);
_$hash = $jc(_$hash, name.hashCode);
_$hash = $jc(_$hash, sortOrder.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'CreateServiceRequest')
..add('key', key)
..add('kind', kind)
..add('maxValue', maxValue)
..add('minValue', minValue)
..add('name', name)
..add('sortOrder', sortOrder))
.toString();
}
}
class CreateServiceRequestBuilder
implements Builder<CreateServiceRequest, CreateServiceRequestBuilder> {
_$CreateServiceRequest? _$v;
String? _key;
String? get key => _$this._key;
set key(String? key) => _$this._key = key;
ServiceKind? _kind;
ServiceKind? get kind => _$this._kind;
set kind(ServiceKind? kind) => _$this._kind = kind;
int? _maxValue;
int? get maxValue => _$this._maxValue;
set maxValue(int? maxValue) => _$this._maxValue = maxValue;
int? _minValue;
int? get minValue => _$this._minValue;
set minValue(int? minValue) => _$this._minValue = minValue;
String? _name;
String? get name => _$this._name;
set name(String? name) => _$this._name = name;
int? _sortOrder;
int? get sortOrder => _$this._sortOrder;
set sortOrder(int? sortOrder) => _$this._sortOrder = sortOrder;
CreateServiceRequestBuilder() {
CreateServiceRequest._defaults(this);
}
CreateServiceRequestBuilder get _$this {
final $v = _$v;
if ($v != null) {
_key = $v.key;
_kind = $v.kind;
_maxValue = $v.maxValue;
_minValue = $v.minValue;
_name = $v.name;
_sortOrder = $v.sortOrder;
_$v = null;
}
return this;
}
@override
void replace(CreateServiceRequest other) {
_$v = other as _$CreateServiceRequest;
}
@override
void update(void Function(CreateServiceRequestBuilder)? updates) {
if (updates != null) updates(this);
}
@override
CreateServiceRequest build() => _build();
_$CreateServiceRequest _build() {
final _$result = _$v ??
_$CreateServiceRequest._(
key: BuiltValueNullFieldError.checkNotNull(
key, r'CreateServiceRequest', 'key'),
kind: BuiltValueNullFieldError.checkNotNull(
kind, r'CreateServiceRequest', 'kind'),
maxValue: maxValue,
minValue: minValue,
name: BuiltValueNullFieldError.checkNotNull(
name, r'CreateServiceRequest', 'name'),
sortOrder: sortOrder,
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,36 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'credit_action.g.dart';
class CreditAction extends EnumClass {
/// Art des Gutschrift-Ereignisses.
@BuiltValueEnumConst(wireName: r'set')
static const CreditAction set_ = _$set_;
/// Art des Gutschrift-Ereignisses.
@BuiltValueEnumConst(wireName: r'remove')
static const CreditAction remove = _$remove;
static Serializer<CreditAction> get serializer => _$creditActionSerializer;
const CreditAction._(String name): super(name);
static BuiltSet<CreditAction> get values => _$values;
static CreditAction valueOf(String name) => _$valueOf(name);
}
/// Optionally, enum_class can generate a mixin to go with your enum for use
/// with Angular. It exposes your enum constants as getters. So, if you mix it
/// in to your Dart component class, the values become available to the
/// corresponding Angular template.
///
/// Trigger mixin generation by writing a line like this one next to your enum.
abstract class CreditActionMixin = Object with _$CreditActionMixin;

View File

@ -0,0 +1,71 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'credit_action.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
const CreditAction _$set_ = const CreditAction._('set_');
const CreditAction _$remove = const CreditAction._('remove');
CreditAction _$valueOf(String name) {
switch (name) {
case 'set_':
return _$set_;
case 'remove':
return _$remove;
default:
throw ArgumentError(name);
}
}
final BuiltSet<CreditAction> _$values =
BuiltSet<CreditAction>(const <CreditAction>[
_$set_,
_$remove,
]);
class _$CreditActionMeta {
const _$CreditActionMeta();
CreditAction get set_ => _$set_;
CreditAction get remove => _$remove;
CreditAction valueOf(String name) => _$valueOf(name);
BuiltSet<CreditAction> get values => _$values;
}
abstract class _$CreditActionMixin {
// ignore: non_constant_identifier_names
_$CreditActionMeta get CreditAction => const _$CreditActionMeta();
}
Serializer<CreditAction> _$creditActionSerializer = _$CreditActionSerializer();
class _$CreditActionSerializer implements PrimitiveSerializer<CreditAction> {
static const Map<String, Object> _toWire = const <String, Object>{
'set_': 'set',
'remove': 'remove',
};
static const Map<Object, String> _fromWire = const <Object, String>{
'set': 'set_',
'remove': 'remove',
};
@override
final Iterable<Type> types = const <Type>[CreditAction];
@override
final String wireName = 'CreditAction';
@override
Object serialize(Serializers serializers, CreditAction object,
{FullType specifiedType = FullType.unspecified}) =>
_toWire[object.name] ?? object.name;
@override
CreditAction deserialize(Serializers serializers, Object serialized,
{FullType specifiedType = FullType.unspecified}) =>
CreditAction.valueOf(
_fromWire[serialized] ?? (serialized is String ? serialized : ''));
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,142 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'delivered_belegnummern_response.g.dart';
/// DeliveredBelegnummernResponse
///
/// Properties:
/// * [belegnummern] - Belegnummern aller **ausgelieferten** (abgeschlossenen) Lieferungen, deren Liefermail noch **nicht versendet** wurde, aufsteigend nach Abschluss-Zeitpunkt.
/// * [count] - Anzahl der offenen (noch nicht versendeten) Belege.
/// * [day] - Tag, nach dem gefiltert wurde (ISO `YYYY-MM-DD`), oder `\"all\"` wenn kein `day` angegeben war.
@BuiltValue()
abstract class DeliveredBelegnummernResponse implements Built<DeliveredBelegnummernResponse, DeliveredBelegnummernResponseBuilder> {
/// Belegnummern aller **ausgelieferten** (abgeschlossenen) Lieferungen, deren Liefermail noch **nicht versendet** wurde, aufsteigend nach Abschluss-Zeitpunkt.
@BuiltValueField(wireName: r'belegnummern')
BuiltList<String> get belegnummern;
/// Anzahl der offenen (noch nicht versendeten) Belege.
@BuiltValueField(wireName: r'count')
int get count;
/// Tag, nach dem gefiltert wurde (ISO `YYYY-MM-DD`), oder `\"all\"` wenn kein `day` angegeben war.
@BuiltValueField(wireName: r'day')
String get day;
DeliveredBelegnummernResponse._();
factory DeliveredBelegnummernResponse([void updates(DeliveredBelegnummernResponseBuilder b)]) = _$DeliveredBelegnummernResponse;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(DeliveredBelegnummernResponseBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<DeliveredBelegnummernResponse> get serializer => _$DeliveredBelegnummernResponseSerializer();
}
class _$DeliveredBelegnummernResponseSerializer implements PrimitiveSerializer<DeliveredBelegnummernResponse> {
@override
final Iterable<Type> types = const [DeliveredBelegnummernResponse, _$DeliveredBelegnummernResponse];
@override
final String wireName = r'DeliveredBelegnummernResponse';
Iterable<Object?> _serializeProperties(
Serializers serializers,
DeliveredBelegnummernResponse object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'belegnummern';
yield serializers.serialize(
object.belegnummern,
specifiedType: const FullType(BuiltList, [FullType(String)]),
);
yield r'count';
yield serializers.serialize(
object.count,
specifiedType: const FullType(int),
);
yield r'day';
yield serializers.serialize(
object.day,
specifiedType: const FullType(String),
);
}
@override
Object serialize(
Serializers serializers,
DeliveredBelegnummernResponse object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required DeliveredBelegnummernResponseBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'belegnummern':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(String)]),
) as BuiltList<String>;
result.belegnummern.replace(valueDes);
break;
case r'count':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.count = valueDes;
break;
case r'day':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.day = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
DeliveredBelegnummernResponse deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = DeliveredBelegnummernResponseBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,137 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'delivered_belegnummern_response.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$DeliveredBelegnummernResponse extends DeliveredBelegnummernResponse {
@override
final BuiltList<String> belegnummern;
@override
final int count;
@override
final String day;
factory _$DeliveredBelegnummernResponse(
[void Function(DeliveredBelegnummernResponseBuilder)? updates]) =>
(DeliveredBelegnummernResponseBuilder()..update(updates))._build();
_$DeliveredBelegnummernResponse._(
{required this.belegnummern, required this.count, required this.day})
: super._();
@override
DeliveredBelegnummernResponse rebuild(
void Function(DeliveredBelegnummernResponseBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
DeliveredBelegnummernResponseBuilder toBuilder() =>
DeliveredBelegnummernResponseBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is DeliveredBelegnummernResponse &&
belegnummern == other.belegnummern &&
count == other.count &&
day == other.day;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, belegnummern.hashCode);
_$hash = $jc(_$hash, count.hashCode);
_$hash = $jc(_$hash, day.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'DeliveredBelegnummernResponse')
..add('belegnummern', belegnummern)
..add('count', count)
..add('day', day))
.toString();
}
}
class DeliveredBelegnummernResponseBuilder
implements
Builder<DeliveredBelegnummernResponse,
DeliveredBelegnummernResponseBuilder> {
_$DeliveredBelegnummernResponse? _$v;
ListBuilder<String>? _belegnummern;
ListBuilder<String> get belegnummern =>
_$this._belegnummern ??= ListBuilder<String>();
set belegnummern(ListBuilder<String>? belegnummern) =>
_$this._belegnummern = belegnummern;
int? _count;
int? get count => _$this._count;
set count(int? count) => _$this._count = count;
String? _day;
String? get day => _$this._day;
set day(String? day) => _$this._day = day;
DeliveredBelegnummernResponseBuilder() {
DeliveredBelegnummernResponse._defaults(this);
}
DeliveredBelegnummernResponseBuilder get _$this {
final $v = _$v;
if ($v != null) {
_belegnummern = $v.belegnummern.toBuilder();
_count = $v.count;
_day = $v.day;
_$v = null;
}
return this;
}
@override
void replace(DeliveredBelegnummernResponse other) {
_$v = other as _$DeliveredBelegnummernResponse;
}
@override
void update(void Function(DeliveredBelegnummernResponseBuilder)? updates) {
if (updates != null) updates(this);
}
@override
DeliveredBelegnummernResponse build() => _build();
_$DeliveredBelegnummernResponse _build() {
_$DeliveredBelegnummernResponse _$result;
try {
_$result = _$v ??
_$DeliveredBelegnummernResponse._(
belegnummern: belegnummern.build(),
count: BuiltValueNullFieldError.checkNotNull(
count, r'DeliveredBelegnummernResponse', 'count'),
day: BuiltValueNullFieldError.checkNotNull(
day, r'DeliveredBelegnummernResponse', 'day'),
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'belegnummern';
belegnummern.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'DeliveredBelegnummernResponse', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -22,6 +22,8 @@ part 'delivery.g.dart';
/// * [erpBelegartId] - ERP-Beleg-Bezug: business-stabiles Paar `(Belegart, Belegnummer)`. Überlebt den Belegkopf-Archivübergang.
/// * [erpBelegnummer]
/// * [id]
/// * [paymentMethodId] - Für den Restbetrag gewählte Zahlungsart — FK auf `payment_methods`. Vom Kunden bei Bestellung festgelegt, der Fahrer übernimmt nur die Abwicklung. Aktiv-Flag und Anzeige-Name werden über die Stammdaten-Tabelle aufgelöst, nicht hier embeddet.
/// * [prepaidAmount] - Bei Bestellung schon bezahlter Betrag in EUR. `0.0` wenn der Kunde alles bei Lieferung zahlt. Wird vom ERP-Sync gefüllt.
/// * [specialAgreements] - Sondervereinbarungen (z. B. „Türklingel defekt, hintenrum klopfen\").
/// * [state]
/// * [stateReason] - Begründung bei `state == Held` oder `state == Canceled`. Beim Resume / Complete wieder `None`.
@ -57,6 +59,14 @@ abstract class Delivery {
@BuiltValueField(wireName: r'id')
String get id;
/// Für den Restbetrag gewählte Zahlungsart — FK auf `payment_methods`. Vom Kunden bei Bestellung festgelegt, der Fahrer übernimmt nur die Abwicklung. Aktiv-Flag und Anzeige-Name werden über die Stammdaten-Tabelle aufgelöst, nicht hier embeddet.
@BuiltValueField(wireName: r'paymentMethodId')
String get paymentMethodId;
/// Bei Bestellung schon bezahlter Betrag in EUR. `0.0` wenn der Kunde alles bei Lieferung zahlt. Wird vom ERP-Sync gefüllt.
@BuiltValueField(wireName: r'prepaidAmount')
double get prepaidAmount;
/// Sondervereinbarungen (z. B. „Türklingel defekt, hintenrum klopfen\").
@BuiltValueField(wireName: r'specialAgreements')
String? get specialAgreements;
@ -132,6 +142,16 @@ class _$DeliverySerializer implements PrimitiveSerializer<Delivery> {
object.id,
specifiedType: const FullType(String),
);
yield r'paymentMethodId';
yield serializers.serialize(
object.paymentMethodId,
specifiedType: const FullType(String),
);
yield r'prepaidAmount';
yield serializers.serialize(
object.prepaidAmount,
specifiedType: const FullType(double),
);
if (object.specialAgreements != null) {
yield r'specialAgreements';
yield serializers.serialize(
@ -277,6 +297,20 @@ class _$$DeliverySerializer implements PrimitiveSerializer<$Delivery> {
) as String;
result.id = valueDes;
break;
case r'paymentMethodId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.paymentMethodId = valueDes;
break;
case r'prepaidAmount':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(double),
) as double;
result.prepaidAmount = valueDes;
break;
case r'specialAgreements':
final valueDes = serializers.deserialize(
value,

View File

@ -33,6 +33,12 @@ abstract class DeliveryBuilder {
String? get id;
set id(String? id);
String? get paymentMethodId;
set paymentMethodId(String? paymentMethodId);
double? get prepaidAmount;
set prepaidAmount(double? prepaidAmount);
String? get specialAgreements;
set specialAgreements(String? specialAgreements);
@ -64,6 +70,10 @@ class _$$Delivery extends $Delivery {
@override
final String id;
@override
final String paymentMethodId;
@override
final double prepaidAmount;
@override
final String? specialAgreements;
@override
final DeliveryState state;
@ -84,6 +94,8 @@ class _$$Delivery extends $Delivery {
required this.erpBelegartId,
required this.erpBelegnummer,
required this.id,
required this.paymentMethodId,
required this.prepaidAmount,
this.specialAgreements,
required this.state,
this.stateReason,
@ -108,6 +120,8 @@ class _$$Delivery extends $Delivery {
erpBelegartId == other.erpBelegartId &&
erpBelegnummer == other.erpBelegnummer &&
id == other.id &&
paymentMethodId == other.paymentMethodId &&
prepaidAmount == other.prepaidAmount &&
specialAgreements == other.specialAgreements &&
state == other.state &&
stateReason == other.stateReason &&
@ -125,6 +139,8 @@ class _$$Delivery extends $Delivery {
_$hash = $jc(_$hash, erpBelegartId.hashCode);
_$hash = $jc(_$hash, erpBelegnummer.hashCode);
_$hash = $jc(_$hash, id.hashCode);
_$hash = $jc(_$hash, paymentMethodId.hashCode);
_$hash = $jc(_$hash, prepaidAmount.hashCode);
_$hash = $jc(_$hash, specialAgreements.hashCode);
_$hash = $jc(_$hash, state.hashCode);
_$hash = $jc(_$hash, stateReason.hashCode);
@ -144,6 +160,8 @@ class _$$Delivery extends $Delivery {
..add('erpBelegartId', erpBelegartId)
..add('erpBelegnummer', erpBelegnummer)
..add('id', id)
..add('paymentMethodId', paymentMethodId)
..add('prepaidAmount', prepaidAmount)
..add('specialAgreements', specialAgreements)
..add('state', state)
..add('stateReason', stateReason)
@ -198,6 +216,16 @@ class $DeliveryBuilder
String? get id => _$this._id;
set id(covariant String? id) => _$this._id = id;
String? _paymentMethodId;
String? get paymentMethodId => _$this._paymentMethodId;
set paymentMethodId(covariant String? paymentMethodId) =>
_$this._paymentMethodId = paymentMethodId;
double? _prepaidAmount;
double? get prepaidAmount => _$this._prepaidAmount;
set prepaidAmount(covariant double? prepaidAmount) =>
_$this._prepaidAmount = prepaidAmount;
String? _specialAgreements;
String? get specialAgreements => _$this._specialAgreements;
set specialAgreements(covariant String? specialAgreements) =>
@ -231,6 +259,8 @@ class $DeliveryBuilder
_erpBelegartId = $v.erpBelegartId;
_erpBelegnummer = $v.erpBelegnummer;
_id = $v.id;
_paymentMethodId = $v.paymentMethodId;
_prepaidAmount = $v.prepaidAmount;
_specialAgreements = $v.specialAgreements;
_state = $v.state;
_stateReason = $v.stateReason;
@ -269,6 +299,10 @@ class $DeliveryBuilder
erpBelegnummer: BuiltValueNullFieldError.checkNotNull(
erpBelegnummer, r'$Delivery', 'erpBelegnummer'),
id: BuiltValueNullFieldError.checkNotNull(id, r'$Delivery', 'id'),
paymentMethodId: BuiltValueNullFieldError.checkNotNull(
paymentMethodId, r'$Delivery', 'paymentMethodId'),
prepaidAmount: BuiltValueNullFieldError.checkNotNull(
prepaidAmount, r'$Delivery', 'prepaidAmount'),
specialAgreements: specialAgreements,
state: BuiltValueNullFieldError.checkNotNull(
state, r'$Delivery', 'state'),

View File

@ -0,0 +1,139 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'delivery_credit.g.dart';
/// Aktuelle Betrags-Gutschrift einer Lieferung (Geld-Nachlass, unabhängig von Stückzahl). Abgeleitet aus dem jüngsten Ereignis im append-only `delivery_credit_audit`; existiert nur, solange der letzte Stand `set` (und nicht `remove`) ist. `delivery_id` macht den Eintrag — wie eine Notiz — clientseitig per Lieferung join-bar.
///
/// Properties:
/// * [amountCents] - Gutschrift-Betrag in Cent (> 0, ≤ 15000).
/// * [deliveryId]
/// * [reason]
@BuiltValue()
abstract class DeliveryCredit implements Built<DeliveryCredit, DeliveryCreditBuilder> {
/// Gutschrift-Betrag in Cent (> 0, ≤ 15000).
@BuiltValueField(wireName: r'amountCents')
int get amountCents;
@BuiltValueField(wireName: r'deliveryId')
String get deliveryId;
@BuiltValueField(wireName: r'reason')
String get reason;
DeliveryCredit._();
factory DeliveryCredit([void updates(DeliveryCreditBuilder b)]) = _$DeliveryCredit;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(DeliveryCreditBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<DeliveryCredit> get serializer => _$DeliveryCreditSerializer();
}
class _$DeliveryCreditSerializer implements PrimitiveSerializer<DeliveryCredit> {
@override
final Iterable<Type> types = const [DeliveryCredit, _$DeliveryCredit];
@override
final String wireName = r'DeliveryCredit';
Iterable<Object?> _serializeProperties(
Serializers serializers,
DeliveryCredit object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'amountCents';
yield serializers.serialize(
object.amountCents,
specifiedType: const FullType(int),
);
yield r'deliveryId';
yield serializers.serialize(
object.deliveryId,
specifiedType: const FullType(String),
);
yield r'reason';
yield serializers.serialize(
object.reason,
specifiedType: const FullType(String),
);
}
@override
Object serialize(
Serializers serializers,
DeliveryCredit object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required DeliveryCreditBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'amountCents':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.amountCents = valueDes;
break;
case r'deliveryId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.deliveryId = valueDes;
break;
case r'reason':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.reason = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
DeliveryCredit deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = DeliveryCreditBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,120 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'delivery_credit.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$DeliveryCredit extends DeliveryCredit {
@override
final int amountCents;
@override
final String deliveryId;
@override
final String reason;
factory _$DeliveryCredit([void Function(DeliveryCreditBuilder)? updates]) =>
(DeliveryCreditBuilder()..update(updates))._build();
_$DeliveryCredit._(
{required this.amountCents,
required this.deliveryId,
required this.reason})
: super._();
@override
DeliveryCredit rebuild(void Function(DeliveryCreditBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
DeliveryCreditBuilder toBuilder() => DeliveryCreditBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is DeliveryCredit &&
amountCents == other.amountCents &&
deliveryId == other.deliveryId &&
reason == other.reason;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, amountCents.hashCode);
_$hash = $jc(_$hash, deliveryId.hashCode);
_$hash = $jc(_$hash, reason.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'DeliveryCredit')
..add('amountCents', amountCents)
..add('deliveryId', deliveryId)
..add('reason', reason))
.toString();
}
}
class DeliveryCreditBuilder
implements Builder<DeliveryCredit, DeliveryCreditBuilder> {
_$DeliveryCredit? _$v;
int? _amountCents;
int? get amountCents => _$this._amountCents;
set amountCents(int? amountCents) => _$this._amountCents = amountCents;
String? _deliveryId;
String? get deliveryId => _$this._deliveryId;
set deliveryId(String? deliveryId) => _$this._deliveryId = deliveryId;
String? _reason;
String? get reason => _$this._reason;
set reason(String? reason) => _$this._reason = reason;
DeliveryCreditBuilder() {
DeliveryCredit._defaults(this);
}
DeliveryCreditBuilder get _$this {
final $v = _$v;
if ($v != null) {
_amountCents = $v.amountCents;
_deliveryId = $v.deliveryId;
_reason = $v.reason;
_$v = null;
}
return this;
}
@override
void replace(DeliveryCredit other) {
_$v = other as _$DeliveryCredit;
}
@override
void update(void Function(DeliveryCreditBuilder)? updates) {
if (updates != null) updates(this);
}
@override
DeliveryCredit build() => _build();
_$DeliveryCredit _build() {
final _$result = _$v ??
_$DeliveryCredit._(
amountCents: BuiltValueNullFieldError.checkNotNull(
amountCents, r'DeliveryCredit', 'amountCents'),
deliveryId: BuiltValueNullFieldError.checkNotNull(
deliveryId, r'DeliveryCredit', 'deliveryId'),
reason: BuiltValueNullFieldError.checkNotNull(
reason, r'DeliveryCredit', 'reason'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,185 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/credit_action.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'delivery_credit_event_request.g.dart';
/// DeliveryCreditEventRequest
///
/// Properties:
/// * [action]
/// * [amountCents] - Bei `Set` Pflicht: Betrag in Cent (> 0, ≤ 15000, Vielfaches von 1000).
/// * [authorCarId] - Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören.
/// * [clientEventId] - Idempotenz-Schlüssel — pro erzeugtem Ereignis genau einmal vergeben. Ein Retry mit derselben Id wendet nichts erneut an.
/// * [reason] - Bei `Set` Pflicht: Begründung.
@BuiltValue()
abstract class DeliveryCreditEventRequest implements Built<DeliveryCreditEventRequest, DeliveryCreditEventRequestBuilder> {
@BuiltValueField(wireName: r'action')
CreditAction get action;
// enum actionEnum { set, remove, };
/// Bei `Set` Pflicht: Betrag in Cent (> 0, ≤ 15000, Vielfaches von 1000).
@BuiltValueField(wireName: r'amountCents')
int? get amountCents;
/// Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören.
@BuiltValueField(wireName: r'authorCarId')
String? get authorCarId;
/// Idempotenz-Schlüssel — pro erzeugtem Ereignis genau einmal vergeben. Ein Retry mit derselben Id wendet nichts erneut an.
@BuiltValueField(wireName: r'clientEventId')
String get clientEventId;
/// Bei `Set` Pflicht: Begründung.
@BuiltValueField(wireName: r'reason')
String? get reason;
DeliveryCreditEventRequest._();
factory DeliveryCreditEventRequest([void updates(DeliveryCreditEventRequestBuilder b)]) = _$DeliveryCreditEventRequest;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(DeliveryCreditEventRequestBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<DeliveryCreditEventRequest> get serializer => _$DeliveryCreditEventRequestSerializer();
}
class _$DeliveryCreditEventRequestSerializer implements PrimitiveSerializer<DeliveryCreditEventRequest> {
@override
final Iterable<Type> types = const [DeliveryCreditEventRequest, _$DeliveryCreditEventRequest];
@override
final String wireName = r'DeliveryCreditEventRequest';
Iterable<Object?> _serializeProperties(
Serializers serializers,
DeliveryCreditEventRequest object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'action';
yield serializers.serialize(
object.action,
specifiedType: const FullType(CreditAction),
);
if (object.amountCents != null) {
yield r'amountCents';
yield serializers.serialize(
object.amountCents,
specifiedType: const FullType.nullable(int),
);
}
if (object.authorCarId != null) {
yield r'authorCarId';
yield serializers.serialize(
object.authorCarId,
specifiedType: const FullType.nullable(String),
);
}
yield r'clientEventId';
yield serializers.serialize(
object.clientEventId,
specifiedType: const FullType(String),
);
if (object.reason != null) {
yield r'reason';
yield serializers.serialize(
object.reason,
specifiedType: const FullType.nullable(String),
);
}
}
@override
Object serialize(
Serializers serializers,
DeliveryCreditEventRequest object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required DeliveryCreditEventRequestBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'action':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(CreditAction),
) as CreditAction;
result.action = valueDes;
break;
case r'amountCents':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(int),
) as int?;
if (valueDes == null) continue;
result.amountCents = valueDes;
break;
case r'authorCarId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.authorCarId = valueDes;
break;
case r'clientEventId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.clientEventId = valueDes;
break;
case r'reason':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.reason = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
DeliveryCreditEventRequest deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = DeliveryCreditEventRequestBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,148 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'delivery_credit_event_request.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$DeliveryCreditEventRequest extends DeliveryCreditEventRequest {
@override
final CreditAction action;
@override
final int? amountCents;
@override
final String? authorCarId;
@override
final String clientEventId;
@override
final String? reason;
factory _$DeliveryCreditEventRequest(
[void Function(DeliveryCreditEventRequestBuilder)? updates]) =>
(DeliveryCreditEventRequestBuilder()..update(updates))._build();
_$DeliveryCreditEventRequest._(
{required this.action,
this.amountCents,
this.authorCarId,
required this.clientEventId,
this.reason})
: super._();
@override
DeliveryCreditEventRequest rebuild(
void Function(DeliveryCreditEventRequestBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
DeliveryCreditEventRequestBuilder toBuilder() =>
DeliveryCreditEventRequestBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is DeliveryCreditEventRequest &&
action == other.action &&
amountCents == other.amountCents &&
authorCarId == other.authorCarId &&
clientEventId == other.clientEventId &&
reason == other.reason;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, action.hashCode);
_$hash = $jc(_$hash, amountCents.hashCode);
_$hash = $jc(_$hash, authorCarId.hashCode);
_$hash = $jc(_$hash, clientEventId.hashCode);
_$hash = $jc(_$hash, reason.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'DeliveryCreditEventRequest')
..add('action', action)
..add('amountCents', amountCents)
..add('authorCarId', authorCarId)
..add('clientEventId', clientEventId)
..add('reason', reason))
.toString();
}
}
class DeliveryCreditEventRequestBuilder
implements
Builder<DeliveryCreditEventRequest, DeliveryCreditEventRequestBuilder> {
_$DeliveryCreditEventRequest? _$v;
CreditAction? _action;
CreditAction? get action => _$this._action;
set action(CreditAction? action) => _$this._action = action;
int? _amountCents;
int? get amountCents => _$this._amountCents;
set amountCents(int? amountCents) => _$this._amountCents = amountCents;
String? _authorCarId;
String? get authorCarId => _$this._authorCarId;
set authorCarId(String? authorCarId) => _$this._authorCarId = authorCarId;
String? _clientEventId;
String? get clientEventId => _$this._clientEventId;
set clientEventId(String? clientEventId) =>
_$this._clientEventId = clientEventId;
String? _reason;
String? get reason => _$this._reason;
set reason(String? reason) => _$this._reason = reason;
DeliveryCreditEventRequestBuilder() {
DeliveryCreditEventRequest._defaults(this);
}
DeliveryCreditEventRequestBuilder get _$this {
final $v = _$v;
if ($v != null) {
_action = $v.action;
_amountCents = $v.amountCents;
_authorCarId = $v.authorCarId;
_clientEventId = $v.clientEventId;
_reason = $v.reason;
_$v = null;
}
return this;
}
@override
void replace(DeliveryCreditEventRequest other) {
_$v = other as _$DeliveryCreditEventRequest;
}
@override
void update(void Function(DeliveryCreditEventRequestBuilder)? updates) {
if (updates != null) updates(this);
}
@override
DeliveryCreditEventRequest build() => _build();
_$DeliveryCreditEventRequest _build() {
final _$result = _$v ??
_$DeliveryCreditEventRequest._(
action: BuiltValueNullFieldError.checkNotNull(
action, r'DeliveryCreditEventRequest', 'action'),
amountCents: amountCents,
authorCarId: authorCarId,
clientEventId: BuiltValueNullFieldError.checkNotNull(
clientEventId, r'DeliveryCreditEventRequest', 'clientEventId'),
reason: reason,
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,111 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/delivery_credit.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'delivery_credit_response.g.dart';
/// DeliveryCreditResponse
///
/// Properties:
/// * [credit] - Aktueller Stand nach dem Ereignis — `None`, wenn (zuletzt) entfernt.
@BuiltValue()
abstract class DeliveryCreditResponse implements Built<DeliveryCreditResponse, DeliveryCreditResponseBuilder> {
/// Aktueller Stand nach dem Ereignis — `None`, wenn (zuletzt) entfernt.
@BuiltValueField(wireName: r'credit')
DeliveryCredit? get credit;
DeliveryCreditResponse._();
factory DeliveryCreditResponse([void updates(DeliveryCreditResponseBuilder b)]) = _$DeliveryCreditResponse;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(DeliveryCreditResponseBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<DeliveryCreditResponse> get serializer => _$DeliveryCreditResponseSerializer();
}
class _$DeliveryCreditResponseSerializer implements PrimitiveSerializer<DeliveryCreditResponse> {
@override
final Iterable<Type> types = const [DeliveryCreditResponse, _$DeliveryCreditResponse];
@override
final String wireName = r'DeliveryCreditResponse';
Iterable<Object?> _serializeProperties(
Serializers serializers,
DeliveryCreditResponse object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
if (object.credit != null) {
yield r'credit';
yield serializers.serialize(
object.credit,
specifiedType: const FullType.nullable(DeliveryCredit),
);
}
}
@override
Object serialize(
Serializers serializers,
DeliveryCreditResponse object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required DeliveryCreditResponseBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'credit':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(DeliveryCredit),
) as DeliveryCredit?;
if (valueDes == null) continue;
result.credit.replace(valueDes);
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
DeliveryCreditResponse deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = DeliveryCreditResponseBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,107 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'delivery_credit_response.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$DeliveryCreditResponse extends DeliveryCreditResponse {
@override
final DeliveryCredit? credit;
factory _$DeliveryCreditResponse(
[void Function(DeliveryCreditResponseBuilder)? updates]) =>
(DeliveryCreditResponseBuilder()..update(updates))._build();
_$DeliveryCreditResponse._({this.credit}) : super._();
@override
DeliveryCreditResponse rebuild(
void Function(DeliveryCreditResponseBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
DeliveryCreditResponseBuilder toBuilder() =>
DeliveryCreditResponseBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is DeliveryCreditResponse && credit == other.credit;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, credit.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'DeliveryCreditResponse')
..add('credit', credit))
.toString();
}
}
class DeliveryCreditResponseBuilder
implements Builder<DeliveryCreditResponse, DeliveryCreditResponseBuilder> {
_$DeliveryCreditResponse? _$v;
DeliveryCreditBuilder? _credit;
DeliveryCreditBuilder get credit =>
_$this._credit ??= DeliveryCreditBuilder();
set credit(DeliveryCreditBuilder? credit) => _$this._credit = credit;
DeliveryCreditResponseBuilder() {
DeliveryCreditResponse._defaults(this);
}
DeliveryCreditResponseBuilder get _$this {
final $v = _$v;
if ($v != null) {
_credit = $v.credit?.toBuilder();
_$v = null;
}
return this;
}
@override
void replace(DeliveryCreditResponse other) {
_$v = other as _$DeliveryCreditResponse;
}
@override
void update(void Function(DeliveryCreditResponseBuilder)? updates) {
if (updates != null) updates(this);
}
@override
DeliveryCreditResponse build() => _build();
_$DeliveryCreditResponse _build() {
_$DeliveryCreditResponse _$result;
try {
_$result = _$v ??
_$DeliveryCreditResponse._(
credit: _credit?.build(),
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'credit';
_credit?.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'DeliveryCreditResponse', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -17,8 +17,10 @@ part 'delivery_item.g.dart';
/// * [deliveryId]
/// * [id]
/// * [komponentenArtikelNr] - Bei Items aus einer Stückliste: Artikelnummer der Komponente. Bei regulären Belegzeilen: `None`.
/// * [parentArtikelNr] - Artikelnummer des Oberartikels, zu dem diese Komponente gehört. `None` bei Oberartikeln/regulären Zeilen — die App rückt Komponenten darüber unter ihrem Oberartikel ein.
/// * [requiredQuantity]
/// * [scanState]
/// * [unitPrice] - Stückpreis (brutto, EUR) aus dem ERP-Sync. Der Warenwert einer Lieferung = Σ `unit_price` × ausgelieferte Menge.
/// * [warehouseId]
@BuiltValue()
abstract class DeliveryItem implements Built<DeliveryItem, DeliveryItemBuilder> {
@ -39,12 +41,20 @@ abstract class DeliveryItem implements Built<DeliveryItem, DeliveryItemBuilder>
@BuiltValueField(wireName: r'komponentenArtikelNr')
String? get komponentenArtikelNr;
/// Artikelnummer des Oberartikels, zu dem diese Komponente gehört. `None` bei Oberartikeln/regulären Zeilen — die App rückt Komponenten darüber unter ihrem Oberartikel ein.
@BuiltValueField(wireName: r'parentArtikelNr')
String? get parentArtikelNr;
@BuiltValueField(wireName: r'requiredQuantity')
int get requiredQuantity;
@BuiltValueField(wireName: r'scanState')
ScanState get scanState;
/// Stückpreis (brutto, EUR) aus dem ERP-Sync. Der Warenwert einer Lieferung = Σ `unit_price` × ausgelieferte Menge.
@BuiltValueField(wireName: r'unitPrice')
double get unitPrice;
@BuiltValueField(wireName: r'warehouseId')
String get warehouseId;
@ -98,6 +108,13 @@ class _$DeliveryItemSerializer implements PrimitiveSerializer<DeliveryItem> {
specifiedType: const FullType.nullable(String),
);
}
if (object.parentArtikelNr != null) {
yield r'parentArtikelNr';
yield serializers.serialize(
object.parentArtikelNr,
specifiedType: const FullType.nullable(String),
);
}
yield r'requiredQuantity';
yield serializers.serialize(
object.requiredQuantity,
@ -108,6 +125,11 @@ class _$DeliveryItemSerializer implements PrimitiveSerializer<DeliveryItem> {
object.scanState,
specifiedType: const FullType(ScanState),
);
yield r'unitPrice';
yield serializers.serialize(
object.unitPrice,
specifiedType: const FullType(double),
);
yield r'warehouseId';
yield serializers.serialize(
object.warehouseId,
@ -172,6 +194,14 @@ class _$DeliveryItemSerializer implements PrimitiveSerializer<DeliveryItem> {
if (valueDes == null) continue;
result.komponentenArtikelNr = valueDes;
break;
case r'parentArtikelNr':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.parentArtikelNr = valueDes;
break;
case r'requiredQuantity':
final valueDes = serializers.deserialize(
value,
@ -186,6 +216,13 @@ class _$DeliveryItemSerializer implements PrimitiveSerializer<DeliveryItem> {
) as ScanState;
result.scanState.replace(valueDes);
break;
case r'unitPrice':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(double),
) as double;
result.unitPrice = valueDes;
break;
case r'warehouseId':
final valueDes = serializers.deserialize(
value,

View File

@ -18,10 +18,14 @@ class _$DeliveryItem extends DeliveryItem {
@override
final String? komponentenArtikelNr;
@override
final String? parentArtikelNr;
@override
final int requiredQuantity;
@override
final ScanState scanState;
@override
final double unitPrice;
@override
final String warehouseId;
factory _$DeliveryItem([void Function(DeliveryItemBuilder)? updates]) =>
@ -33,8 +37,10 @@ class _$DeliveryItem extends DeliveryItem {
required this.deliveryId,
required this.id,
this.komponentenArtikelNr,
this.parentArtikelNr,
required this.requiredQuantity,
required this.scanState,
required this.unitPrice,
required this.warehouseId})
: super._();
@override
@ -53,8 +59,10 @@ class _$DeliveryItem extends DeliveryItem {
deliveryId == other.deliveryId &&
id == other.id &&
komponentenArtikelNr == other.komponentenArtikelNr &&
parentArtikelNr == other.parentArtikelNr &&
requiredQuantity == other.requiredQuantity &&
scanState == other.scanState &&
unitPrice == other.unitPrice &&
warehouseId == other.warehouseId;
}
@ -66,8 +74,10 @@ class _$DeliveryItem extends DeliveryItem {
_$hash = $jc(_$hash, deliveryId.hashCode);
_$hash = $jc(_$hash, id.hashCode);
_$hash = $jc(_$hash, komponentenArtikelNr.hashCode);
_$hash = $jc(_$hash, parentArtikelNr.hashCode);
_$hash = $jc(_$hash, requiredQuantity.hashCode);
_$hash = $jc(_$hash, scanState.hashCode);
_$hash = $jc(_$hash, unitPrice.hashCode);
_$hash = $jc(_$hash, warehouseId.hashCode);
_$hash = $jf(_$hash);
return _$hash;
@ -81,8 +91,10 @@ class _$DeliveryItem extends DeliveryItem {
..add('deliveryId', deliveryId)
..add('id', id)
..add('komponentenArtikelNr', komponentenArtikelNr)
..add('parentArtikelNr', parentArtikelNr)
..add('requiredQuantity', requiredQuantity)
..add('scanState', scanState)
..add('unitPrice', unitPrice)
..add('warehouseId', warehouseId))
.toString();
}
@ -114,6 +126,11 @@ class DeliveryItemBuilder
set komponentenArtikelNr(String? komponentenArtikelNr) =>
_$this._komponentenArtikelNr = komponentenArtikelNr;
String? _parentArtikelNr;
String? get parentArtikelNr => _$this._parentArtikelNr;
set parentArtikelNr(String? parentArtikelNr) =>
_$this._parentArtikelNr = parentArtikelNr;
int? _requiredQuantity;
int? get requiredQuantity => _$this._requiredQuantity;
set requiredQuantity(int? requiredQuantity) =>
@ -123,6 +140,10 @@ class DeliveryItemBuilder
ScanStateBuilder get scanState => _$this._scanState ??= ScanStateBuilder();
set scanState(ScanStateBuilder? scanState) => _$this._scanState = scanState;
double? _unitPrice;
double? get unitPrice => _$this._unitPrice;
set unitPrice(double? unitPrice) => _$this._unitPrice = unitPrice;
String? _warehouseId;
String? get warehouseId => _$this._warehouseId;
set warehouseId(String? warehouseId) => _$this._warehouseId = warehouseId;
@ -139,8 +160,10 @@ class DeliveryItemBuilder
_deliveryId = $v.deliveryId;
_id = $v.id;
_komponentenArtikelNr = $v.komponentenArtikelNr;
_parentArtikelNr = $v.parentArtikelNr;
_requiredQuantity = $v.requiredQuantity;
_scanState = $v.scanState.toBuilder();
_unitPrice = $v.unitPrice;
_warehouseId = $v.warehouseId;
_$v = null;
}
@ -174,9 +197,12 @@ class DeliveryItemBuilder
id: BuiltValueNullFieldError.checkNotNull(
id, r'DeliveryItem', 'id'),
komponentenArtikelNr: komponentenArtikelNr,
parentArtikelNr: parentArtikelNr,
requiredQuantity: BuiltValueNullFieldError.checkNotNull(
requiredQuantity, r'DeliveryItem', 'requiredQuantity'),
scanState: scanState.build(),
unitPrice: BuiltValueNullFieldError.checkNotNull(
unitPrice, r'DeliveryItem', 'unitPrice'),
warehouseId: BuiltValueNullFieldError.checkNotNull(
warehouseId, r'DeliveryItem', 'warehouseId'),
);

View File

@ -14,9 +14,12 @@ part 'delivery_note.g.dart';
/// * [authorCarId] - Fahrzeug, falls bekannt — nullable bis das Backend Cars verwaltet.
/// * [authorPersonalnummer] - Personalnummer des Akteurs (aus dem JWT). Pflicht.
/// * [createdAt]
/// * [creditDeliveryItemId] - Wenn die Notiz als Gutschrift-Grund zu einer Belegzeile angelegt wurde: deren `DeliveryItem`-Id. Erlaubt dem Client, die Notiz beim Zurücknehmen der Gutschrift (Unremove) gezielt wieder zu löschen. `None` bei normalen Text-/Foto-Notizen.
/// * [deliveryId]
/// * [id]
/// * [imageAttachment] - Referenz auf einen Bild-Anhang (z. B. Object-Storage-Key/URL).
/// * [imageAttachmentDeleted] - `true`, wenn die lokale Bilddatei nach erfolgreichem Report-Upload gelöscht wurde (das Bild steckt nun im Lieferbericht in DOCUframe). Read-only; die App zeigt dann statt der Vorschau einen Hinweis. Bei Text-Notizen / vorhandenem Bild: `false`.
/// * [isAmountCreditNote] - `true`, wenn die Notiz den Grund einer **Betrags-Gutschrift** (Geld-Nachlass, Lieferungs-Ebene) dokumentiert. Erlaubt dem Client, sie beim Entfernen der Gutschrift gezielt zu löschen.
/// * [text]
@BuiltValue()
abstract class DeliveryNote implements Built<DeliveryNote, DeliveryNoteBuilder> {
@ -31,6 +34,10 @@ abstract class DeliveryNote implements Built<DeliveryNote, DeliveryNoteBuilder>
@BuiltValueField(wireName: r'createdAt')
DateTime get createdAt;
/// Wenn die Notiz als Gutschrift-Grund zu einer Belegzeile angelegt wurde: deren `DeliveryItem`-Id. Erlaubt dem Client, die Notiz beim Zurücknehmen der Gutschrift (Unremove) gezielt wieder zu löschen. `None` bei normalen Text-/Foto-Notizen.
@BuiltValueField(wireName: r'creditDeliveryItemId')
String? get creditDeliveryItemId;
@BuiltValueField(wireName: r'deliveryId')
String get deliveryId;
@ -41,6 +48,14 @@ abstract class DeliveryNote implements Built<DeliveryNote, DeliveryNoteBuilder>
@BuiltValueField(wireName: r'imageAttachment')
String? get imageAttachment;
/// `true`, wenn die lokale Bilddatei nach erfolgreichem Report-Upload gelöscht wurde (das Bild steckt nun im Lieferbericht in DOCUframe). Read-only; die App zeigt dann statt der Vorschau einen Hinweis. Bei Text-Notizen / vorhandenem Bild: `false`.
@BuiltValueField(wireName: r'imageAttachmentDeleted')
bool? get imageAttachmentDeleted;
/// `true`, wenn die Notiz den Grund einer **Betrags-Gutschrift** (Geld-Nachlass, Lieferungs-Ebene) dokumentiert. Erlaubt dem Client, sie beim Entfernen der Gutschrift gezielt zu löschen.
@BuiltValueField(wireName: r'isAmountCreditNote')
bool get isAmountCreditNote;
@BuiltValueField(wireName: r'text')
String? get text;
@ -84,6 +99,13 @@ class _$DeliveryNoteSerializer implements PrimitiveSerializer<DeliveryNote> {
object.createdAt,
specifiedType: const FullType(DateTime),
);
if (object.creditDeliveryItemId != null) {
yield r'creditDeliveryItemId';
yield serializers.serialize(
object.creditDeliveryItemId,
specifiedType: const FullType.nullable(String),
);
}
yield r'deliveryId';
yield serializers.serialize(
object.deliveryId,
@ -101,6 +123,18 @@ class _$DeliveryNoteSerializer implements PrimitiveSerializer<DeliveryNote> {
specifiedType: const FullType.nullable(String),
);
}
if (object.imageAttachmentDeleted != null) {
yield r'imageAttachmentDeleted';
yield serializers.serialize(
object.imageAttachmentDeleted,
specifiedType: const FullType(bool),
);
}
yield r'isAmountCreditNote';
yield serializers.serialize(
object.isAmountCreditNote,
specifiedType: const FullType(bool),
);
if (object.text != null) {
yield r'text';
yield serializers.serialize(
@ -153,6 +187,14 @@ class _$DeliveryNoteSerializer implements PrimitiveSerializer<DeliveryNote> {
) as DateTime;
result.createdAt = valueDes;
break;
case r'creditDeliveryItemId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.creditDeliveryItemId = valueDes;
break;
case r'deliveryId':
final valueDes = serializers.deserialize(
value,
@ -175,6 +217,20 @@ class _$DeliveryNoteSerializer implements PrimitiveSerializer<DeliveryNote> {
if (valueDes == null) continue;
result.imageAttachment = valueDes;
break;
case r'imageAttachmentDeleted':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(bool),
) as bool;
result.imageAttachmentDeleted = valueDes;
break;
case r'isAmountCreditNote':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(bool),
) as bool;
result.isAmountCreditNote = valueDes;
break;
case r'text':
final valueDes = serializers.deserialize(
value,

View File

@ -14,12 +14,18 @@ class _$DeliveryNote extends DeliveryNote {
@override
final DateTime createdAt;
@override
final String? creditDeliveryItemId;
@override
final String deliveryId;
@override
final String id;
@override
final String? imageAttachment;
@override
final bool? imageAttachmentDeleted;
@override
final bool isAmountCreditNote;
@override
final String? text;
factory _$DeliveryNote([void Function(DeliveryNoteBuilder)? updates]) =>
@ -29,9 +35,12 @@ class _$DeliveryNote extends DeliveryNote {
{this.authorCarId,
required this.authorPersonalnummer,
required this.createdAt,
this.creditDeliveryItemId,
required this.deliveryId,
required this.id,
this.imageAttachment,
this.imageAttachmentDeleted,
required this.isAmountCreditNote,
this.text})
: super._();
@override
@ -48,9 +57,12 @@ class _$DeliveryNote extends DeliveryNote {
authorCarId == other.authorCarId &&
authorPersonalnummer == other.authorPersonalnummer &&
createdAt == other.createdAt &&
creditDeliveryItemId == other.creditDeliveryItemId &&
deliveryId == other.deliveryId &&
id == other.id &&
imageAttachment == other.imageAttachment &&
imageAttachmentDeleted == other.imageAttachmentDeleted &&
isAmountCreditNote == other.isAmountCreditNote &&
text == other.text;
}
@ -60,9 +72,12 @@ class _$DeliveryNote extends DeliveryNote {
_$hash = $jc(_$hash, authorCarId.hashCode);
_$hash = $jc(_$hash, authorPersonalnummer.hashCode);
_$hash = $jc(_$hash, createdAt.hashCode);
_$hash = $jc(_$hash, creditDeliveryItemId.hashCode);
_$hash = $jc(_$hash, deliveryId.hashCode);
_$hash = $jc(_$hash, id.hashCode);
_$hash = $jc(_$hash, imageAttachment.hashCode);
_$hash = $jc(_$hash, imageAttachmentDeleted.hashCode);
_$hash = $jc(_$hash, isAmountCreditNote.hashCode);
_$hash = $jc(_$hash, text.hashCode);
_$hash = $jf(_$hash);
return _$hash;
@ -74,9 +89,12 @@ class _$DeliveryNote extends DeliveryNote {
..add('authorCarId', authorCarId)
..add('authorPersonalnummer', authorPersonalnummer)
..add('createdAt', createdAt)
..add('creditDeliveryItemId', creditDeliveryItemId)
..add('deliveryId', deliveryId)
..add('id', id)
..add('imageAttachment', imageAttachment)
..add('imageAttachmentDeleted', imageAttachmentDeleted)
..add('isAmountCreditNote', isAmountCreditNote)
..add('text', text))
.toString();
}
@ -99,6 +117,11 @@ class DeliveryNoteBuilder
DateTime? get createdAt => _$this._createdAt;
set createdAt(DateTime? createdAt) => _$this._createdAt = createdAt;
String? _creditDeliveryItemId;
String? get creditDeliveryItemId => _$this._creditDeliveryItemId;
set creditDeliveryItemId(String? creditDeliveryItemId) =>
_$this._creditDeliveryItemId = creditDeliveryItemId;
String? _deliveryId;
String? get deliveryId => _$this._deliveryId;
set deliveryId(String? deliveryId) => _$this._deliveryId = deliveryId;
@ -112,6 +135,16 @@ class DeliveryNoteBuilder
set imageAttachment(String? imageAttachment) =>
_$this._imageAttachment = imageAttachment;
bool? _imageAttachmentDeleted;
bool? get imageAttachmentDeleted => _$this._imageAttachmentDeleted;
set imageAttachmentDeleted(bool? imageAttachmentDeleted) =>
_$this._imageAttachmentDeleted = imageAttachmentDeleted;
bool? _isAmountCreditNote;
bool? get isAmountCreditNote => _$this._isAmountCreditNote;
set isAmountCreditNote(bool? isAmountCreditNote) =>
_$this._isAmountCreditNote = isAmountCreditNote;
String? _text;
String? get text => _$this._text;
set text(String? text) => _$this._text = text;
@ -126,9 +159,12 @@ class DeliveryNoteBuilder
_authorCarId = $v.authorCarId;
_authorPersonalnummer = $v.authorPersonalnummer;
_createdAt = $v.createdAt;
_creditDeliveryItemId = $v.creditDeliveryItemId;
_deliveryId = $v.deliveryId;
_id = $v.id;
_imageAttachment = $v.imageAttachment;
_imageAttachmentDeleted = $v.imageAttachmentDeleted;
_isAmountCreditNote = $v.isAmountCreditNote;
_text = $v.text;
_$v = null;
}
@ -156,10 +192,14 @@ class DeliveryNoteBuilder
authorPersonalnummer, r'DeliveryNote', 'authorPersonalnummer'),
createdAt: BuiltValueNullFieldError.checkNotNull(
createdAt, r'DeliveryNote', 'createdAt'),
creditDeliveryItemId: creditDeliveryItemId,
deliveryId: BuiltValueNullFieldError.checkNotNull(
deliveryId, r'DeliveryNote', 'deliveryId'),
id: BuiltValueNullFieldError.checkNotNull(id, r'DeliveryNote', 'id'),
imageAttachment: imageAttachment,
imageAttachmentDeleted: imageAttachmentDeleted,
isAmountCreditNote: BuiltValueNullFieldError.checkNotNull(
isAmountCreditNote, r'DeliveryNote', 'isAmountCreditNote'),
text: text,
);
replace(_$result);

View File

@ -0,0 +1,107 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/delivery_service_value.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'delivery_service_response.g.dart';
/// DeliveryServiceResponse
///
/// Properties:
/// * [value]
@BuiltValue()
abstract class DeliveryServiceResponse implements Built<DeliveryServiceResponse, DeliveryServiceResponseBuilder> {
@BuiltValueField(wireName: r'value')
DeliveryServiceValue get value;
DeliveryServiceResponse._();
factory DeliveryServiceResponse([void updates(DeliveryServiceResponseBuilder b)]) = _$DeliveryServiceResponse;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(DeliveryServiceResponseBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<DeliveryServiceResponse> get serializer => _$DeliveryServiceResponseSerializer();
}
class _$DeliveryServiceResponseSerializer implements PrimitiveSerializer<DeliveryServiceResponse> {
@override
final Iterable<Type> types = const [DeliveryServiceResponse, _$DeliveryServiceResponse];
@override
final String wireName = r'DeliveryServiceResponse';
Iterable<Object?> _serializeProperties(
Serializers serializers,
DeliveryServiceResponse object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'value';
yield serializers.serialize(
object.value,
specifiedType: const FullType(DeliveryServiceValue),
);
}
@override
Object serialize(
Serializers serializers,
DeliveryServiceResponse object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required DeliveryServiceResponseBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'value':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(DeliveryServiceValue),
) as DeliveryServiceValue;
result.value.replace(valueDes);
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
DeliveryServiceResponse deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = DeliveryServiceResponseBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,108 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'delivery_service_response.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$DeliveryServiceResponse extends DeliveryServiceResponse {
@override
final DeliveryServiceValue value;
factory _$DeliveryServiceResponse(
[void Function(DeliveryServiceResponseBuilder)? updates]) =>
(DeliveryServiceResponseBuilder()..update(updates))._build();
_$DeliveryServiceResponse._({required this.value}) : super._();
@override
DeliveryServiceResponse rebuild(
void Function(DeliveryServiceResponseBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
DeliveryServiceResponseBuilder toBuilder() =>
DeliveryServiceResponseBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is DeliveryServiceResponse && value == other.value;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, value.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'DeliveryServiceResponse')
..add('value', value))
.toString();
}
}
class DeliveryServiceResponseBuilder
implements
Builder<DeliveryServiceResponse, DeliveryServiceResponseBuilder> {
_$DeliveryServiceResponse? _$v;
DeliveryServiceValueBuilder? _value;
DeliveryServiceValueBuilder get value =>
_$this._value ??= DeliveryServiceValueBuilder();
set value(DeliveryServiceValueBuilder? value) => _$this._value = value;
DeliveryServiceResponseBuilder() {
DeliveryServiceResponse._defaults(this);
}
DeliveryServiceResponseBuilder get _$this {
final $v = _$v;
if ($v != null) {
_value = $v.value.toBuilder();
_$v = null;
}
return this;
}
@override
void replace(DeliveryServiceResponse other) {
_$v = other as _$DeliveryServiceResponse;
}
@override
void update(void Function(DeliveryServiceResponseBuilder)? updates) {
if (updates != null) updates(this);
}
@override
DeliveryServiceResponse build() => _build();
_$DeliveryServiceResponse _build() {
_$DeliveryServiceResponse _$result;
try {
_$result = _$v ??
_$DeliveryServiceResponse._(
value: value.build(),
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'value';
value.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'DeliveryServiceResponse', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,160 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'delivery_service_value.g.dart';
/// Pro-Lieferung gewählter Wert eines Service. Genau einer der beiden Wert-Slots ist je nach `ServiceKind` gesetzt; per `service_id`/`delivery_id` clientseitig join-bar (wie Notizen/Gutschriften).
///
/// Properties:
/// * [boolValue]
/// * [deliveryId]
/// * [numericValue]
/// * [serviceId]
@BuiltValue()
abstract class DeliveryServiceValue implements Built<DeliveryServiceValue, DeliveryServiceValueBuilder> {
@BuiltValueField(wireName: r'boolValue')
bool? get boolValue;
@BuiltValueField(wireName: r'deliveryId')
String get deliveryId;
@BuiltValueField(wireName: r'numericValue')
int? get numericValue;
@BuiltValueField(wireName: r'serviceId')
String get serviceId;
DeliveryServiceValue._();
factory DeliveryServiceValue([void updates(DeliveryServiceValueBuilder b)]) = _$DeliveryServiceValue;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(DeliveryServiceValueBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<DeliveryServiceValue> get serializer => _$DeliveryServiceValueSerializer();
}
class _$DeliveryServiceValueSerializer implements PrimitiveSerializer<DeliveryServiceValue> {
@override
final Iterable<Type> types = const [DeliveryServiceValue, _$DeliveryServiceValue];
@override
final String wireName = r'DeliveryServiceValue';
Iterable<Object?> _serializeProperties(
Serializers serializers,
DeliveryServiceValue object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
if (object.boolValue != null) {
yield r'boolValue';
yield serializers.serialize(
object.boolValue,
specifiedType: const FullType.nullable(bool),
);
}
yield r'deliveryId';
yield serializers.serialize(
object.deliveryId,
specifiedType: const FullType(String),
);
if (object.numericValue != null) {
yield r'numericValue';
yield serializers.serialize(
object.numericValue,
specifiedType: const FullType.nullable(int),
);
}
yield r'serviceId';
yield serializers.serialize(
object.serviceId,
specifiedType: const FullType(String),
);
}
@override
Object serialize(
Serializers serializers,
DeliveryServiceValue object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required DeliveryServiceValueBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'boolValue':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(bool),
) as bool?;
if (valueDes == null) continue;
result.boolValue = valueDes;
break;
case r'deliveryId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.deliveryId = valueDes;
break;
case r'numericValue':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(int),
) as int?;
if (valueDes == null) continue;
result.numericValue = valueDes;
break;
case r'serviceId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.serviceId = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
DeliveryServiceValue deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = DeliveryServiceValueBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,134 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'delivery_service_value.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$DeliveryServiceValue extends DeliveryServiceValue {
@override
final bool? boolValue;
@override
final String deliveryId;
@override
final int? numericValue;
@override
final String serviceId;
factory _$DeliveryServiceValue(
[void Function(DeliveryServiceValueBuilder)? updates]) =>
(DeliveryServiceValueBuilder()..update(updates))._build();
_$DeliveryServiceValue._(
{this.boolValue,
required this.deliveryId,
this.numericValue,
required this.serviceId})
: super._();
@override
DeliveryServiceValue rebuild(
void Function(DeliveryServiceValueBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
DeliveryServiceValueBuilder toBuilder() =>
DeliveryServiceValueBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is DeliveryServiceValue &&
boolValue == other.boolValue &&
deliveryId == other.deliveryId &&
numericValue == other.numericValue &&
serviceId == other.serviceId;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, boolValue.hashCode);
_$hash = $jc(_$hash, deliveryId.hashCode);
_$hash = $jc(_$hash, numericValue.hashCode);
_$hash = $jc(_$hash, serviceId.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'DeliveryServiceValue')
..add('boolValue', boolValue)
..add('deliveryId', deliveryId)
..add('numericValue', numericValue)
..add('serviceId', serviceId))
.toString();
}
}
class DeliveryServiceValueBuilder
implements Builder<DeliveryServiceValue, DeliveryServiceValueBuilder> {
_$DeliveryServiceValue? _$v;
bool? _boolValue;
bool? get boolValue => _$this._boolValue;
set boolValue(bool? boolValue) => _$this._boolValue = boolValue;
String? _deliveryId;
String? get deliveryId => _$this._deliveryId;
set deliveryId(String? deliveryId) => _$this._deliveryId = deliveryId;
int? _numericValue;
int? get numericValue => _$this._numericValue;
set numericValue(int? numericValue) => _$this._numericValue = numericValue;
String? _serviceId;
String? get serviceId => _$this._serviceId;
set serviceId(String? serviceId) => _$this._serviceId = serviceId;
DeliveryServiceValueBuilder() {
DeliveryServiceValue._defaults(this);
}
DeliveryServiceValueBuilder get _$this {
final $v = _$v;
if ($v != null) {
_boolValue = $v.boolValue;
_deliveryId = $v.deliveryId;
_numericValue = $v.numericValue;
_serviceId = $v.serviceId;
_$v = null;
}
return this;
}
@override
void replace(DeliveryServiceValue other) {
_$v = other as _$DeliveryServiceValue;
}
@override
void update(void Function(DeliveryServiceValueBuilder)? updates) {
if (updates != null) updates(this);
}
@override
DeliveryServiceValue build() => _build();
_$DeliveryServiceValue _build() {
final _$result = _$v ??
_$DeliveryServiceValue._(
boolValue: boolValue,
deliveryId: BuiltValueNullFieldError.checkNotNull(
deliveryId, r'DeliveryServiceValue', 'deliveryId'),
numericValue: numericValue,
serviceId: BuiltValueNullFieldError.checkNotNull(
serviceId, r'DeliveryServiceValue', 'serviceId'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -24,6 +24,8 @@ part 'delivery_with_items.g.dart';
/// * [erpBelegartId] - ERP-Beleg-Bezug: business-stabiles Paar `(Belegart, Belegnummer)`. Überlebt den Belegkopf-Archivübergang.
/// * [erpBelegnummer]
/// * [id]
/// * [paymentMethodId] - Für den Restbetrag gewählte Zahlungsart — FK auf `payment_methods`. Vom Kunden bei Bestellung festgelegt, der Fahrer übernimmt nur die Abwicklung. Aktiv-Flag und Anzeige-Name werden über die Stammdaten-Tabelle aufgelöst, nicht hier embeddet.
/// * [prepaidAmount] - Bei Bestellung schon bezahlter Betrag in EUR. `0.0` wenn der Kunde alles bei Lieferung zahlt. Wird vom ERP-Sync gefüllt.
/// * [specialAgreements] - Sondervereinbarungen (z. B. „Türklingel defekt, hintenrum klopfen\").
/// * [state]
/// * [stateReason] - Begründung bei `state == Held` oder `state == Canceled`. Beim Resume / Complete wieder `None`.
@ -67,6 +69,11 @@ class _$DeliveryWithItemsSerializer implements PrimitiveSerializer<DeliveryWithI
object.deliveryAddressSnapshot,
specifiedType: const FullType(Address),
);
yield r'prepaidAmount';
yield serializers.serialize(
object.prepaidAmount,
specifiedType: const FullType(double),
);
yield r'contactPersonIds';
yield serializers.serialize(
object.contactPersonIds,
@ -105,6 +112,11 @@ class _$DeliveryWithItemsSerializer implements PrimitiveSerializer<DeliveryWithI
specifiedType: const FullType.nullable(String),
);
}
yield r'paymentMethodId';
yield serializers.serialize(
object.paymentMethodId,
specifiedType: const FullType(String),
);
yield r'tourId';
yield serializers.serialize(
object.tourId,
@ -170,6 +182,13 @@ class _$DeliveryWithItemsSerializer implements PrimitiveSerializer<DeliveryWithI
) as Address;
result.deliveryAddressSnapshot.replace(valueDes);
break;
case r'prepaidAmount':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(double),
) as double;
result.prepaidAmount = valueDes;
break;
case r'contactPersonIds':
final valueDes = serializers.deserialize(
value,
@ -216,6 +235,13 @@ class _$DeliveryWithItemsSerializer implements PrimitiveSerializer<DeliveryWithI
if (valueDes == null) continue;
result.desiredTime = valueDes;
break;
case r'paymentMethodId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.paymentMethodId = valueDes;
break;
case r'tourId':
final valueDes = serializers.deserialize(
value,

View File

@ -28,6 +28,10 @@ class _$DeliveryWithItems extends DeliveryWithItems {
@override
final String id;
@override
final String paymentMethodId;
@override
final double prepaidAmount;
@override
final String? specialAgreements;
@override
final DeliveryState state;
@ -51,6 +55,8 @@ class _$DeliveryWithItems extends DeliveryWithItems {
required this.erpBelegartId,
required this.erpBelegnummer,
required this.id,
required this.paymentMethodId,
required this.prepaidAmount,
this.specialAgreements,
required this.state,
this.stateReason,
@ -78,6 +84,8 @@ class _$DeliveryWithItems extends DeliveryWithItems {
erpBelegartId == other.erpBelegartId &&
erpBelegnummer == other.erpBelegnummer &&
id == other.id &&
paymentMethodId == other.paymentMethodId &&
prepaidAmount == other.prepaidAmount &&
specialAgreements == other.specialAgreements &&
state == other.state &&
stateReason == other.stateReason &&
@ -97,6 +105,8 @@ class _$DeliveryWithItems extends DeliveryWithItems {
_$hash = $jc(_$hash, erpBelegartId.hashCode);
_$hash = $jc(_$hash, erpBelegnummer.hashCode);
_$hash = $jc(_$hash, id.hashCode);
_$hash = $jc(_$hash, paymentMethodId.hashCode);
_$hash = $jc(_$hash, prepaidAmount.hashCode);
_$hash = $jc(_$hash, specialAgreements.hashCode);
_$hash = $jc(_$hash, state.hashCode);
_$hash = $jc(_$hash, stateReason.hashCode);
@ -118,6 +128,8 @@ class _$DeliveryWithItems extends DeliveryWithItems {
..add('erpBelegartId', erpBelegartId)
..add('erpBelegnummer', erpBelegnummer)
..add('id', id)
..add('paymentMethodId', paymentMethodId)
..add('prepaidAmount', prepaidAmount)
..add('specialAgreements', specialAgreements)
..add('state', state)
..add('stateReason', stateReason)
@ -184,6 +196,16 @@ class DeliveryWithItemsBuilder
String? get id => _$this._id;
set id(covariant String? id) => _$this._id = id;
String? _paymentMethodId;
String? get paymentMethodId => _$this._paymentMethodId;
set paymentMethodId(covariant String? paymentMethodId) =>
_$this._paymentMethodId = paymentMethodId;
double? _prepaidAmount;
double? get prepaidAmount => _$this._prepaidAmount;
set prepaidAmount(covariant double? prepaidAmount) =>
_$this._prepaidAmount = prepaidAmount;
String? _specialAgreements;
String? get specialAgreements => _$this._specialAgreements;
set specialAgreements(covariant String? specialAgreements) =>
@ -219,6 +241,8 @@ class DeliveryWithItemsBuilder
_erpBelegartId = $v.erpBelegartId;
_erpBelegnummer = $v.erpBelegnummer;
_id = $v.id;
_paymentMethodId = $v.paymentMethodId;
_prepaidAmount = $v.prepaidAmount;
_specialAgreements = $v.specialAgreements;
_state = $v.state;
_stateReason = $v.stateReason;
@ -261,6 +285,10 @@ class DeliveryWithItemsBuilder
erpBelegnummer, r'DeliveryWithItems', 'erpBelegnummer'),
id: BuiltValueNullFieldError.checkNotNull(
id, r'DeliveryWithItems', 'id'),
paymentMethodId: BuiltValueNullFieldError.checkNotNull(
paymentMethodId, r'DeliveryWithItems', 'paymentMethodId'),
prepaidAmount: BuiltValueNullFieldError.checkNotNull(
prepaidAmount, r'DeliveryWithItems', 'prepaidAmount'),
specialAgreements: specialAgreements,
state: BuiltValueNullFieldError.checkNotNull(
state, r'DeliveryWithItems', 'state'),

View File

@ -0,0 +1,211 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_collection/built_collection.dart';
import 'package:holzleitner_api/src/model/date.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'import_summary.g.dart';
/// Ergebnis eines Import-Laufs — pro Fahrer-Tour Erfolg/Fehler getrennt, damit ein einzelner kaputter Beleg nicht den ganzen Tag blockiert.
///
/// Properties:
/// * [date]
/// * [driversProvisioned] - Anzahl der **neu** im Identity-Provider (Keycloak) angelegten Fahrer-Konten in diesem Lauf (0, wenn Provisionierung deaktiviert ist oder alle Konten bereits existierten).
/// * [errors] - Fehlertexte je fehlgeschlagener Fahrer-Tour (z. B. unbekannter Fahrer → FK auf `accounts`, oder Validierungsfehler).
/// * [provisioningErrors] - Fehlertexte der Konto-Provisionierung (Keycloak). Best-effort: ein Fehler hier blockiert den Touren-Import **nicht**.
/// * [toursFailed]
/// * [toursOk]
/// * [toursTotal]
@BuiltValue()
abstract class ImportSummary implements Built<ImportSummary, ImportSummaryBuilder> {
@BuiltValueField(wireName: r'date')
Date get date;
/// Anzahl der **neu** im Identity-Provider (Keycloak) angelegten Fahrer-Konten in diesem Lauf (0, wenn Provisionierung deaktiviert ist oder alle Konten bereits existierten).
@BuiltValueField(wireName: r'driversProvisioned')
int? get driversProvisioned;
/// Fehlertexte je fehlgeschlagener Fahrer-Tour (z. B. unbekannter Fahrer → FK auf `accounts`, oder Validierungsfehler).
@BuiltValueField(wireName: r'errors')
BuiltList<String> get errors;
/// Fehlertexte der Konto-Provisionierung (Keycloak). Best-effort: ein Fehler hier blockiert den Touren-Import **nicht**.
@BuiltValueField(wireName: r'provisioningErrors')
BuiltList<String>? get provisioningErrors;
@BuiltValueField(wireName: r'toursFailed')
int get toursFailed;
@BuiltValueField(wireName: r'toursOk')
int get toursOk;
@BuiltValueField(wireName: r'toursTotal')
int get toursTotal;
ImportSummary._();
factory ImportSummary([void updates(ImportSummaryBuilder b)]) = _$ImportSummary;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(ImportSummaryBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<ImportSummary> get serializer => _$ImportSummarySerializer();
}
class _$ImportSummarySerializer implements PrimitiveSerializer<ImportSummary> {
@override
final Iterable<Type> types = const [ImportSummary, _$ImportSummary];
@override
final String wireName = r'ImportSummary';
Iterable<Object?> _serializeProperties(
Serializers serializers,
ImportSummary object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'date';
yield serializers.serialize(
object.date,
specifiedType: const FullType(Date),
);
if (object.driversProvisioned != null) {
yield r'driversProvisioned';
yield serializers.serialize(
object.driversProvisioned,
specifiedType: const FullType(int),
);
}
yield r'errors';
yield serializers.serialize(
object.errors,
specifiedType: const FullType(BuiltList, [FullType(String)]),
);
if (object.provisioningErrors != null) {
yield r'provisioningErrors';
yield serializers.serialize(
object.provisioningErrors,
specifiedType: const FullType(BuiltList, [FullType(String)]),
);
}
yield r'toursFailed';
yield serializers.serialize(
object.toursFailed,
specifiedType: const FullType(int),
);
yield r'toursOk';
yield serializers.serialize(
object.toursOk,
specifiedType: const FullType(int),
);
yield r'toursTotal';
yield serializers.serialize(
object.toursTotal,
specifiedType: const FullType(int),
);
}
@override
Object serialize(
Serializers serializers,
ImportSummary object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required ImportSummaryBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'date':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(Date),
) as Date;
result.date = valueDes;
break;
case r'driversProvisioned':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.driversProvisioned = valueDes;
break;
case r'errors':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(String)]),
) as BuiltList<String>;
result.errors.replace(valueDes);
break;
case r'provisioningErrors':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(String)]),
) as BuiltList<String>;
result.provisioningErrors.replace(valueDes);
break;
case r'toursFailed':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.toursFailed = valueDes;
break;
case r'toursOk':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.toursOk = valueDes;
break;
case r'toursTotal':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.toursTotal = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
ImportSummary deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = ImportSummaryBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,187 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'import_summary.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$ImportSummary extends ImportSummary {
@override
final Date date;
@override
final int? driversProvisioned;
@override
final BuiltList<String> errors;
@override
final BuiltList<String>? provisioningErrors;
@override
final int toursFailed;
@override
final int toursOk;
@override
final int toursTotal;
factory _$ImportSummary([void Function(ImportSummaryBuilder)? updates]) =>
(ImportSummaryBuilder()..update(updates))._build();
_$ImportSummary._(
{required this.date,
this.driversProvisioned,
required this.errors,
this.provisioningErrors,
required this.toursFailed,
required this.toursOk,
required this.toursTotal})
: super._();
@override
ImportSummary rebuild(void Function(ImportSummaryBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
ImportSummaryBuilder toBuilder() => ImportSummaryBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is ImportSummary &&
date == other.date &&
driversProvisioned == other.driversProvisioned &&
errors == other.errors &&
provisioningErrors == other.provisioningErrors &&
toursFailed == other.toursFailed &&
toursOk == other.toursOk &&
toursTotal == other.toursTotal;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, date.hashCode);
_$hash = $jc(_$hash, driversProvisioned.hashCode);
_$hash = $jc(_$hash, errors.hashCode);
_$hash = $jc(_$hash, provisioningErrors.hashCode);
_$hash = $jc(_$hash, toursFailed.hashCode);
_$hash = $jc(_$hash, toursOk.hashCode);
_$hash = $jc(_$hash, toursTotal.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'ImportSummary')
..add('date', date)
..add('driversProvisioned', driversProvisioned)
..add('errors', errors)
..add('provisioningErrors', provisioningErrors)
..add('toursFailed', toursFailed)
..add('toursOk', toursOk)
..add('toursTotal', toursTotal))
.toString();
}
}
class ImportSummaryBuilder
implements Builder<ImportSummary, ImportSummaryBuilder> {
_$ImportSummary? _$v;
Date? _date;
Date? get date => _$this._date;
set date(Date? date) => _$this._date = date;
int? _driversProvisioned;
int? get driversProvisioned => _$this._driversProvisioned;
set driversProvisioned(int? driversProvisioned) =>
_$this._driversProvisioned = driversProvisioned;
ListBuilder<String>? _errors;
ListBuilder<String> get errors => _$this._errors ??= ListBuilder<String>();
set errors(ListBuilder<String>? errors) => _$this._errors = errors;
ListBuilder<String>? _provisioningErrors;
ListBuilder<String> get provisioningErrors =>
_$this._provisioningErrors ??= ListBuilder<String>();
set provisioningErrors(ListBuilder<String>? provisioningErrors) =>
_$this._provisioningErrors = provisioningErrors;
int? _toursFailed;
int? get toursFailed => _$this._toursFailed;
set toursFailed(int? toursFailed) => _$this._toursFailed = toursFailed;
int? _toursOk;
int? get toursOk => _$this._toursOk;
set toursOk(int? toursOk) => _$this._toursOk = toursOk;
int? _toursTotal;
int? get toursTotal => _$this._toursTotal;
set toursTotal(int? toursTotal) => _$this._toursTotal = toursTotal;
ImportSummaryBuilder() {
ImportSummary._defaults(this);
}
ImportSummaryBuilder get _$this {
final $v = _$v;
if ($v != null) {
_date = $v.date;
_driversProvisioned = $v.driversProvisioned;
_errors = $v.errors.toBuilder();
_provisioningErrors = $v.provisioningErrors?.toBuilder();
_toursFailed = $v.toursFailed;
_toursOk = $v.toursOk;
_toursTotal = $v.toursTotal;
_$v = null;
}
return this;
}
@override
void replace(ImportSummary other) {
_$v = other as _$ImportSummary;
}
@override
void update(void Function(ImportSummaryBuilder)? updates) {
if (updates != null) updates(this);
}
@override
ImportSummary build() => _build();
_$ImportSummary _build() {
_$ImportSummary _$result;
try {
_$result = _$v ??
_$ImportSummary._(
date: BuiltValueNullFieldError.checkNotNull(
date, r'ImportSummary', 'date'),
driversProvisioned: driversProvisioned,
errors: errors.build(),
provisioningErrors: _provisioningErrors?.build(),
toursFailed: BuiltValueNullFieldError.checkNotNull(
toursFailed, r'ImportSummary', 'toursFailed'),
toursOk: BuiltValueNullFieldError.checkNotNull(
toursOk, r'ImportSummary', 'toursOk'),
toursTotal: BuiltValueNullFieldError.checkNotNull(
toursTotal, r'ImportSummary', 'toursTotal'),
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'errors';
errors.build();
_$failedField = 'provisioningErrors';
_provisioningErrors?.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'ImportSummary', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,108 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'mark_mail_sent_request.g.dart';
/// MarkMailSentRequest
///
/// Properties:
/// * [belegnummern] - Belegnummern, deren Liefermail erfolgreich versendet wurde und die als versendet markiert werden sollen.
@BuiltValue()
abstract class MarkMailSentRequest implements Built<MarkMailSentRequest, MarkMailSentRequestBuilder> {
/// Belegnummern, deren Liefermail erfolgreich versendet wurde und die als versendet markiert werden sollen.
@BuiltValueField(wireName: r'belegnummern')
BuiltList<String> get belegnummern;
MarkMailSentRequest._();
factory MarkMailSentRequest([void updates(MarkMailSentRequestBuilder b)]) = _$MarkMailSentRequest;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(MarkMailSentRequestBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<MarkMailSentRequest> get serializer => _$MarkMailSentRequestSerializer();
}
class _$MarkMailSentRequestSerializer implements PrimitiveSerializer<MarkMailSentRequest> {
@override
final Iterable<Type> types = const [MarkMailSentRequest, _$MarkMailSentRequest];
@override
final String wireName = r'MarkMailSentRequest';
Iterable<Object?> _serializeProperties(
Serializers serializers,
MarkMailSentRequest object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'belegnummern';
yield serializers.serialize(
object.belegnummern,
specifiedType: const FullType(BuiltList, [FullType(String)]),
);
}
@override
Object serialize(
Serializers serializers,
MarkMailSentRequest object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required MarkMailSentRequestBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'belegnummern':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(String)]),
) as BuiltList<String>;
result.belegnummern.replace(valueDes);
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
MarkMailSentRequest deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = MarkMailSentRequestBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,108 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'mark_mail_sent_request.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$MarkMailSentRequest extends MarkMailSentRequest {
@override
final BuiltList<String> belegnummern;
factory _$MarkMailSentRequest(
[void Function(MarkMailSentRequestBuilder)? updates]) =>
(MarkMailSentRequestBuilder()..update(updates))._build();
_$MarkMailSentRequest._({required this.belegnummern}) : super._();
@override
MarkMailSentRequest rebuild(
void Function(MarkMailSentRequestBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
MarkMailSentRequestBuilder toBuilder() =>
MarkMailSentRequestBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is MarkMailSentRequest && belegnummern == other.belegnummern;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, belegnummern.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'MarkMailSentRequest')
..add('belegnummern', belegnummern))
.toString();
}
}
class MarkMailSentRequestBuilder
implements Builder<MarkMailSentRequest, MarkMailSentRequestBuilder> {
_$MarkMailSentRequest? _$v;
ListBuilder<String>? _belegnummern;
ListBuilder<String> get belegnummern =>
_$this._belegnummern ??= ListBuilder<String>();
set belegnummern(ListBuilder<String>? belegnummern) =>
_$this._belegnummern = belegnummern;
MarkMailSentRequestBuilder() {
MarkMailSentRequest._defaults(this);
}
MarkMailSentRequestBuilder get _$this {
final $v = _$v;
if ($v != null) {
_belegnummern = $v.belegnummern.toBuilder();
_$v = null;
}
return this;
}
@override
void replace(MarkMailSentRequest other) {
_$v = other as _$MarkMailSentRequest;
}
@override
void update(void Function(MarkMailSentRequestBuilder)? updates) {
if (updates != null) updates(this);
}
@override
MarkMailSentRequest build() => _build();
_$MarkMailSentRequest _build() {
_$MarkMailSentRequest _$result;
try {
_$result = _$v ??
_$MarkMailSentRequest._(
belegnummern: belegnummern.build(),
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'belegnummern';
belegnummern.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'MarkMailSentRequest', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,107 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'mark_mail_sent_response.g.dart';
/// MarkMailSentResponse
///
/// Properties:
/// * [marked] - Anzahl frisch markierter (vorher offener) Belege. Bereits markierte zählen nicht mit (idempotent).
@BuiltValue()
abstract class MarkMailSentResponse implements Built<MarkMailSentResponse, MarkMailSentResponseBuilder> {
/// Anzahl frisch markierter (vorher offener) Belege. Bereits markierte zählen nicht mit (idempotent).
@BuiltValueField(wireName: r'marked')
int get marked;
MarkMailSentResponse._();
factory MarkMailSentResponse([void updates(MarkMailSentResponseBuilder b)]) = _$MarkMailSentResponse;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(MarkMailSentResponseBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<MarkMailSentResponse> get serializer => _$MarkMailSentResponseSerializer();
}
class _$MarkMailSentResponseSerializer implements PrimitiveSerializer<MarkMailSentResponse> {
@override
final Iterable<Type> types = const [MarkMailSentResponse, _$MarkMailSentResponse];
@override
final String wireName = r'MarkMailSentResponse';
Iterable<Object?> _serializeProperties(
Serializers serializers,
MarkMailSentResponse object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'marked';
yield serializers.serialize(
object.marked,
specifiedType: const FullType(int),
);
}
@override
Object serialize(
Serializers serializers,
MarkMailSentResponse object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required MarkMailSentResponseBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'marked':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.marked = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
MarkMailSentResponse deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = MarkMailSentResponseBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,94 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'mark_mail_sent_response.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$MarkMailSentResponse extends MarkMailSentResponse {
@override
final int marked;
factory _$MarkMailSentResponse(
[void Function(MarkMailSentResponseBuilder)? updates]) =>
(MarkMailSentResponseBuilder()..update(updates))._build();
_$MarkMailSentResponse._({required this.marked}) : super._();
@override
MarkMailSentResponse rebuild(
void Function(MarkMailSentResponseBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
MarkMailSentResponseBuilder toBuilder() =>
MarkMailSentResponseBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is MarkMailSentResponse && marked == other.marked;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, marked.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'MarkMailSentResponse')
..add('marked', marked))
.toString();
}
}
class MarkMailSentResponseBuilder
implements Builder<MarkMailSentResponse, MarkMailSentResponseBuilder> {
_$MarkMailSentResponse? _$v;
int? _marked;
int? get marked => _$this._marked;
set marked(int? marked) => _$this._marked = marked;
MarkMailSentResponseBuilder() {
MarkMailSentResponse._defaults(this);
}
MarkMailSentResponseBuilder get _$this {
final $v = _$v;
if ($v != null) {
_marked = $v.marked;
_$v = null;
}
return this;
}
@override
void replace(MarkMailSentResponse other) {
_$v = other as _$MarkMailSentResponse;
}
@override
void update(void Function(MarkMailSentResponseBuilder)? updates) {
if (updates != null) updates(this);
}
@override
MarkMailSentResponse build() => _build();
_$MarkMailSentResponse _build() {
final _$result = _$v ??
_$MarkMailSentResponse._(
marked: BuiltValueNullFieldError.checkNotNull(
marked, r'MarkMailSentResponse', 'marked'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

Some files were not shown because too many files have changed in this diff Show More