# holzleitner_api (EXPERIMENTAL)
Backend für die Holzleitner-Lieferservice-App — Tour, Beladung, Ausführung.

This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 0.1.0
- Generator version: 7.10.0
- Build package: org.openapitools.codegen.languages.DartDioClientCodegen

## Requirements

* Dart 2.15.0+ or Flutter 2.8.0+
* Dio 5.0.0+ (https://pub.dev/packages/dio)

## Installation & Usage

### pub.dev
To use the package from [pub.dev](https://pub.dev), please include the following in pubspec.yaml
```yaml
dependencies:
  holzleitner_api: 1.0.0
```

### Github
If this Dart package is published to Github, please include the following in pubspec.yaml
```yaml
dependencies:
  holzleitner_api:
    git:
      url: https://github.com/GIT_USER_ID/GIT_REPO_ID.git
      #ref: main
```

### Local development
To use the package from your local drive, please include the following in pubspec.yaml
```yaml
dependencies:
  holzleitner_api:
    path: /path/to/holzleitner_api
```

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```dart
import 'package:holzleitner_api/holzleitner_api.dart';


final api = HolzleitnerApi().getAccountsApi();
final int personalnummer = 789; // int | Personalnummer des Accounts

try {
    final response = await api.getAccount(personalnummer);
    print(response);
} catch on DioException (e) {
    print("Exception when calling AccountsApi->getAccount: $e\n");
}

```

## Documentation for API Endpoints

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** (&#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.
[*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** (&#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;.
[*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 (&#x60;?w&#x3D;&amp;h&#x3D;&amp;q&#x3D;&amp;ext&#x3D;&amp;page&#x3D;&#x60;).
[*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 (&#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).
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**assignCar**](doc/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.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**cancel**](doc/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;.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**complete**](doc/DeliveriesApi.md#complete) | **POST** /deliveries/{delivery_id}/complete | Schließt die Lieferung ab — &#x60;state &#x3D; completed&#x60;. Nur aus &#x60;active&#x60;.
[*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 &#x60;text&#x60; und &#x60;imageAttachment&#x60; 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 &#x60;204 No Content&#x60;.
[*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\&quot;). Nur bei aktiver Lieferung. Antwort &#x60;204&#x60;.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**hold**](doc/DeliveriesApi.md#hold) | **POST** /deliveries/{delivery_id}/hold | Setzt die Lieferung auf &#x60;held&#x60;. Nur aus &#x60;active&#x60; zulässig.
[*DeliveriesApi*](doc/DeliveriesApi.md) | [**resume**](doc/DeliveriesApi.md#resume) | **POST** /deliveries/{delivery_id}/resume | Setzt die Lieferung zurück auf &#x60;active&#x60;. Nur aus &#x60;held&#x60; 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 (&#x60;boolValue&#x60;/&#x60;numericValue&#x60;) 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. &#x60;delivery_id&#x60; ist Teil des Pfads (REST-Konsistenz), die Notiz wird über &#x60;note_id&#x60; 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 &#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.
[*HealthApi*](doc/HealthApi.md) | [**health**](doc/HealthApi.md#health) | **GET** /health | Health-Endpoint für Load-Balancer und Container-Probes. Bewusst kein Auth — eine &#x60;200 ok&#x60;-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. &#x60;409 Conflict&#x60;, wenn die Methode von einer Lieferung referenziert wird — der Admin soll dann den &#x60;active &#x3D; false&#x60;-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. &#x60;409 Conflict&#x60;, 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 &#x60;sortOrder&#x60;).
[*ServicesApi*](doc/ServicesApi.md) | [**updateService**](doc/ServicesApi.md#updateservice) | **PATCH** /services/{id} | Patcht Name/Grenzen/Aktiv-Flag/Sortierung. &#x60;kind&#x60; 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 &#x60;(driver_personalnummer, tour_date)&#x60;, pro Lieferung &#x60;(belegart_id, belegnummer)&#x60;.
[*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).
[*ToursApi*](doc/ToursApi.md) | [**setDeliveryOrder**](doc/ToursApi.md#setdeliveryorder) | **PUT** /tours/{tour_id}/delivery-order | Schreibt die Sortier-Reihenfolge aller Lieferungen einer Tour neu. Der Client schickt die **vollständige** neue Reihenfolge; fehlende oder fremde Lieferungs-Ids werden mit &#x60;400 validation&#x60; abgelehnt.


## Documentation For Models

 - [Account](doc/Account.md)
 - [Address](doc/Address.md)
 - [ApplyScansRequest](doc/ApplyScansRequest.md)
 - [ApplyScansResponse](doc/ApplyScansResponse.md)
 - [Article](doc/Article.md)
 - [AssignCarRequest](doc/AssignCarRequest.md)
 - [AuditAction](doc/AuditAction.md)
 - [CancelDeliveryRequest](doc/CancelDeliveryRequest.md)
 - [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)
 - [SyncTourResponse](doc/SyncTourResponse.md)
 - [Tour](doc/Tour.md)
 - [TourDetails](doc/TourDetails.md)
 - [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)


## Documentation For Authorization


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)


## Author



