export type DisputeStatus = 'open' | 'evidence' | 'mediation' | 'resolved' | 'cancelled';

export type DisputeReasonCode = 'NO_SHOW' | 'QUALITY_ISSUE' | 'PAYMENT_DISPUTE' | 'ABUSE' | 'OTHER';

export type DisputeOutcome = 'refund' | 'partial_refund' | 'complete_work' | 'other';

export interface Dispute {
  id: number;
  deal_id: number;
  opened_by_user_id: number;
  status: DisputeStatus;
  reason_code: DisputeReasonCode;
  summary: string;
  requested_outcome: DisputeOutcome;
  final_decision?: DisputeOutcome | null;
  final_reason?: string | null;
  decided_by_user_id?: number | null;
  decided_at?: string | null;
  created_at: string;
  updated_at: string;
}

export interface DisputeEvent {
  id: number;
  dispute_id: number;
  event_type: string;
  actor_user_id: number;
  payload_json: string;
  created_at: string;
}