# YachtMemory Release 1.3.0 – Ankerplatzanalyse V1

## Fachlicher Scope

V1 zeigt ausschließlich verdichtete Kennzahlen eines ausgewählten Ankerplatzes.

### Aus `Anchorages`
- Ankerplatznummer
- Name
- Land
- Region
- Status
- Beginn
- Ende
- Dauer
- Position
- Schwoikreis
- maximale Tiefe
- maximale Windgeschwindigkeit
- maximale Kettenlänge
- maximale Kettenkraft

### Berechnet aus `ENVdata` innerhalb `start_time ... end_time`
- durchschnittliche Windgeschwindigkeit (`windspeed`)
- durchschnittliche Kettenlänge (`chainlength`)
- durchschnittliche Kettenkraft (`chainforceavg20`)

### Bewusst nicht enthalten
- keine Zeitreihen
- keine Minimalwerte
- keine mittlere Windrichtung
- keine Batterie-/Generator-/Solaranalyse
- keine Bewertung
- keine Datenbankänderung

Die Anzeige erfolgt mit einer Nachkommastelle.

## Architektur

- `AnchorageRepository`
  - liest den Ankerplatz aus der bestehenden Tabelle `Anchorages`
- `AnchorageAnalyzer`
  - berechnet die fehlenden Durchschnittswerte
- `AnchorageAnalysis`
  - unveränderliches fachliches Ergebnisobjekt
- `api/public/anchorage_analysis.php`
  - öffentliche JSON-Schnittstelle
- `public_widgets/anchorage-analysis`
  - reine Kennzahlenansicht, keine Diagramme

## Installation

```bash
cd /var/www/app.yachtmemory.net

mkdir -p backup/release-1.3.0-anchorage-analysis

cp public/public_vessel.php \
  backup/release-1.3.0-anchorage-analysis/public_vessel.php

if [ -d public_widgets/anchorage-analysis ]; then
  cp -a public_widgets/anchorage-analysis \
    backup/release-1.3.0-anchorage-analysis/
fi

unzip -o yachtmemory_release_1_3_0_anchorage_analysis_v1.zip

sudo mkdir -p src/domain src/repositories src/services
sudo mkdir -p api/public public_widgets/anchorage-analysis public

sudo cp \
  yachtmemory_release_1_3_0_anchorage_analysis_v1/src/domain/AnchorageAnalysis.php \
  src/domain/AnchorageAnalysis.php

sudo cp \
  yachtmemory_release_1_3_0_anchorage_analysis_v1/src/repositories/AnchorageRepository.php \
  src/repositories/AnchorageRepository.php

sudo cp \
  yachtmemory_release_1_3_0_anchorage_analysis_v1/src/services/AnchorageAnalyzer.php \
  src/services/AnchorageAnalyzer.php

sudo cp \
  yachtmemory_release_1_3_0_anchorage_analysis_v1/api/public/anchorage_analysis.php \
  api/public/anchorage_analysis.php

sudo cp -a \
  yachtmemory_release_1_3_0_anchorage_analysis_v1/public_widgets/anchorage-analysis/. \
  public_widgets/anchorage-analysis/

sudo cp \
  yachtmemory_release_1_3_0_anchorage_analysis_v1/public/public_vessel.php \
  public/public_vessel.php
```

## Syntaxprüfung

```bash
php -l src/domain/AnchorageAnalysis.php
php -l src/repositories/AnchorageRepository.php
php -l src/services/AnchorageAnalyzer.php
php -l api/public/anchorage_analysis.php
php -l public_widgets/anchorage-analysis/index.php
php -l public/public_vessel.php

node --check public_widgets/anchorage-analysis/widget.js
```

## API-Test mit Taormina #55

```bash
curl -sS \
'https://app.yachtmemory.net/api/public/anchorage_analysis.php?vessel=silent_sea&anchorage_number=55' \
| jq .
```

Erwartete Struktur:

```json
{
  "success": true,
  "schema": "yachtmemory.anchorage-analysis.v1",
  "vessel": "silent_sea",
  "analysis": {
    "identity": {},
    "stay": {},
    "position": {},
    "maximums": {},
    "averages": {}
  }
}
```

## Widget-Test

```text
https://app.yachtmemory.net/public_widgets/anchorage-analysis/?vessel=silent_sea&lang=de
```

Danach:

```text
https://app.yachtmemory.net/v/silent_sea?lang=de
```

und DE / EN / FR / IT prüfen.
