export interface ContractPayload {
  title: string;
  paperlessDocumentId?: number | null;
  provider?: string | null;
  category?: string | null;
  contractStartDate?: string | null;
  contractEndDate?: string | null;
  terminationNoticeDays?: number | null;
  renewalPeriodMonths?: number | null;
  autoRenew?: boolean;
  price?: number | null;
  currency?: string;
  notes?: string | null;
  tags?: string[];
}

export interface Contract extends ContractPayload {
  id: number;
  createdAt: string;
  updatedAt: string;
}

export interface UpcomingDeadline {
  id: number;
  title: string;
  provider?: string | null;
  paperlessDocumentId?: number | null;
  contractEndDate?: string | null;
  terminationDeadline?: string | null;
  daysUntilDeadline?: number | null;
}

export type PaperlessDocument = Record<string, unknown> & {
  id?: number;
  title?: string;
  created?: string;
  modified?: string;
  notes?: string;
};

export interface PaperlessSearchResponse {
  count: number;
  next?: string | null;
  previous?: string | null;
  results: PaperlessDocument[];
}
