import { Resource } from "@nice/common";

export interface ResourceProcessor {
    process(resource: Resource): Promise<any>
}
export interface ProcessResult {
    success: boolean
    resource: Resource
    error?: Error
}

export interface BaseMetadata {
    size: number
    mimeType: string
    filename: string
    extension: string
    modifiedAt: Date
}
/**
 * 图片特有元数据接口
 */
export interface ImageMetadata {
    width: number;          // 图片宽度(px)
    height: number;         // 图片高度(px)
    compressedUrl?: string;
    orientation?: number;   // EXIF方向信息
    space?: string;    // 色彩空间 (如: RGB, CMYK)
    hasAlpha?: boolean;     // 是否包含透明通道
}

/**
 * 视频特有元数据接口
 */
export interface VideoMetadata {
    width?: number;
    height?: number;
    duration?: number;
    videoCodec?: string;
    audioCodec?: string;
    coverUrl?: string
}

/**
 * 音频特有元数据接口
 */
export interface AudioMetadata {
    duration: number;       // 音频时长(秒)
    bitrate?: number;       // 比特率(bps)
    sampleRate?: number;    // 采样率(Hz)
    channels?: number;      // 声道数
    codec?: string;         // 音频编码格式
}


export type FileMetadata = ImageMetadata & VideoMetadata & AudioMetadata & BaseMetadata