CounterDroneBackend/src/CounterDrone.Core/Services/IScenarioService.cs

61 lines
2.6 KiB
C#

using System.Collections.Generic;
using CounterDrone.Core.Models;
namespace CounterDrone.Core.Services
{
/// <summary>想定管理服务</summary>
public interface IScenarioService
{
// ═══ Scenario ═══
Scenario CreateScenario(string name, string scenarioNumber);
void DeleteScenario(string id);
Scenario UpdateScenario(Scenario scenario);
PagedResult<Scenario> 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<ControlZone> zones);
List<ControlZone> 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<ScenarioDrone> GetScenarioDrones(string scenarioId);
// ═══ ScenarioUnit ═══
void SaveDeployment(string scenarioId, List<ScenarioUnit> equips);
ScenarioUnit AddDeploymentUnit(string scenarioId, ScenarioUnit unit);
void UpdateDeploymentUnit(ScenarioUnit unit);
void DeleteDeploymentUnit(string id);
List<ScenarioUnit> GetDeploymentUnits(string scenarioId);
// ═══ Detection ═══
void AddDetection(string scenarioId, ScenarioUnit detection);
void DeleteDetection(string detectionId);
List<ScenarioUnit> 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<Waypoint> waypoints);
List<RoutePlan> GetRoutes(string scenarioId);
void DeleteRoute(string id);
List<Waypoint> GetWaypoints(string scenarioId);
List<Waypoint> GetWaypointsByWave(string scenarioId, string waveId);
void DeleteWaypoint(string id);
// ═══ Misc ═══
void UpdateStep(string scenarioId, int step);
}
}