export interface EmployeeGoalStats {
  total: number;
  completed: number;
  in_progress: number;
  not_started: number;
  overdue: number;
  avg_progress: number;
}

export interface EmployeeAppraisalStatus {
  id?: string;
  status: string;
  overall_score?: number | null;
  overall_grade?: string | null;
}

export interface EmployeePendingActions {
  goal_updates_due: number;
  feedback_requests: number;
  self_reviews: number;
  total: number;
}

export interface RecentFeedbackItem {
  id: string;
  type: string;
  message: string;
  is_anonymous: boolean;
  created_at: string;
}

export interface UpcomingCheckIn {
  id: string;
  title: string;
  scheduled_date: string;
  scheduled_time: string | null;
}

export interface EmployeePipStatus {
  id: string;
  title: string;
  start_date: string | null;
  end_date: string | null;
  milestones_completed: number;
  milestones_total: number;
}

export interface ActiveCycleSummary {
  id: string;
  name: string;
  start_date: string | null;
  end_date: string | null;
}

export interface EmployeeDashboardData {
  goals: EmployeeGoalStats;
  appraisal: EmployeeAppraisalStatus | null;
  pending_actions: EmployeePendingActions;
  recent_feedback: RecentFeedbackItem[];
  upcoming_check_ins: UpcomingCheckIn[];
  pip_status: EmployeePipStatus | null;
  active_cycle: ActiveCycleSummary | null;
}

export interface TeamStats {
  team_size: number;
  total_goals: number;
  avg_goal_progress: number;
  goals_on_track: number;
  goals_at_risk: number;
}

export interface GradeDistributionItem {
  grade: string;
  count: number;
}

export interface TeamPipItem {
  id: string;
  employee_id: string;
  title: string;
  status: string;
  end_date: string | null;
}

export interface StatusCountItem {
  status: string;
  count: number;
}

export interface ManagerDashboardData {
  team_stats: TeamStats;
  pending_reviews: number;
  team_performance: GradeDistributionItem[];
  team_pips: TeamPipItem[];
  overdue_check_ins: number;
  team_goal_progress: StatusCountItem[];
}

export interface OrgOverview {
  total_goals: number;
  avg_goal_progress: number;
  total_submissions: number;
  completed_submissions: number;
  active_pips: number;
}

export interface RatingBandItem {
  band: string;
  count: number;
}

export interface FeedbackActivity {
  quick_feedbacks: number;
  feedback_requests_sent: number;
  feedback_requests_completed: number;
  coaching_sessions: number;
}

export interface OrganizationDashboardData {
  overview: OrgOverview;
  performance_distribution: RatingBandItem[];
  cycle_progress: StatusCountItem[];
  goal_completion: StatusCountItem[];
  pip_summary: StatusCountItem[];
  feedback_activity: FeedbackActivity;
}

export interface ExecutiveSummaryData {
  employees_with_goals: number;
  avg_goal_progress: number;
  appraisal_completion_rate: number;
  completed_appraisals: number;
  total_appraisals: number;
  active_pips: number;
  avg_performance_score: number;
  active_cycle: string | null;
}
