/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/

import { AttendanceSummary } from "./group";
import { Guest } from "./guest";

export interface Entity {
  id?: string;
}

export type TableArrangement = {
  id: string;
  number: number;
  name: string;
  guests?: Guest[];
  discomfort?: number;
  valid?: boolean;
  progress: number;
  status: 'in_progress' | 'completed' | 'not_started';
}

export type User = {
  id: string;
  email: string;
}

export type Captcha = {
  id: string;
  answer: string;
}

export type StructuredErrors = {
  [key: string]: string[] | string;
};

export type GlobalSummary = {
  expenses: ExpenseSummary; 
  guests: AttendanceSummary
}

export type ExpenseSummary = {
  projected: ExpensePossibleSummary;
  confirmed: ExpensePossibleSummary;
  status: StatusSummary;
}

export type ExpensePossibleSummary = {
  total: number;
  guests: number;
}
export type StatusSummary = {
  paid: number;
}