/**
 * taskScope.ts — タスク一覧の所有者スコープフィルタ。
 *
 * visibility (public / org) のせいで他ユーザーのタスクが一覧に混ざり
 * 「自分のタスクを見失う」問題への対策。重複のない2分割:
 *   'mine'   — ownerId が自分のものだけ
 *   'others' — それ以外 (他ユーザー + legacy null owner)
 * 認証無効時 (currentUserId が無い時) はフィルタ自体が無意味なので全件を返す。
 */

export type TaskScope = 'mine' | 'others';

export const TASK_SCOPES: TaskScope[] = ['mine', 'others'];

export function filterTasksByScope<T extends { ownerId?: string | null }>(
  tasks: T[],
  scope: TaskScope,
  currentUserId: string | null,
): T[] {
  if (!currentUserId) return tasks;
  return scope === 'mine'
    ? tasks.filter(t => t.ownerId === currentUserId)
    : tasks.filter(t => t.ownerId !== currentUserId);
}
