export type MeetingRequestStatus =
  | "Draft"
  | "Submitted"
  | "Under Review"
  | "Scheduled"
  | "Completed";

export type MeetingRequestIssueAgency = {
  agencyOrder: number;
  stakeholder?: {
    id?: number | null;
    name?: string | null;
    logo?: string | null;
  } | null;
};

export type MeetingRequestIssue = {
  id: number;

  // UI table/detail uses issue
  issue: string;

  // API uses title
  title?: string;

  category: string;
  description: string;
  recommendation: string;

  // Stored issue PDF path, when an issue document was uploaded.
  attachment?: string | null;
  createdAt?: string | null;

  status?: string;

  primaryAgency?: string;
  primaryAgencyLogo?: string | null;
  secondAgency?: string;
  secondAgencyLogo?: string | null;
  thirdAgency?: string;
  thirdAgencyLogo?: string | null;
  fourthAgency?: string;
  fourthAgencyLogo?: string | null;
  fifthAgency?: string;
  fifthAgencyLogo?: string | null;
  governmentAgencies?: MeetingRequestIssueAgency[] | null;
};

export type MeetingRequestGovernmentAgency = {
  id: number;
  name: string;
  logo?: string | null;
};

export type MeetingRequest = {
  id: number;
  title: string;
  description: string;
  status: MeetingRequestStatus;
  canCreateMeeting: boolean;

  issueCount: number;

  documentName: string;
  documentSize?: string;
  meetingRequestLetter?: string | null;

  requestedDate: string;
  requestedBy: string;
  year: number;

  privateSectorWG?: string;
  submittedBy?: string;
  coChairRequestedBy?: string;

  governmentAgencies?: MeetingRequestGovernmentAgency[];
  issues: MeetingRequestIssue[];
};
