75 lines
1.9 KiB
Markdown
75 lines
1.9 KiB
Markdown
# Open Fixture Library
|
|
|
|
## Søgeflow
|
|
|
|
1. Web UI sender `POST /api/v1/fixtures/search-ofl?query=<tekst>`.
|
|
2. Backend bruger OFL API, eller falder tilbage til lokale testfixtures i `test-data/fixtures`.
|
|
3. Resultater vises som `manufacturer/fixture`.
|
|
|
|
## Preview
|
|
|
|
Preview kaldes via:
|
|
|
|
```http
|
|
POST /api/v1/fixtures/preview-ofl?manufacturer_key=<manufacturer>&fixture_key=<fixture>
|
|
```
|
|
|
|
Preview returnerer normaliseret fixturedata uden at skrive til lokal fixtureliste.
|
|
|
|
I UI kan brugeren:
|
|
|
|
- åbne preview,
|
|
- se schema-version,
|
|
- se kategorier,
|
|
- vælge og inspicere modes,
|
|
- se kanalindeks, displaynavn, precedence og opløsning.
|
|
|
|
## Import
|
|
|
|
Import kaldes via:
|
|
|
|
```http
|
|
POST /api/v1/fixtures/import-ofl?manufacturer_key=<manufacturer>&fixture_key=<fixture>
|
|
```
|
|
|
|
Import:
|
|
|
|
- henter rå OFL-data,
|
|
- normaliserer til TuxDMX-format,
|
|
- gemmer resultatet i lokal runtime/cache.
|
|
|
|
## Modevalg
|
|
|
|
Modevalg bruges i preview til inspektion af kanalstruktur. Importen bevarer alle normaliserede modes i fixturemodellen, så patch/UI senere kan vælge korrekt mode.
|
|
|
|
## Fixture-normalisering
|
|
|
|
Normalisering sker i `backend/app/fixtures/normalize.py`:
|
|
|
|
- OFL JSON læses ikke direkte af runtime.
|
|
- Hver mode bliver til en stabil intern struktur med:
|
|
- `key`
|
|
- `channel_count`
|
|
- `channels[]`
|
|
- Hver kanal får:
|
|
- `index`
|
|
- `key`
|
|
- `display_name`
|
|
- `precedence`
|
|
- `resolution`
|
|
|
|
Fallback-regel i denne leverance:
|
|
|
|
- kanaler med `dim` i navnet bliver markeret som `HTP`
|
|
- øvrige kanaler bliver markeret som `LTP`, medmindre OFL-data allerede angiver noget andet
|
|
|
|
## Offline fallback
|
|
|
|
Hvis OFL ikke kan nås, søger klienten i lokale fixtures under `test-data/fixtures`.
|
|
|
|
## Begrænsninger i denne leverance
|
|
|
|
- OFL update-diff, warnings og backup før fixturemigration er endnu ikke fuldt implementeret.
|
|
- Runtime persistence til database for importerede fixtures er kun delvist implementeret; preview/import virker i simulator-runtime og kan verificeres via API/UI.
|
|
|