using System;
using SQLite;

namespace CounterDrone.Core.Models
{
    /// <summary>弹药基础参数（第三方数据）</summary>
    [Table("AmmunitionSpec")]
    public class AmmunitionSpec
    {
        [PrimaryKey]
        public string Id { get; set; } = Guid.NewGuid().ToString();

        public int AerosolType { get; set; }

        public string Name { get; set; } = string.Empty;

        // 初始扩散状态
        public double InitialRadius { get; set; }

        public double InitialVolume { get; set; }

        public double CoreDensity { get; set; }

        public double EdgeDensity { get; set; }

        public double InitialTemperature { get; set; }

        public double BuoyancyFactor { get; set; }

        // 弹药基础参数
        public double EffectiveConcentration { get; set; }

        /// <summary>源强 Q（kg），PG 大气扩散模型用</summary>
        public double SourceStrength { get; set; } = 50.0;

        /// <summary>基础扩散速率（m/s），线性模型用</summary>
        public double DispersionRateBase { get; set; } = 3.0;

        /// <summary>爆发药 TNT 当量（kg），决定 Phase 1 初始火球半径</summary>
        public double BurstChargeKg { get; set; } = 0.3;

        /// <summary>湍流扩散系数，Phase 2 中 R=R₀+k√t 的 k 值</summary>
        public double TurbulentExpansionK { get; set; } = 5.0;

        public double MaxRadius { get; set; }

        public double MaxDuration { get; set; }

        /// <summary>粒子渲染参数 JSON</summary>
        public string ParticlesJson { get; set; } = "{}";
    }
}
