using System.Collections.Generic;
using CounterDrone.Core.Models;

namespace CounterDrone.Core.Services
{
    /// <summary>基础数据管理服务 — 弹药/火力单元/无人机/传感器/环境/编队/航线 全 CRUD</summary>
    public interface IDataService
    {
        // ═══ AmmunitionSpec ═══
        List<AmmunitionSpec> GetAllAmmo();
        AmmunitionSpec GetAmmo(string id);
        void SaveAmmo(AmmunitionSpec spec);
        void DeleteAmmo(string id);

        // ═══ FireUnitSpec ═══
        List<FireUnitSpec> GetAllFireUnits();
        FireUnitSpec GetFireUnit(string id);
        void SaveFireUnit(FireUnitSpec spec);
        void DeleteFireUnit(string id);

        // ═══ DroneSpec ═══
        List<DroneSpec> GetAllDrones();
        DroneSpec GetDrone(string id);
        void SaveDrone(DroneSpec spec);
        void DeleteDrone(string id);

        // ═══ SensorSpec ═══
        List<SensorSpec> GetAllSensors();
        SensorSpec GetSensor(string id);
        void SaveSensor(SensorSpec spec);
        void DeleteSensor(string id);

        // ═══ EnvironmentSpec ═══
        List<EnvironmentSpec> GetAllEnvironments();
        EnvironmentSpec GetEnvironment(string id);
        void SaveEnvironment(EnvironmentSpec spec);
        void DeleteEnvironment(string id);

        // ═══ FormationTemplate ═══
        List<FormationTemplate> GetAllFormations();
        FormationTemplate GetFormation(string id);
        void SaveFormation(FormationTemplate spec);
        void DeleteFormation(string id);

        // ═══ RouteTemplate ═══
        List<RouteTemplate> GetAllRoutes();
        RouteTemplate GetRoute(string id);
        void SaveRoute(RouteTemplate spec);
        void DeleteRoute(string id);
    }
}
