using Microsoft.AspNetCore.Mvc;
using MQTTnet;
using backend.Application;
using backend.Models;

namespace backend.Controllers;

[ApiController]
public class DispenserController : ControllerBase
{
    [HttpPost("Dispense")]
    public void Dispense()
    {
		Console.WriteLine("Dispensing..");

		var message = new MqttApplicationMessageBuilder()
			.WithTopic("dispense")
			.WithPayload("dispense")
			.Build();

		ApplicationState.DbContext!.Add(new DispenserLog { Timestamp = DateTime.Now });
		ApplicationState.DbContext!.SaveChanges();

		ApplicationState.MqttClient!.PublishAsync(message, CancellationToken.None);
    }
}
