// Status-related utilities

export const STATUS_PRIORITY = {
  needs_attention: 0,
  active: 1,
  starting: 2,
  done: 3
};

export function getStatusMeta(status) {
  switch (status) {
    case 'needs_attention':
      return {
        label: 'Needs attention',
        dot: 'bg-attention pulse-attention',
        badge: 'bg-attention/18 text-attention border-attention/40',
        borderColor: '#e0b45e',
      };
    case 'active':
      return {
        label: 'Active',
        dot: 'bg-active',
        badge: 'bg-active/18 text-active border-active/40',
        borderColor: '#5fd0a4',
        spinning: true,
      };
    case 'starting':
      return {
        label: 'Starting',
        dot: 'bg-starting',
        badge: 'bg-starting/18 text-starting border-starting/40',
        borderColor: '#7cb2ff',
        spinning: true,
      };
    case 'done':
      return {
        label: 'Done',
        dot: 'bg-done',
        badge: 'bg-done/18 text-done border-done/40',
        borderColor: '#e39a8c',
      };
    default:
      return {
        label: status || 'Unknown',
        dot: 'bg-dim',
        badge: 'bg-selection text-dim border-selection',
        borderColor: '#223454',
      };
  }
}

export function getUserMessageBg(status) {
  switch (status) {
    case 'needs_attention': return 'bg-attention/20 border border-attention/35 text-bright';
    case 'active': return 'bg-active/20 border border-active/30 text-bright';
    case 'starting': return 'bg-starting/20 border border-starting/30 text-bright';
    case 'done': return 'bg-done/20 border border-done/30 text-bright';
    default: return 'bg-selection/80 border border-selection text-bright';
  }
}

export function groupSessionsByProject(sessions) {
  const groups = new Map();

  for (const session of sessions) {
    const key = session.project_dir || session.cwd || 'unknown';
    if (!groups.has(key)) {
      groups.set(key, {
        projectDir: key,
        projectName: session.project || key.split('/').pop() || 'Unknown',
        sessions: [],
      });
    }
    groups.get(key).sessions.push(session);
  }

  // Return groups in API order (no status-based reordering)
  return Array.from(groups.values());
}
