← Back to Index

FTDT (Flight Time / Duty Time) — Domain-Control Data-Gap Analysis

Scoping of the FTDT screen set (cumulative-limit dashboard · duty-period list · add/edit forms). Documentation only; no presentation work.

Figma file R6hPjBdjSIn6946qTJasUC · 8 nodes — dashboard 4535:14038 · select op-type 4535:14386 · duty periods 4544:5877 · archived 4575:9452 · add unaugmented 4535:14179 · add segment 4555:6566 · add rest 4603:13187 · add note 4603:13348. Source: Figma MCP + codebase (RestService, Data/Models/FlightTimeDutyTime/*, FTDTDataBase/FTDTDataSyncHelper, FTDT VMs) · Branch docs/ftdt-screen-data-gap.

Headline — data & computation complete. FTDT is a mature local-first feature: DutyPeriod CRUD + sync (Create/Update/SoftDeleteDutyPeriodAsync, GetDutyPeriodsUpdatedAtAsyncDutyPeriodExpanded, FTDTDataBase + FTDTDataSyncHelper). Every duration and limit on screen — Max Duty Period, Ends, the cumulative Flight/Duty-hour bars — is computed client-side by the FAR-117 / Canadian rest calculators (CalculatorRest_CAN et al.). No backend data gaps. Work is the presentation scaffolds (Duty Period Card, progress bar & labels, the form fields/toggle/stepper).
Dashboard
Cumulative limits (25:14038)
Duty Periods
Duty Period cards (4544:5877)
Add
Add duty period (4535:14179)

1 · Screens & controls

  1. Dashboard (4535:14038) — tabs (Cumulative Limitations · Duty Periods · Archived); cumulative Flight Hours & Duty Period Hours as progress bar & labels (used/limit · % · remaining) + Add Duty Period.
  2. Duty Periods (4544:5877) — list of card-duty period-alt (Duty Period Card): start datetime+offset · Max Duty Period (progress) · Ends · Duty hours · "Manage Flights & Details"; swipe → delete.
  3. Archived (4575:9452) — same card, soft-deleted periods (Deleted flag).
  4. Select op type (4535:14386) — choose DPOperationType (UnAug/Aug ± rest · single-duty · US/Canada).
  5. Add unaugmented / segment / rest / note (4535:14179 · 4555:6566 · 4603:13187 · 4603:13348) — forms: Master Form Field + toggle-settings (Acclimated) + computed Max Duty Period/Ends + Create/Cancel.

2 · Duty Period Card — data shape

3 · Data-source mapping

ElementDataSource (exists)Status
Duty period list / archivedperiods (+ deleted)GetDutyPeriodsUpdatedAtAsyncDutyPeriodExpanded; local FTDTDataBasemapped
Add / edit / delete perioddate · timezone · op type · segments · acclimatedCreate/Update/SoftDeleteDutyPeriodAsyncDutyPeriodmapped
Op-type selectionoperation typeDPOperationType enum (US + Canada)mapped
Max Duty Period / Ends / Dutycomputed durationsclient-side FAR-117 / CAN calculators (CalculatorRest_CAN)client-calc
Cumulative Flight/Duty hour barsused vs regulatory window · % · remainingclient-side aggregation of logged periods vs limit rulesclient-calc
Synccreate/update/delete reconciliationFTDTDataSyncHelper (Version, SyncStatus, RemoteId)mapped

4 · Confirm items

#ItemQuestion
1Regulatory limit rules (FAR-117 windows, Canadian rest)RESOLVED — all client-side calculators (FAR-117 / Canadian rest, CalculatorRest_CAN et al.); no backend rule config. Backend only persists/syncs DutyPeriod.
2Sub-entities (flight segments · rest · notes)Confirm the duty-period model (or DutyPeriodExpanded) carries the segment/rest/note collections backing the add screens.
3Acclimated / segments inputsConfirm these calc inputs persist on DutyPeriod.

4a · Background implementation

Interior-page background — correct pattern (verified 2026-06-26). The FTDT interior screen (4535:14038) uses bg-main (#f5f7fa) as the base background color for the content area, with a faint watermark image overlaid at mix-blend-multiply + object-cover. The navBar-bottom uses Surface/Brand (#05273e, dark navy) — the only element where dark navy is a background.

5 · New scaffold controls (presentation)

ControlNote
card-duty period-alt (Duty Period Card, new)Period summary + progress + manage/expand + swipe-delete.
progress bar & labels (new)Used/limit · % · remaining — dashboard cumulative bars + per-card Max Duty Period.
Master Form FieldDate / time-zone / segment / numeric inputs (shared control).
toggle-settingsAcclimated (and other boolean inputs).
btn-flight finder interior navTab nav (Cumulative · Duty Periods · Archived).

6 · Summary

Tracked in screen-mapping.html.