# 15. AircraftDB Editor & Custom Photos

# AircraftDB Editor and Custom Photos

## 1. AircraftDB Editor workflow

1. search supports ICAO, registration, owner, manufacturer, and type,
2. search returns up to 50 results,
3. selecting row loads full record by `AircraftID`,
4. create/update/delete operations refresh database lookup cache.

## 2. Duplicate ModeS behavior

1. `ModeS` is unique (`ICAO hex`),
2. creating/updating with existing `ModeS` returns conflict (`DUPLICATE_MODES`),
3. UI shows conflict warning and offers `Load existing aircraft`,
4. recommended path is to load existing record and update it instead of creating duplicate.

## 3. Custom aircraft photo upload

Requirements:
1. valid ICAO hex (`[0-9A-F]{6}`),
2. allowed formats: `PNG`, `JPG/JPEG`, `WEBP`, `BMP`,
3. max size: `8 MB`,
4. image signature is validated server-side.

Storage behavior:
1. stored path: `Images/AircraftPhotos/{ICAO}.{ext}`,
2. uploading new custom photo removes previous custom variants for same ICAO.

## 4. Display priority logic

Aircraft detail photo source order:
1. custom local aircraft photo,
2. PlaneSpotters fallback.

Deleting custom photo restores PlaneSpotters fallback behavior.