/**
 * Document API Models
 * Models for document management
 */

export type DocumentType =
  | 'FLOOR_PLAN'
  | 'PHOTOGRAPH'
  | 'ID_PROOF'
  | 'ADDRESS_PROOF'
  | 'NOC'
  | 'LICENSE_COPY'
  | 'OTHER'
  | 'FIRE_SAFETY'
  | 'HEALTH_CERT'
  | 'TAX_CLEARANCE'
  | 'SITE_PLAN'
  | 'BUILDING_PERMIT'
  | 'BUSINESS_LICENSE';

export interface UploadDocumentDto {
  docType: DocumentType;
  description?: string;
  file?: File;
}

export interface DocumentResponseDto {
  id: string;
  requestId: string;
  docType: string;
  originalFilename: string;
  currentVersion: number;
  currentHash: string;
  minioBucket: string;
  isActive: boolean;
  createdAt: string;
  updatedAt: string;
}

export interface DocumentVersionResponseDto {
  id: string;
  documentId: string;
  version: number;
  hash: string;
  minioPath: string;
  fileSize: string;
  mimeType: string;
  uploadedBy: string;
  blockchainTxHash?: string;
  createdAt: string;
}

export interface DownloadUrlResponseDto {
  url: string;
  expiresAt: string;
  expiresIn: number;
}
