/**
 * 优化建议相关类型定义
 */

// 建议类型
export type SuggestionType =
  | "content_optimization"
  | "platform_targeting"
  | "competitor_gap"
  | "query_expansion"
  | "citation_improvement";

// 建议优先级
export type SuggestionPriority = "high" | "medium" | "low";

// 建议难度
export type SuggestionDifficulty = "easy" | "medium" | "hard";

// 建议状态
export type SuggestionStatus = "pending" | "in_progress" | "completed" | "dismissed";

// 优化建议
export interface Suggestion {
  id: string;
  brand_id: string;
  type: SuggestionType;
  priority: SuggestionPriority;
  title: string;
  description: string;
  action: string | null;
  expected_impact: string | null;
  difficulty: SuggestionDifficulty;
  status: SuggestionStatus;
  generated_at: string;
  updated_at: string;
  batch_id: string;
  source: "rule" | "llm";
}

// 建议列表响应
export interface SuggestionListResponse {
  suggestions: Suggestion[];
  total: number;
}

// 建议历史条目
export interface SuggestionHistoryItem {
  batch_id: string;
  generated_at: string;
  source: "rule" | "llm";
  suggestion_count: number;
  suggestions: Suggestion[];
}

// 建议历史响应
export interface SuggestionHistoryResponse {
  history: SuggestionHistoryItem[];
  total: number;
}

// 建议类型配置
export const SUGGESTION_TYPE_CONFIG: Record<
  SuggestionType,
  { label: string; icon: string; color: string; bgColor: string }
> = {
  content_optimization: {
    label: "内容优化",
    icon: "FileText",
    color: "text-blue-600",
    bgColor: "bg-blue-50",
  },
  platform_targeting: {
    label: "平台定向",
    icon: "Monitor",
    color: "text-purple-600",
    bgColor: "bg-purple-50",
  },
  competitor_gap: {
    label: "竞品差距",
    icon: "GitCompare",
    color: "text-red-600",
    bgColor: "bg-red-50",
  },
  query_expansion: {
    label: "查询词扩展",
    icon: "Search",
    color: "text-emerald-600",
    bgColor: "bg-emerald-50",
  },
  citation_improvement: {
    label: "引用改善",
    icon: "Quote",
    color: "text-amber-600",
    bgColor: "bg-amber-50",
  },
};

// 优先级配置
export const PRIORITY_CONFIG: Record<
  SuggestionPriority,
  { label: string; color: string; bgColor: string; borderColor: string }
> = {
  high: {
    label: "高优先级",
    color: "text-red-700",
    bgColor: "bg-red-100",
    borderColor: "border-l-red-500",
  },
  medium: {
    label: "中优先级",
    color: "text-amber-700",
    bgColor: "bg-amber-100",
    borderColor: "border-l-amber-500",
  },
  low: {
    label: "低优先级",
    color: "text-gray-600",
    bgColor: "bg-gray-100",
    borderColor: "border-l-gray-400",
  },
};

// 难度配置
export const DIFFICULTY_CONFIG: Record<
  SuggestionDifficulty,
  { label: string; color: string }
> = {
  easy: { label: "简单", color: "text-emerald-600" },
  medium: { label: "中等", color: "text-amber-600" },
  hard: { label: "困难", color: "text-red-600" },
};

// 状态配置
export const STATUS_CONFIG: Record<
  SuggestionStatus,
  { label: string; color: string; bgColor: string }
> = {
  pending: { label: "待处理", color: "text-gray-600", bgColor: "bg-gray-100" },
  in_progress: { label: "进行中", color: "text-blue-600", bgColor: "bg-blue-100" },
  completed: { label: "已完成", color: "text-emerald-600", bgColor: "bg-emerald-100" },
  dismissed: { label: "已忽略", color: "text-gray-400", bgColor: "bg-gray-50" },
};
