// 项目模型
export interface Project {
  id: string;
  name: string;
  customerName: string;
  customerTags: CustomerTag[];
  highPriorityNeeds: string[];
  status: ProjectStatus;
  currentStage: ProjectStage;
  createdAt: Date;
  deadline: Date;
  assigneeId: string;
  assigneeName: string;
  skillsRequired: string[];
}

// 客户标签
export interface CustomerTag {
  source: '朋友圈' | '信息流';
  needType: '硬装' | '软装';
  preference: '现代' | '宋式' | '欧式';
  colorAtmosphere: string;
}

// 项目状态
export type ProjectStatus = '进行中' | '已完成' | '已暂停' | '已延期';

// 项目阶段
export type ProjectStage = '订单创建' | '需求沟通' | '方案确认' | '建模' | '软装' | '渲染' | '后期' | '尾款结算' | '客户评价' | '投诉处理';

// 任务模型
// 修复 Task 接口，将 completedAt 改为 completedDate（与实际代码保持一致）
export interface Task {
  priority: any;
  assignee: any;
  description: any;
  id: string;
  projectId: string;
  projectName: string;
  title: string;
  stage: ProjectStage;
  deadline: Date;
  isOverdue: boolean;
  isCompleted: boolean;
  completedDate?: Date; // 修正为 completedDate
}

// 添加 Milestone 接口定义
export interface Milestone {
  id: string;
  title: string;
  description: string;
  dueDate: Date;
  completedDate?: Date | null;
  isCompleted: boolean;
}

// 添加 Message 接口定义
export interface Message {
  id: string;
  sender: string;
  content: string;
  timestamp: Date;
  isRead: boolean;
  type: 'text' | 'image' | 'file';
}

// 添加 FileItem 接口定义
export interface FileItem {
  id: string;
  name: string;
  type: 'document' | 'image' | 'spreadsheet' | 'other';
  size: string;
  url: string;
  uploadedBy: string;
  uploadedAt: Date;
  downloadCount: number;
}

// 渲染进度
export interface RenderProgress {
  id: string;
  projectId: string;
  completionRate: number; // 百分比
  estimatedTimeRemaining: number; // 小时
  status: '进行中' | '已完成' | '已失败';
  updatedAt: Date;
}

// 模型误差检查项
export interface ModelCheckItem {
  id: string;
  name: string;
  isPassed: boolean;
  notes?: string;
}

// 客户反馈
export interface CustomerFeedback {
  id: string;
  projectId: string;
  content: string;
  isSatisfied: boolean;
  problemLocation?: string;
  expectedEffect?: string;
  referenceCase?: string;
  status: '待处理' | '处理中' | '已解决';
  createdAt: Date;
  updatedAt?: Date;
  tag?: string;
  // 添加模板中使用的属性
  customerName?: string;
  rating?: number;
  response?: string;
}

// 设计师变更记录
export interface DesignerChange {
  id: string;
  projectId: string;
  oldDesignerId: string;
  oldDesignerName: string;
  newDesignerId: string;
  newDesignerName: string;
  changeTime: Date;
  acceptanceTime?: Date;
  historicalAchievements: string[];
  completedWorkload: number; // 百分比
}

// 结算记录
export interface Settlement {
  id: string;
  projectId: string;
  stage: ProjectStage;
  amount: number;
  percentage: number;
  status: '待结算' | '已结算';
  createdAt: Date;
  settledAt?: Date;
  completionTime?: Date;
  projectName?: string;
}

// 技能标签
export interface SkillTag {
  id: string;
  name: string;
  level: number; // 1-5
  count: number; // 完成项目数量
}

// 绩效数据
export interface PerformanceData {
  month: string;
  projectCompletionRate: number;
  customerSatisfaction: number;
  deliveryOnTimeRate: number;
}

// 匹配订单
export interface MatchingOrder {
  id: string;
  projectName: string;
  requiredSkills: string[];
  matchRate: number;
  customerLevel: '优质' | '普通';
}