feat(render): 5 quality tiers (360p–4K) + ETA on render page; 24h session

- Render page: resolution picker now 360p/540p/720p/1080p/4K; live ETA
  ('تقریباً … باقی مانده') computed from progress rate; preview+progress bar already wired.
- render-schemas: resolution enum + RESOLUTION_DIMENSIONS add 360p/540p.
- render-jobs.mapQuality: 5-tier → render_quality (Low/Medium/High/Full).
- Session: Jwt__AccessTokenMinutes=1440 (24h) via compose so logins persist
  (refresh middleware + 30d refresh token back it up).

(Real per-tier output height still pending: render-svc r_height is hardcoded 1080 →
node ffmpeg scale — next.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-06 23:04:32 +03:30
parent ad8796a25d
commit d7a74daa96
4 changed files with 52 additions and 9 deletions
+9 -4
View File
@@ -37,11 +37,16 @@ export interface RenderJobRow {
// ── Helpers ──────────────────────────────────────────────────────────────────
/** Map frontend resolution string to V2 quality enum. */
/** Map frontend resolution string to V2 render_quality enum (Low/Medium/High/Full/Lossless). */
function mapQuality(resolution: string): string {
if (resolution === "4K") return "Full";
if (resolution === "720p") return "Medium";
return "High"; // 1080p default
switch (resolution) {
case "360p": return "Low";
case "540p": return "Medium";
case "720p": return "Medium";
case "1080p": return "High";
case "4K": return "Full";
default: return "High";
}
}
/** Map V2 step → legacy status for frontend compatibility. */