using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using MealPlanner.Data; using MealPlanner.Models; namespace MealPlanner.Controllers; [ApiController] [Route("api/settings")] [Authorize] public class SettingsController(AppDbContext db) : ControllerBase { private string UserId => User.FindFirst("sub")?.Value ?? throw new UnauthorizedAccessException(); [HttpGet] public async Task Get() { var settings = await db.UserSettings.FindAsync(UserId); if (settings is null) { settings = new UserSettings { UserId = UserId, HouseholdSize = 2 }; db.UserSettings.Add(settings); await db.SaveChangesAsync(); } return Ok(settings); } [HttpPut] public async Task Update([FromBody] UserSettings updated) { var settings = await db.UserSettings.FindAsync(UserId); if (settings is null) { settings = new UserSettings { UserId = UserId }; db.UserSettings.Add(settings); } settings.HouseholdSize = updated.HouseholdSize; await db.SaveChangesAsync(); return Ok(settings); } }