using System.Collections.Generic; using CounterDrone.Core.Models; namespace CounterDrone.Core.Services { /// 想定管理服务 public interface IScenarioService { // ═══ Scenario ═══ Scenario CreateScenario(string name, string scenarioNumber); void DeleteScenario(string id); Scenario UpdateScenario(Scenario scenario); PagedResult SearchScenarios(string keyword, string? dateFrom, string? dateTo, int page, int pageSize); ScenarioConfig? GetScenarioDetail(string id); // ═══ CombatScene ═══ void SaveScene(string scenarioId, CombatScene scene); CombatScene GetScene(string scenarioId); // ═══ ControlZone ═══ void SaveControlZones(string scenarioId, List zones); List GetControlZones(string scenarioId); void DeleteControlZone(string id); // ═══ ScenarioDrone ═══ ScenarioDrone SaveScenarioDrone(string scenarioId, ScenarioDrone drone); ScenarioDrone AddScenarioDrone(string scenarioId, ScenarioDrone drone); void UpdateScenarioDrone(ScenarioDrone drone); void DeleteScenarioDrone(string id); List GetScenarioDrones(string scenarioId); // ═══ ScenarioUnit ═══ void SaveDeployment(string scenarioId, List equips); ScenarioUnit AddDeploymentUnit(string scenarioId, ScenarioUnit unit); void UpdateDeploymentUnit(ScenarioUnit unit); void DeleteDeploymentUnit(string id); List GetDeploymentUnits(string scenarioId); // ═══ Detection ═══ void AddDetection(string scenarioId, ScenarioUnit detection); void DeleteDetection(string detectionId); List GetDetections(string scenarioId); // ═══ CloudDispersal ═══ void SaveCloudDispersal(string scenarioId, CloudDispersal cloud); CloudDispersal GetCloudDispersal(string scenarioId); void DeleteCloudDispersal(string scenarioId); // ═══ Route & Waypoint ═══ void SaveRoute(string scenarioId, string waveId, RoutePlan route, List waypoints); List GetRoutes(string scenarioId); void DeleteRoute(string id); List GetWaypoints(string scenarioId); List GetWaypointsByWave(string scenarioId, string waveId); void DeleteWaypoint(string id); // ═══ Misc ═══ void UpdateStep(string scenarioId, int step); } }