import type { Decision, DecisionId } from './types';

export const DECISION_REPLY: Decision = {
  id: 'reply',
  label: 'שלח תגובה',
  description: 'שליחת תגובה אוטומטית ללקוח',
  requiresHumanApproval: false,
};

export const DECISION_ESCALATE: Decision = {
  id: 'escalate',
  label: 'העבר לנציג',
  description: 'העברת הפנייה לנציג אנושי',
  requiresHumanApproval: false,
};

export const DECISION_CLOSE: Decision = {
  id: 'close',
  label: 'סגור פנייה',
  description: 'סגירת הפנייה לאחר פתרון',
  requiresHumanApproval: false,
};

export const DECISION_REQUEST_INFO: Decision = {
  id: 'request-info',
  label: 'בקש מידע נוסף',
  description: 'בקשת פרטים נוספים מהלקוח',
  requiresHumanApproval: false,
};

export const DECISION_PROPOSE_REFUND: Decision = {
  id: 'propose-refund',
  label: 'המלץ על החזר כספי',
  description: 'המלצה על ביצוע החזר כספי',
  requiresHumanApproval: true,
};

export const DECISION_PROPOSE_RETURN_APPROVE: Decision = {
  id: 'propose-return-approve',
  label: 'המלץ על אישור החזרה',
  description: 'המלצה לאישור בקשת החזרה',
  requiresHumanApproval: true,
};

export const DECISION_PROPOSE_RETURN_DENY: Decision = {
  id: 'propose-return-deny',
  label: 'המלץ על דחיית החזרה',
  description: 'המלצה לדחיית בקשת החזרה',
  requiresHumanApproval: true,
};

export const DECISION_PROPOSE_RESOLUTION: Decision = {
  id: 'propose-resolution',
  label: 'הצע הסדר',
  description: 'הצעת פתרון מוסכם בין הצדדים',
  requiresHumanApproval: true,
};

export const DECISION_LOG_BUG: Decision = {
  id: 'log-bug',
  label: 'תעד תקלה',
  description: 'תיעוד תקלה טכנית לצוות הפיתוח',
  requiresHumanApproval: false,
};

export const DECISION_ADJUST_COMMISSION: Decision = {
  id: 'adjust-commission',
  label: 'התאם עמלת שותף',
  description: 'המלצה להתאמת עמלת שותף',
  requiresHumanApproval: true,
};

export const DECISION_FLAG_VENDOR: Decision = {
  id: 'flag-vendor',
  label: 'סמן ספק',
  description: 'סימון ספק לבדיקה מנהלית',
  requiresHumanApproval: true,
};

export const DECISIONS: Record<DecisionId, Decision> = {
  reply: DECISION_REPLY,
  escalate: DECISION_ESCALATE,
  close: DECISION_CLOSE,
  'request-info': DECISION_REQUEST_INFO,
  'propose-refund': DECISION_PROPOSE_REFUND,
  'propose-return-approve': DECISION_PROPOSE_RETURN_APPROVE,
  'propose-return-deny': DECISION_PROPOSE_RETURN_DENY,
  'propose-resolution': DECISION_PROPOSE_RESOLUTION,
  'log-bug': DECISION_LOG_BUG,
  'adjust-commission': DECISION_ADJUST_COMMISSION,
  'flag-vendor': DECISION_FLAG_VENDOR,
};

export function getDecision(id: DecisionId): Decision {
  return DECISIONS[id];
}

export function listDecisions(): Decision[] {
  return Object.values(DECISIONS);
}
