// Jedna definicja "co jest NOWĄ sceną" dla favorite-driven widoków (PerformerScenes,
// StudioScenes, SceneTile). Wcześniej reguła była skopiowana w 3-4 miejscach i dryfowała
// (martwy FavoriteSceneRow miał starą wersję bez backfillu). Trzymaj tu.
import type { SceneOut } from '../types';

/**
 * NEW = dodane od ostatniej wizyty (created_at > seenSince), ale NIE backfill (masowy
 * import starego katalogu, tube podaje datę importu jako release_date, więc udawałby
 * świeżość). Spójne z licznikiem "+N" w backendzie (app/api/favorites.py _new_counts).
 */
export function isNewScene(scene: SceneOut, seenSince: string | undefined): boolean {
  return !!(seenSince && scene.created_at && scene.created_at > seenSince && !scene.backfill);
}

/** NEW-first: nowe sceny na górę (zachowując kolejność), reszta bez zmian. Bez seenSince
 *  zwraca listę jak jest. */
export function sortNewFirst(items: SceneOut[], seenSince: string | undefined): SceneOut[] {
  if (!seenSince) return items;
  const newOnes: SceneOut[] = [];
  const rest: SceneOut[] = [];
  for (const s of items) {
    if (isNewScene(s, seenSince)) newOnes.push(s);
    else rest.push(s);
  }
  return [...newOnes, ...rest];
}
