import path from 'path' export function buildStoredUploadPath(...segments: string[]) { return path.posix.join('uploads', ...segments.map((segment) => String(segment || '').replace(/\\/g, '/'))) } export function getUploadRootDir(): string { const configuredUploadDir = String(process.env.UPLOAD_DIR || '').trim() if (!configuredUploadDir) { return path.join(process.cwd(), 'uploads') } return path.isAbsolute(configuredUploadDir) ? configuredUploadDir : path.resolve(process.cwd(), configuredUploadDir) } export function resolveStoredUploadPath(storedPath: string): string { const normalizedPath = String(storedPath || '').replace(/\\/g, '/') if (path.isAbsolute(normalizedPath)) { return normalizedPath } const relativeToUploadRoot = normalizedPath.replace(/^\.?\/*uploads\//i, '') return path.join(getUploadRootDir(), relativeToUploadRoot) }