using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using RadicadeServer.DB; using RadicadeServer.Extensions; using RadicadeServer.RecNet.Accounts; using RadicadeServer.RecNet.Enums; namespace RadicadeServer.Matchmaking { [Route("matchmaking/roominstance/")] public class RoomInstanceAPI : Controller { RecDBContext db; public RoomInstanceAPI(RecDBContext context) { this.db = context; } [HttpPut("{id}/markprivate")] public async Task MarkPrivate(long id, bool isPrivate) { var roomInstance = await db.RoomInstances.FirstOrDefaultAsync(x => x.roomInstanceId == id); if (roomInstance == null) return Ok(new { success = false, error = "Room instance not found" }); roomInstance.isPrivate = isPrivate; await db.SaveChangesAsync(); return Ok(new { success = true, error = "" }); } [HttpPut("{id}/inprogress")] public async Task MarkInProgress(long id, bool inProgress) { var roomInstance = await db.RoomInstances.FirstOrDefaultAsync(x => x.roomInstanceId == id); if (roomInstance == null) return Ok(new { success = false, error = "Room instance not found" }); roomInstance.isInProgress = inProgress; await db.SaveChangesAsync(); return Ok(new { success = true, error = "" }); } [HttpGet("{id}/roomCode")] public IActionResult SetRoomCode([FromForm] string roomCode, [FromQuery] long id) { return Ok(); } } }