"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { authFetch } from "@/lib/auth"; import { useAuth } from "@/lib/auth"; import Link from "next/link"; import { ArrowLeft, Save, Info } from "lucide-react"; // ─── Types ──────────────────────────────────────────────────────────────────── export interface StrategyFormData { display_name: string; symbol: string; direction: string; initial_balance: number; cvd_fast_window: string; cvd_slow_window: string; weight_direction: number; weight_env: number; weight_aux: number; weight_momentum: number; entry_score: number; gate_obi_enabled: boolean; obi_threshold: number; gate_whale_enabled: boolean; whale_cvd_threshold: number; gate_vol_enabled: boolean; atr_percentile_min: number; gate_spot_perp_enabled: boolean; spot_perp_threshold: number; sl_atr_multiplier: number; tp1_ratio: number; tp2_ratio: number; timeout_minutes: number; flip_threshold: number; description: string; } export const DEFAULT_FORM: StrategyFormData = { display_name: "", symbol: "BTCUSDT", direction: "both", initial_balance: 10000, cvd_fast_window: "30m", cvd_slow_window: "4h", weight_direction: 55, weight_env: 25, weight_aux: 15, weight_momentum: 5, entry_score: 75, gate_obi_enabled: true, obi_threshold: 0.3, gate_whale_enabled: true, whale_cvd_threshold: 0.0, gate_vol_enabled: true, atr_percentile_min: 20, gate_spot_perp_enabled: false, spot_perp_threshold: 0.002, sl_atr_multiplier: 1.5, tp1_ratio: 0.75, tp2_ratio: 1.5, timeout_minutes: 240, flip_threshold: 80, description: "", }; // ─── Helper Components ──────────────────────────────────────────────────────── function FieldLabel({ label, hint }: { label: string; hint?: string }) { return (