# 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.
[*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) | [**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) | [**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.
[*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.
[*ScansApi*](doc/ScansApi.md) | [**applyScans**](doc/ScansApi.md#applyscans) | **POST** /scans | Wendet eine Liste von Scan-Events idempotent an.
[*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)
 - [CreateCarRequest](doc/CreateCarRequest.md)
 - [CreateDeliveryNoteRequest](doc/CreateDeliveryNoteRequest.md)
 - [Customer](doc/Customer.md)
 - [CustomerContact](doc/CustomerContact.md)
 - [Delivery](doc/Delivery.md)
 - [DeliveryItem](doc/DeliveryItem.md)
 - [DeliveryNote](doc/DeliveryNote.md)
 - [DeliveryNoteResponse](doc/DeliveryNoteResponse.md)
 - [DeliveryOrderEntry](doc/DeliveryOrderEntry.md)
 - [DeliveryResponse](doc/DeliveryResponse.md)
 - [DeliveryState](doc/DeliveryState.md)
 - [DeliveryWithItems](doc/DeliveryWithItems.md)
 - [HoldDeliveryRequest](doc/HoldDeliveryRequest.md)
 - [ScanEvent](doc/ScanEvent.md)
 - [ScanResult](doc/ScanResult.md)
 - [ScanResultStatus](doc/ScanResultStatus.md)
 - [ScanState](doc/ScanState.md)
 - [ScanStatus](doc/ScanStatus.md)
 - [SetDeliveryOrderRequest](doc/SetDeliveryOrderRequest.md)
 - [SetDeliveryOrderResponse](doc/SetDeliveryOrderResponse.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)
 - [Warehouse](doc/Warehouse.md)


## Documentation For Authorization


Authentication schemes defined for the API:
### bearer_auth

- **Type**: HTTP Bearer Token authentication (JWT)


## Author



