export const admin_affiliates = {
  list_loading: 'Loading...',
  list_empty: 'No affiliates enrolled yet',
  list_empty_description:
    'Affiliates join through the affiliate program page. Set the default commission rate in the "Settings" tab.',
  list_view: 'Details',
  list_col_email: 'Email',
  list_col_status: 'Status',
  list_col_pct: 'Commission',
  list_col_pct_tooltip:
    'Commission percentage the affiliate earns on each referred purchase, funded by the platform. "Default" = the program-wide rate from settings applies.',
  list_pct_default: 'Default',
  list_col_ltv: 'Platform margin',
  list_col_ltv_tooltip:
    "Net platform profit from this affiliate: platform fee minus Stripe fees minus the affiliate's commission.",
  list_col_total_payouts: 'Paid to affiliate',
  list_col_payouts_tooltip:
    'Total amount paid out to the affiliate so far (excludes pending balance).',
  list_col_joined: 'Enrolled',
  detail_ltv_margin: 'Platform margin (LTV)',
  detail_total_payouts: 'Total payouts',
  ltv_margin_approx_prefix: '~',
  ltv_margin_approx_hint:
    'Estimate — Stripe fees for some purchases are not yet reported, so the actual margin may be lower than shown.',
  status_active: 'Active',
  status_suspended: 'Suspended',
  status_suspended_tooltip:
    'Temporarily suspended — new referrals do not earn commission until reactivated.',
  status_revoked: 'Revoked',
  status_revoked_tooltip:
    'Enrollment permanently revoked — the affiliate can no longer earn commissions.',
  detail_loading: 'Loading...',
  detail_not_found: 'Affiliate not found',
  detail_email: 'Email',
  detail_enrolled: 'Enrolled',
  detail_status: 'Status',
  detail_stripe: 'Stripe account',
  detail_pct: 'Commission %',
  detail_pending: 'Pending commissions',
  detail_pending_tooltip:
    'Commissions inside the hold window (default 30 days) — still subject to clawback on refund.',
  detail_matured: 'Net matured balance',
  detail_matured_tooltip:
    'Matured commissions after carried debt; a negative amount indicates debt and is not withdrawable.',
  detail_carried_debt: 'Carried debt',
  detail_carried_debt_tooltip:
    'Debt carried forward from prior clawbacks or withdrawals and offset against future matured commissions.',
  detail_ltv_margin_tooltip:
    "Cumulative platform profit from this affiliate's referrals: platform fee minus affiliate commissions and processing costs, all-time.",
  detail_stripe_tooltip:
    'Stripe Connect status. Approving a withdrawal requires a connected account with payouts enabled.',
  stripe_status_none: 'Not connected',
  stripe_status_pending: 'In progress',
  stripe_status_complete: 'Connected',
  stripe_payouts_on: 'Payouts enabled',
  stripe_payouts_off: 'Payouts blocked',
  action_suspend: 'Suspend',
  action_reinstate: 'Reinstate',
  action_revoke: 'Revoke permanently',
  action_revoke_confirm:
    'Permanent revocation: this affiliate can no longer earn commissions. Cannot be undone. Continue?',
  action_set_pct: 'Update rate',
  settings_heading: 'Affiliate & Referral Program Settings',
  settings_subtitle: 'These settings apply platform-wide and take effect within ~30 seconds',
  settings_affiliate_pct: 'Affiliate Commission (%)',
  settings_reward_agorot: 'One-time referrer reward (in agorot; 100 agorot = ₪1)',
  settings_reward_agorot_tooltip:
    'One-time reward credited to the referrer when the referee qualifies (first purchase). Entered in agorot: 5000 = ₪50.',
  settings_hold_days: 'Commission maturation period (days)',
  settings_hold_days_tooltip:
    'Commissions accrue as "pending" and become withdrawable only after this period. Covers the refund/cancellation window.',
  settings_cookie_days: 'Referral attribution window (days)',
  settings_cookie_days_tooltip:
    'How many days after a referral-link click a purchase still attributes to the affiliate. Attribution is first-touch — a later link does not override an existing referrer.',
  settings_affiliate_window_days: 'Commission window (days)',
  settings_affiliate_max_orders: 'Max orders per customer',
  settings_save: 'Save Settings',
  settings_saved: 'Settings saved — live within ~30 seconds',
  settings_tiers_heading: 'Affiliate commission tiers — % of purchase amount',
  settings_tiers_heading_tooltip:
    'Commission is a % of the full purchase amount, funded by the platform — vendor payout is never reduced.',
  settings_tier_ladder_summary:
    'Tier 1 is the default; affiliates reach Tier 2/3 by purchase count in the trailing 30 days. Required: Tier 1 ≤ Tier 2 ≤ Tier 3',
  settings_tier1_pct: 'Tier 1 commission % (of sale)',
  settings_tier2_pct: 'Tier 2 commission % (of sale)',
  settings_tier3_pct: 'Tier 3 commission % (of sale)',
  settings_tier2_min_sales: 'Tier 2 threshold — purchases in the trailing 30 days',
  settings_tier2_min_sales_tooltip:
    "Tier is set by the affiliate's attributed purchases in the trailing 30 days (including the current one) and is locked at accrual — never recomputed retroactively.",
  settings_tier3_min_sales: 'Tier 3 threshold — purchases in the trailing 30 days',
  settings_tier3_min_sales_tooltip:
    "Tier is set by the affiliate's attributed purchases in the trailing 30 days (including the current one) and is locked at accrual — never recomputed retroactively.",
  settings_referral_heading: 'Referral program (customer-refers-customer)',
  settings_referral_pct: 'Referrer store credit — % of each referee purchase',
  settings_referral_pct_tooltip:
    'Store credit (platform-only, not withdrawable cash) earned by the referrer on each referee purchase. Distinct from the one-time qualification reward.',
  page_title: 'Affiliate Management - Multideal',
  settings_page_title: 'Affiliate Program Settings - Multideal',
  detail_page_title: 'Affiliate Detail - Multideal',
  balance_debt_detail: 'debt: ₪{{amount}} owed against future earnings',
  // fraud dashboard
  fraud_page_title: 'Affiliate Fraud Management - Multideal',
  fraud_strip_items_need_review: '{{count}} items need review',
  fraud_strip_quarantined: '{{amount}} quarantined',
  fraud_strip_quarantined_tooltip:
    'Total commission frozen by fraud detectors, not yet released or rejected.',
  fraud_strip_held_payouts: '{{count}} payouts on hold',
  fraud_strip_fp_rate: 'False alarms: {{rate}}',
  fraud_strip_empty: 'System nominal — nothing to review',
  fraud_queue_col_severity: 'System action',
  fraud_queue_col_decision_point: 'Decision Point',
  fraud_queue_col_adapter: 'Detector',
  fraud_queue_col_codes: 'Suspicion Codes',
  fraud_queue_col_affiliate: 'Affiliate',
  fraud_queue_col_amount: '₪ At Stake',
  fraud_queue_col_age: 'Waiting',
  fraud_queue_col_referral: 'Referral ID',
  fraud_queue_empty: 'No events to review',
  fraud_severity_block: 'Block',
  fraud_severity_block_tooltip:
    'The referral was auto-rejected — no commission created. Review to release or confirm the rejection.',
  fraud_severity_hold: 'Hold',
  fraud_severity_hold_tooltip:
    'The commission or payout is frozen pending admin decision. Money is quarantined, not paid.',
  fraud_severity_flag: 'Flag',
  fraud_severity_flag_tooltip:
    'Suspicion logged only — no financial action taken. Can be dismissed.',
  fraud_dp_signup: 'Signup',
  fraud_dp_earn: 'Commission earn',
  fraud_dp_withdraw: 'Withdraw',
  fraud_action_release: 'Release',
  fraud_action_release_tooltip:
    'Marks the event legitimate: quarantined commission is released to the affiliate; a held payout is approved.',
  fraud_action_reject_clawback: 'Reject & claw back',
  fraud_action_reject_clawback_tooltip:
    'Confirms fraud: the commission is revoked and the amount clawed back to the platform. Irreversible.',
  fraud_action_suspend: 'Suspend Affiliate',
  fraud_action_suspend_tooltip:
    'Suspends the entire affiliate account — earning and withdrawals stop until unsuspended.',
  fraud_action_dismiss: 'Dismiss — no action',
  fraud_action_dismiss_tooltip:
    'Closes the flag with no financial effect. Available for flag events only.',
  fraud_action_reason_placeholder: 'Reason (required)',
  fraud_action_reason_min: 'At least 5 characters required',
  fraud_action_continue: 'Continue',
  fraud_action_cancel: 'Cancel',
  fraud_error_generic: 'An error occurred',
  fraud_error_network: 'Network error',
  fraud_reject_confirm_title: 'Confirm: reject & clawback',
  fraud_reject_confirm_body:
    'This rejects the event and claws back ₪{{amount}} from the affiliate to the platform. This cannot be undone.',
  fraud_reject_confirm_cta: 'Reject & claw back ₪{{amount}}',
  fraud_drawer_error: 'Failed to load evidence',
  fraud_drawer_identity_signals: 'Identity Signals',
  fraud_drawer_adapter_evidence: 'Adapter Evidence',
  fraud_drawer_linked_events: 'Linked Events',
  fraud_drawer_affiliate_history: 'Affiliate History',
  fraud_drawer_device: 'Device',
  fraud_drawer_ip: 'IP Address',
  fraud_drawer_email_canonical: 'Email (canonical)',
  fraud_drawer_card: 'Card',
  fraud_drawer_phone_type: 'Phone Line Type',
  fraud_drawer_seen_n_times: 'seen {{count}} times',
  fraud_filter_decision_point: 'Decision Point',
  fraud_filter_action: 'Action',
  fraud_filter_adapter: 'Detector',
  fraud_filter_status: 'Status',
  fraud_filter_status_unresolved: 'Unresolved',
  fraud_filter_status_all: 'All',
  fraud_filter_all_decision_points: 'All decision points',
  fraud_filter_all_actions: 'All actions',
  fraud_filter_all_detectors: 'All detectors',
  fraud_widget_events_over_time_title: 'Fraud Events Over Time (30d)',
  fraud_widget_fp_rate_title: 'False-positive rate',
  fraud_widget_fp_rate_tooltip:
    'Share of resolved events that were released — a measure of detector over-sensitivity.',
  fraud_widget_fp_rate_green: 'Good (<10%)',
  fraud_widget_fp_rate_amber: 'Caution (10–25%)',
  fraud_widget_fp_rate_red: 'High (>25%)',
  fraud_widget_fp_rate_no_data: '–',
  fraud_widget_empty: 'No data yet',
  fraud_adapter_identity_ring: 'Identity Ring',
  fraud_adapter_ip_cluster: 'IP Cluster',
  fraud_adapter_velocity: 'Velocity',
  fraud_adapter_disposable_email: 'Disposable Email',
  fraud_adapter_card_fingerprint: 'Card Fingerprint',
  fraud_code_identity_match: 'Identity Match',
  fraud_code_identity_match_tooltip:
    'The same device/email/card was seen for both referrer and referee.',
  fraud_code_ip_shared: 'Shared IP',
  fraud_code_ip_shared_tooltip: 'IP shared with other signups.',
  fraud_code_velocity_breach: 'Velocity Breach',
  fraud_code_velocity_breach_tooltip: 'Conversion rate abnormally high.',
  fraud_code_disposable_email: 'Disposable Email',
  fraud_code_disposable_email_tooltip: 'Temporary/disposable email address.',
  fraud_code_duplicate_card: 'Duplicate Card',
  fraud_code_duplicate_card_tooltip: 'Payment instrument already used by another user.',
  fraud_expand_open: 'Show details',
  fraud_expand_close: 'Hide details',
  fraud_section_queue: 'Fraud event queue',
  fraud_section_analytics: 'Fraud analytics',
  fraud_widget_col_day: 'Day',
  fraud_widget_col_action: 'Action',
  fraud_widget_col_count: 'Count',
  fraud_widget_col_adapter: 'Detector',
  fraud_widget_col_resolved: 'Resolved',
  fraud_widget_col_released: 'Released',
  fraud_widget_col_fp_pct: 'FP %',
  fraud_widget_top_adapters_title: 'Top active detectors',
  fraud_widget_money_protected_title: 'Money protected from fraud',
  fraud_widget_money_quarantined_label: 'Currently quarantined',
  fraud_widget_money_recovered_label: 'Recovered via clawback (90d)',
  // ── [D] Fraud config cards ─────────────────────────────────────────────────
  fraud_section_config: 'Fraud adapter configuration',
  fraud_config_title: 'Fraud Configuration',
  fraud_config_save: 'Save',
  fraud_config_saving: 'Saving...',
  fraud_config_saved: 'Saved',
  fraud_config_error: 'Failed to save',
  fraud_config_loading: 'Loading configuration...',
  // Adapter cards
  fraud_config_adapters_title: 'Detection Adapters',
  fraud_config_adapter_enabled: 'Enabled',
  fraud_config_adapter_action_label: 'Action ceiling',
  fraud_config_adapter_action_tooltip:
    'The most severe action this detector may take. E.g. a "Flag" ceiling downgrades blocks to flags. "Detector default" = no ceiling.',
  fraud_config_adapter_action_default: 'Detector default',
  fraud_config_adapter_action_pass: 'Pass (allow)',
  fraud_config_adapter_action_flag: 'Flag',
  fraud_config_adapter_action_hold: 'Hold',
  fraud_config_adapter_action_block: 'Block',
  // Adapter names — one per KNOWN_ADAPTER_KEYS entry
  fraud_config_adapter_email_canonical: 'Email canonical',
  fraud_config_adapter_email_disposable: 'Disposable email',
  fraud_config_adapter_phone_linetype: 'Phone line type',
  fraud_config_adapter_phone_required_earn: 'Phone required (earn)',
  fraud_config_adapter_identity_ring: 'Identity ring',
  fraud_config_adapter_email_catchall_domain: 'Catch-all domain',
  fraud_config_adapter_bot_signup: 'Bot signup',
  fraud_config_adapter_device_fingerprint: 'Device fingerprint',
  fraud_config_adapter_ip_cluster: 'IP cluster',
  fraud_config_adapter_ip_reputation: 'IP reputation',
  fraud_config_adapter_payment_instrument: 'Payment instrument',
  fraud_config_adapter_velocity_conversion: 'Velocity / conversion',
  fraud_config_adapter_referral_graph: 'Referral graph',
  // Economic policy card
  fraud_config_policy_title: 'Economic Policy',
  fraud_config_dispute_window_days: 'Dispute window (days)',
  fraud_config_dispute_window_days_hint:
    '30–730 days — commission can be clawed back within this window',
  fraud_config_reserve_pct: 'Affiliate payout reserve (%)',
  fraud_config_reserve_pct_hint:
    '0–50% — withheld from each payout, released after the holding period',
  fraud_config_reserve_release_days: 'Reserve release (days)',
  fraud_config_reserve_release_days_hint:
    '0–730 days — after this period the reserve is released to the affiliate',

  // Negative wallet visibility
  negative_wallets_title: 'Affiliate wallets with carried debt',
  negative_wallets_description:
    'Gross matured funds held against carried debt; net balance may be positive or negative.',
  negative_wallets_empty: 'No affiliate wallets with carried debt',
  negative_wallets_col_email: 'Affiliate',
  negative_wallets_col_net: 'Net matured',
  negative_wallets_col_debt: 'Debt',
  negative_wallets_col_debt_started: 'Debt started',
  negative_wallets_col_debt_age: 'Debt age',
  negative_wallets_col_class: 'Class',
  negative_wallets_uncollectable: 'Post-withdrawal debt',
  negative_wallets_carried: 'Carried debt',
  negative_wallets_days: 'days',
  negative_wallets_unknown: 'Unknown',

  // Adjust balance
  adjust_section_title: 'Manual Balance Adjustment',
  adjust_section_tooltip:
    'Manual ledger entry on the affiliate wallet (credit or debit). Logged with the memo — for exceptional corrections only.',
  adjust_amount_label: 'Amount (₪)',
  adjust_amount_hint:
    'Positive = credit the affiliate, negative = debit. Applied to the wallet immediately.',
  adjust_memo_label: 'Memo',
  adjust_memo_placeholder: 'Reason for adjustment',
  adjust_submit: 'Apply Adjustment',
  adjust_success: 'Balance updated successfully',
  adjust_error: 'Error adjusting balance',

  // Payout approval
  payouts_section_title: 'Withdrawal Requests',
  payouts_loading: 'Loading requests...',
  payouts_empty: 'No withdrawal requests',
  payouts_col_id: 'ID',
  payouts_col_amount: 'Amount',
  payouts_col_status: 'Status',
  payouts_col_created: 'Date',
  payouts_approve: 'Approve',
  payouts_mark_paid: 'Mark paid after manual transfer',
  payouts_settlement_rail_label: 'Settlement rail',
  payouts_settlement_rail_bank_transfer: 'Bank transfer',
  payouts_settlement_rail_paypal: 'PayPal',
  payouts_settlement_rail_other: 'Other',
  payouts_settlement_reference_label: 'Settlement reference',
  payouts_settlement_reference_hint: 'Unique external confirmation number for the transfer',
  payouts_settlement_reference_placeholder: 'For example: BANK-2026-12345',
  payouts_settled_at_label: 'Funds settled at',
  payouts_settled_at_hint: 'Date and time when the funds actually moved',
  payouts_evidence_required: 'Enter a valid settlement rail, reference, and settlement time',
  payout_status_requested: 'Awaiting approval',
  payout_status_approved: 'Approved — awaiting transfer',
  payout_status_paid: 'Paid',
  payouts_action_error: 'Action failed',

  // Commission edit
  commission_section_title: 'Commission (%)',
  commission_pct_label: 'Commission (%)',
  commission_pct_tooltip:
    'Percent of each referred sale credited to the affiliate. Overrides the program default.',
  commission_save: 'Save',
  commission_success: 'Commission updated',
  commission_error: 'Error updating commission',

  // Commission history
  commission_history_section_title: 'Commission History',
  commission_history_loading: 'Loading history...',
  commission_history_empty: 'No commission history',
  commission_history_col_date: 'Date',
  commission_history_col_amount: 'Amount',
  commission_history_col_deal: 'Deal',

  // Affiliate link creation
  affiliate_link_section_title: 'Create/Update Affiliate Link',
  affiliate_link_user_id_label: 'User ID',
  affiliate_link_pct_label: 'Custom commission (%) — blank = program default',
  affiliate_link_window_label: 'Attribution window (days) — optional',
  affiliate_link_window_tooltip:
    'How many days after a link click a purchase is still attributed to this affiliate.',
  affiliate_link_submit: 'Save affiliate link',
  affiliate_link_success: 'Affiliate link created/updated',
  affiliate_link_error: 'Error creating affiliate link',

  tab_overview: 'Overview',
  tab_list: 'List',
  tab_fraud: 'Fraud',
  tab_settings: 'Settings',
  tabs_aria_label: 'Affiliates tabs',
  overview_heading: 'Affiliate Program Overview',
  overview_subtitle: 'Current snapshot of enrollments, referrals and the fraud queue',
  overview_active_enrollments: 'Active Affiliates',
  overview_active_enrollments_tooltip:
    'Affiliates with an active enrollment (not suspended or revoked). Click to open the affiliate list.',
  overview_pending_referrals: 'Referrals in Hold Period',
  overview_pending_referrals_tooltip:
    'Referrals waiting out the configured hold period before commission matures and becomes withdrawable. No action needed from you.',
  overview_quarantined_referrals: 'Quarantined Referrals',
  overview_quarantined_referrals_tooltip:
    'Referrals automatically frozen on fraud suspicion. They are resolved in the fraud dashboard.',
  overview_unresolved_fraud_flags: 'Open Fraud Flags',
  overview_unresolved_fraud_flags_tooltip:
    'Unresolved suspicious events awaiting an admin decision. Click to open the fraud dashboard.',
  overview_needs_attention: 'Needs attention',
  overview_stats_unavailable: 'Stats are unavailable right now — try refreshing the page',
  overview_card_link_aria: 'View details',
} as const;
