import { ApiProperty } from '@nestjs/swagger';

export class DocumentResponseDto {
  @ApiProperty({
    description: 'Document ID (UUID)',
  })
  id: string;

  @ApiProperty({
    description: 'Request ID (UUID)',
  })
  requestId: string;

  @ApiProperty({
    description: 'Document type',
    example: 'FIRE_SAFETY_CERTIFICATE',
  })
  docType: string;

  @ApiProperty({
    description: 'Original filename',
  })
  originalFilename: string;

  @ApiProperty({
    description: 'Current version number',
  })
  currentVersion: number;

  @ApiProperty({
    description: 'SHA-256 hash of current version',
  })
  currentHash: string;

  @ApiProperty({
    description: 'SHA-256 hash of current version (alias)',
    required: false,
  })
  fileHash?: string;

  @ApiProperty({
    description: 'File size in bytes',
    required: false,
  })
  fileSize?: number;

  @ApiProperty({
    description: 'MIME type of the file',
    required: false,
  })
  mimeType?: string;

  @ApiProperty({
    description: 'MinIO bucket name',
  })
  minioBucket: string;

  @ApiProperty({
    description: 'Whether document is active',
  })
  isActive: boolean;

  @ApiProperty({
    description: 'Number of times the document has been downloaded',
    required: false,
  })
  downloadCount?: number;

  @ApiProperty({
    description: 'Timestamp of last download',
    required: false,
  })
  lastDownloadedAt?: Date;

  @ApiProperty({
    description: 'Document creation timestamp',
  })
  createdAt: Date;

  @ApiProperty({
    description: 'Document last update timestamp',
  })
  updatedAt: Date;
}
