import { FrameSectionKey } from '@/shared/types/frame';

export interface FrameEntryViewModel {
  readonly id: string;
  /** Canonical Sunday-start ISO date (drives the week picker). */
  readonly weekStart: string;
  /** Optional free-text label (e.g. "Spring Break week"); '' when none. */
  readonly weekLabel: string;
  /** Display string for the week, e.g. "June 7, 2026". */
  readonly weekOf: string;
  readonly postedDate: string;
  readonly formal: string;
  readonly recognition: string;
  readonly application: string;
  readonly management: string;
  readonly emotional: string;
  readonly author: string;
}

/** The fields an author edits (the display `weekOf` is derived, not edited). */
export interface EditableFrameEntry {
  readonly weekStart: string;
  readonly weekLabel: string;
  readonly postedDate: string;
  readonly formal: string;
  readonly recognition: string;
  readonly application: string;
  readonly management: string;
  readonly emotional: string;
  readonly author: string;
}

export type FrameEntryDraft = EditableFrameEntry;

export type FrameSectionValues = Pick<FrameEntryViewModel, FrameSectionKey>;
