using SDG_Backend_Barracuda.Models; namespace SDG_Backend_Barracuda.Games; public class Undercover : IEndpointRouteHandler { public static void MapEndpoints(IEndpointRouteBuilder routes) { var undercover = routes.MapGroup("/undercover"); undercover.MapGet("/decks", async (IDeckModel deckModel) => { var decks = await deckModel.GetAll(); var undercoverDecks = decks.Where(d => d.GameList?.Any(g => g.Name == "Undercover") ?? false); return Results.Ok(undercoverDecks.Select(d => new { id = d.Id, name = d.Name })); }); undercover.MapGet("/deck/{deckId}", async (int deckId, IDeckModel deckModel, ICardListModel cardListModel) => { var deck = await deckModel.GetById(deckId); if (deck == null) { return Results.NotFound(); } var cardList = await cardListModel.GetById(deck.CardListId); if (cardList == null) { return Results.NotFound(); } var cardValues = cardList.Cards?.Select(c => c.Value) ?? []; return Results.Ok(new { cards = cardValues }); }); } }