1. WHS Rule 3.1b — ferdig, testet (117/117), rullet ut... nei, venter fortsatt (se under). 2. round.tee_name_snapshot-synk — ferdig, scratch-verifisert. 3. Optimistisk versjonssjekk for samtidig hull-redigering — ferdig bygget, og jeg fant og rettet en reell UX-bug underveis (en fullskjerm-feilvisning i stedet for en liten banner) som ellers ville gjort funksjonen verre enn ingenting. Alt er dokumentert i ADR-056/057 og CHANGELOG punkt 65–66. Deploy — rekkefølgen har betydning (migrasjonen må kjøre først, siden ny kode leser version-kolonnen): # 1. Migrasjon mot ekte teecup_db docker exec teeoff_db psql -U teeoff_admin -d teecup_db -f /opt/teecup/062_round_hole_version.sql # 2. Backend docker compose build teecup_api docker compose up -d teecup_api # 3. Frontend docker compose build teecup_frontend docker compose up -d teecup_frontend Og fortsatt uavklart fra tidligere: datakorreksjonen for din spesifikke runde UPDATE round SET tee_name_snapshot = '55' WHERE id = '520f9681-6e7f-49bf-8504-9ab223874285';
26 lines
1.1 KiB
TypeScript
26 lines
1.1 KiB
TypeScript
import type { MetadataRoute } from "next"
|
|
|
|
// PWA-manifest (ADR-028). Ikonene under er et ordentlig, polert app-ikon
|
|
// (ADR-055, 2026-08-10) -- ekte logo-vektor (ball+pokal+tee), full-bleed
|
|
// mørkegrønn bakgrunn, motiv sentrert innenfor maskerings-safe-zone --
|
|
// erstatter den forrige, dårlig beskårne versjonen (enorm hvit padding
|
|
// rundt en liten sentrert grafikk, se ADR-055 for detaljer).
|
|
// theme_color/background_color oppdatert til clubhouse-paletten (ADR-052)
|
|
// -- sto fortsatt på de gamle Forest Green-fargene.
|
|
export default function manifest(): MetadataRoute.Manifest {
|
|
return {
|
|
name: "TeeCup",
|
|
short_name: "TeeCup",
|
|
description: "Golfturnering i Ryder Cup-format — lag, scorekort og leaderboard.",
|
|
start_url: "/",
|
|
scope: "/",
|
|
display: "standalone",
|
|
background_color: "#f3f6ec",
|
|
theme_color: "#2f6b1e",
|
|
icons: [
|
|
{ src: "/icons/icon-192.png", sizes: "192x192", type: "image/png", purpose: "any" },
|
|
{ src: "/icons/icon-512.png", sizes: "512x512", type: "image/png", purpose: "any" },
|
|
{ src: "/icons/icon-maskable-512.png", sizes: "512x512", type: "image/png", purpose: "maskable" },
|
|
],
|
|
}
|
|
}
|