using Microsoft.AspNetCore.Mvc; using SVSim.EmulatedEntrypoint.Models.Dtos.Requests; namespace SVSim.EmulatedEntrypoint.Controllers; /// /// /download_time/* — asset-download timing telemetry. The client fires /// POST /download_time/start right before kicking off an Akamai asset bundle /// download (Wizard/DownloadStartTask.cs) and POST /download_time/end when /// it completes (Wizard/DownloadFinishTask.cs). Both are pure telemetry from our /// perspective — we don't track download timings — but the client surfaces an HTTP error /// dialog if either 404s, so we ack with empty data: {} bodies. /// /// Explicit because the base controller token would /// resolve to /downloadtime, missing the underscore. /// [Route("download_time")] public class DownloadTimeController : SVSimController { /// /// Spec: docs/api-spec/endpoints/post-login/download_time-start.md. The client's /// DownloadStartTask.Parse reads an optional image_type string /// ("card" → CardDetail loading-screen art, "still" → StoryDetail, anything /// else → default). We omit it; the client falls through to the default art. /// [HttpPost("start")] public IActionResult Start([FromBody] BaseRequest request) => Ok(new { }); /// /// Spec: docs/api-spec/endpoints/post-login/download_time-end.md. The client's /// DownloadFinishTask doesn't override Parse at all — only result_code /// matters. Empty data is the documented minimum-viable response. /// [HttpPost("end")] public IActionResult End([FromBody] BaseRequest request) => Ok(new { }); }