namespace Meezi.API.Models.Printing;

public record BranchPrintSettingsDto(
    string BranchId,
    string? ReceiptPrinterIp,
    int? ReceiptPrinterPort,
    string? KitchenPrinterIp,
    int? KitchenPrinterPort,
    int PaperWidthMm,
    bool AutoCutEnabled,
    string? ReceiptHeader,
    string? ReceiptFooter,
    string? WifiPassword,
    string? PosDeviceIp,
    int? PosDevicePort);

public record PatchBranchPrintSettingsRequest(
    string? ReceiptPrinterIp,
    int? ReceiptPrinterPort,
    string? KitchenPrinterIp,
    int? KitchenPrinterPort,
    int? PaperWidthMm,
    bool? AutoCutEnabled,
    string? ReceiptHeader,
    string? ReceiptFooter,
    string? WifiPassword,
    string? PosDeviceIp,
    int? PosDevicePort);

public record PosPaymentRequest(string OrderId, decimal Amount);

public record PosPaymentResultDto(bool Sent, bool Skipped, string? Message);

public record TestPrintRequest(string PrinterIp, int Port = 9100);

public record PrintJobResultDto(bool Printed, string? ErrorCode, string? Message);
