# 12. Resources: Flags and Silhouettes

## 1. Upload packages

Typical uploads:
1. `OperatorFlags.zip` (or `AirlineLogos.zip`) + optional `OperatorFlagsList.csv`
2. `DVSilhouettes.zip` (or `Silhouettes.zip`) + optional `Silhouettes.csv`

Supported image formats:
1. `.bmp`
2. `.png`

## 2. Runtime lookup logic

Operator flags:
1. frontend requests `/api/images/operator-flags/{operatorCode}.png?icaoType={type}`,
2. lookup priority is `OPERATOR-ICAOTYPE` first, then `OPERATOR`.

Silhouettes:
1. frontend requests `/api/images/silhouette/{icaoType}.png`,
2. lookup first uses `Silhouettes.csv`,
3. fallback tries direct `DVSilhouettes/{icaoType}.bmp/png` file.

If resource is not found, API returns transparent image instead of broken image icon.

## 3. CSV behavior on upload

1. separately uploaded CSV has priority over CSV found inside ZIP,
2. for `flags`, if CSV is missing system can regenerate `OperatorFlagsList.csv` from image files,
3. for `silhouettes`, provide `Silhouettes.csv` for deterministic mapping.

## 4. Verification after upload

1. check `Loaded` counters in admin panel,
2. verify operator flags in list/detail,
3. verify silhouettes in aircraft detail panel,
4. hard refresh browser if old cache is still used.