using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using EpsonPrinter.Model;
using EpsonPrinter.Services;

namespace EpsonPrinter.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class PosPrinterController : ControllerBase
    {
        /// <summary>
        /// PrintReceipt receipt, so far only for all Epson Thermal Printers
        /// </summary>
        /// PrintStyle is:
        ///     None
        ///     FontB
        ///     Bold
        ///     DoubleHeight
        ///     DoubleWidth
        ///     Underline
        /// There is support for any combination of PrintStyles
        /// ----------------------------------------
        ///
        /// 
        /// <param name="receiptModel"></param>
        [HttpPost]
        [Route("Receipt")]
        public void PrintReceipt([FromServices] EpsonPrintService epsonPrint, ReceiptModel receiptModel)
        {
            epsonPrint.PrintReceipt(receiptModel);
        }

        [HttpPost]
        [Route("SaleOfDay")]
        public void PrintSaleOfDay([FromServices] EpsonPrintService epsonPrint, SaleOfDayModel saleOfDayModel)
        {
            epsonPrint.PrintSaleOfDay(saleOfDayModel);
        }
    }
}
