/** Punto mensual enviado por el backend para gráficos y tablas */
export type InvestmentMonthPerf = {
    month_index: number;
    /** Rango del cupo, p. ej. «Julio 25-30» o «Julio 25 – Agosto 24». */
    period_label?: string;
    /** Último día del tramo (Y-m-d), para saber si ya debió acreditarse. */
    period_end?: string;
    nominal_percent: number;
    /** % esperado sobre el capital en este cupo (proyección pactada prorrateada). */
    expected_period_percent?: number | null;
    projected_gain_usd: string;
    /** Capital sobre el que se aplicó el % ese mes (antes de acreditar). */
    capital_base_usd: string | null;
    /** % efectivo otorgado en el cupo: ganancia acreditada ÷ capital × 100. */
    accredited_percent?: number | null;
    actual_gain_usd: string | null;
    /** Mes pactado omitido (sin acreditación) mientras un tramo posterior sí se acreditó. */
    is_skipped?: boolean;
    /** Mes extra al final para cumplir las acreditaciones pactadas. */
    is_extension?: boolean;
};

export type UserPortfolioInvestment = {
    id: number;
    amount: string;
    /** Saldo actual acumulado (principal + ganancias − retiros). */
    current_capital_usd: string;
    /** Lo que puede retirarse hoy (ganancias mientras el principal sigue bloqueado, etc.). */
    withdrawable_usd: string;
    months_credited: number;
    duration_months: number;
    monthly_return_snapshot: string;
    /** Tasa mensual vigente en administración (proyecciones y nuevas acreditaciones). */
    monthly_return_current: string;
    txid: string;
    status: string;
    created_at: string | null;
    confirmed_at: string | null;
    maturity_at: string | null;
    month_performance: InvestmentMonthPerf[];
    projected_monthly_gain: string;
    projected_daily_gain: string;
    projected_total_gain: string;
    projected_ending_balance: string;
};
