export type DocumentType = 'insurance' | 'registration' | 'manual';

export interface DocumentRecord {
  id: string;
  userId: string;
  vehicleId: string;
  documentType: DocumentType;
  title: string;
  notes?: string | null;
  details?: Record<string, any> | null;
  storageBucket?: string | null;
  storageKey?: string | null;
  fileName?: string | null;
  contentType?: string | null;
  fileSize?: number | null;
  fileHash?: string | null;
  issuedDate?: string | null;
  expirationDate?: string | null;
  emailNotifications?: boolean;
  scanForMaintenance?: boolean;
  sharedVehicleIds: string[];
  createdAt: string;
  updatedAt: string;
  deletedAt?: string | null;
}

export interface CreateDocumentRequest {
  vehicleId: string;
  documentType: DocumentType;
  title: string;
  notes?: string;
  details?: Record<string, any>;
  issuedDate?: string;
  expirationDate?: string;
  emailNotifications?: boolean;
  scanForMaintenance?: boolean;
  sharedVehicleIds?: string[];
}

export interface UpdateDocumentRequest {
  title?: string;
  notes?: string | null;
  details?: Record<string, any>;
  issuedDate?: string | null;
  expirationDate?: string | null;
  emailNotifications?: boolean;
  scanForMaintenance?: boolean;
  sharedVehicleIds?: string[];
}

