import type { Space } from '../api';

/**
 * Rail 表示順: 個人スペース（kind==='personal'）を先頭にピン留めし、
 * 案件スペースは updatedAt の降順（新しいものが上）で並べる。
 * 同 kind 内で updatedAt が同値なら title の昇順で安定させる。
 */
export function sortSpacesForRail(spaces: Space[]): Space[] {
  return [...spaces].sort((a, b) => {
    const aPersonal = a.kind === 'personal';
    const bPersonal = b.kind === 'personal';
    if (aPersonal !== bPersonal) return aPersonal ? -1 : 1;
    const byUpdated = (b.updatedAt ?? '').localeCompare(a.updatedAt ?? '');
    if (byUpdated !== 0) return byUpdated;
    return (a.title ?? '').localeCompare(b.title ?? '');
  });
}
