import { Paginated } from './Paginated';

export interface FeedbackRequest {
  id: string;
  requester_id: string;
  provider_id: string;
  context: string;
  category?: string | null;
  status: string;
  response_text?: string | null;
  response_rating?: number | null;
  is_private: boolean;
  responded_at?: Date | null;
  expires_at?: string | null;
  requester?: Record<string, unknown> | null;
  provider?: Record<string, unknown> | null;
  created_at?: Date | null;
  updated_at?: Date | null;
}

export interface CreateFeedbackRequestPayload {
  requester_id: string;
  provider_id: string;
  context: string;
  category?: string | null;
  is_private?: boolean;
  expires_at?: string | null;
}

export interface RespondFeedbackRequestPayload {
  response_text: string;
  response_rating?: number | null;
}

export interface FeedbackSummary {
  employee_id: string;
  received_quick_feedback: number;
  given_quick_feedback: number;
  pending_requests: number;
  sent_requests: number;
  completed_requests: number;
  feedback_by_type: Record<string, number>;
  recent_feedback: Record<string, unknown>[];
}

export interface FeedbackRequestResponse {
  data: FeedbackRequest;
}

export interface FeedbackSummaryResponse {
  data: FeedbackSummary;
}

export type PaginatedFeedbackRequests = Paginated<FeedbackRequest>;
