import { Tenant } from '../../types/tenant'; export type MediaType = 'photo' | 'video'; export interface UploadOptions { tenant: Tenant; userId?: string; targetId?: string; type: MediaType; generateThumbnail?: boolean; } export interface MediaMetadata { url: string; thumbnailUrl?: string; size: number; type: string; width?: number; height?: number; duration?: number; uploadedAt: Date; } export interface UploadResult { id: string; metadata: MediaMetadata; } export interface StorageProvider { upload(file: Buffer, filename: string, options: UploadOptions): Promise; delete(id: string): Promise; get(id: string): Promise; list(filters: ListFilters): Promise; } export interface ListFilters { tenant: Tenant; userId?: string; targetId?: string; type?: MediaType; limit?: number; offset?: number; }