Page Introduction

Page contract details

This contract page maps concrete frontend page behavior to API calls, payloads, and response fields.

  • Use the endpoint matrix as implementation checklist.
  • Use page-specific try-it for fast request verification.
  • Keep request/response shape aligned with listed frontend usage fields.

Platform Page Contract

06 - Customers

## Page purpose Kundesiden (`/booking/customers`) shows operativ kundeoverview: - aktive jobber - fullførte/avlyste jobber - siste aktivitet - hurtiglenke til siste bookingdetalj

3Mapped endpoints
1Frontend files
36Lines
1.8 KBFile size

Source: API-DOC/page-api-mapping/06-kunder.md

Mapped endpoints for this page

MethodPathScopeUI usageTest
GET/api/ws/v2/customer-jobs/overviewPage-specificPrimær datakilde for kundetabellTry-It
GET/api/ws/v2/bookingsShared fallbackFallback når overview feiler eller er tomTry-It
GET/api/ws/bookingsShared fallback (sekundær)Legacy fallback via bookingService ved v2-feilTry-It
GET/api/ws/v2/customer-jobs/overview

Scope: Page-specific

UI usage: Primær datakilde for kundetabell

Response fields used: items[].customer_*, active_jobs, completed_jobs, cancelled_jobs, latest_activity_at, latest_group_id, latest_booking_id

GET/api/ws/v2/bookings

Scope: Shared fallback

UI usage: Fallback når overview feiler eller er tom

Response fields used: bookingfelter brukt til lokal gruppering per kunde

GET/api/ws/bookings

Scope: Shared fallback (sekundær)

UI usage: Legacy fallback via bookingService ved v2-feil

Response fields used: bookingliste

Try this page endpoints

Interactive console below is filtered to endpoints mapped for this page contract.

Source markdown

06 - Customers

Page purpose

Kundesiden (/booking/customers) shows operativ kundeoverview:

  • aktive jobber
  • fullførte/avlyste jobber
  • siste aktivitet
  • hurtiglenke til siste bookingdetalj

Frontend methods and components

  • src/app/(private)/booking/customers/page.tsx
    • primært: getCustomerJobsOverview(...)
    • fallback: getBookings(...)
    • lokal mapping: mapOverviewToRows(...) og mapBookingsToRows(...)

Endpoint matrix

Scope Method Endpoint UI usage Request Response fields used by frontend
Page-specific GET /api/ws/v2/customer-jobs/overview Primær datakilde for kundetabell limit=200, sort=-latest_activity_at, ev. q items[].customer_*, active_jobs, completed_jobs, cancelled_jobs, latest_activity_at, latest_group_id, latest_booking_id
Shared fallback GET /api/ws/v2/bookings Fallback når overview feiler eller er tom limit=200, sort=-updated_at bookingfelter brukt til lokal gruppering per kunde
Shared fallback (sekundær) GET /api/ws/bookings Legacy fallback via bookingService ved v2-feil standard legacy params bookingliste

Contract and field usage

Frontend foretrekker ferdig aggregert customer-jobs/overview fordi den:

  • reduserer klient-side grouping
  • gir stabile tellerfelt for aktive/fullførte/avlyste

Når fallback brukes, utleder frontend selv:

  • kundekey fra e-post/telefon/navn
  • jobbstatistikk fra bookingstatus
  • siste aktivitet fra updated_at/created_at/startfelt

Viktige krav til backend

  • latest_group_id eller latest_booking_id bør alltid finnes for navigasjon til detaljside.
  • statuskoder må være konsistente med bookingdomene, ellers blir aktive/fullførte/avlyste tellere feil i fallback-logikken.