feat(print): route print jobs through a local agent, fall back to TCP
CI/CD / CI · API (dotnet build + test) (push) Successful in 47s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 30s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m9s
CI/CD / CI · Admin Web (tsc) (push) Successful in 38s
CI/CD / CI · Website (tsc) (push) Successful in 46s
CI/CD / CI · Koja (tsc) (push) Successful in 49s
CI/CD / Deploy · all services (push) Successful in 1m40s
CI/CD / CI · API (dotnet build + test) (push) Successful in 47s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 30s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m9s
CI/CD / CI · Admin Web (tsc) (push) Successful in 38s
CI/CD / CI · Website (tsc) (push) Successful in 46s
CI/CD / CI · Koja (tsc) (push) Successful in 49s
CI/CD / Deploy · all services (push) Successful in 1m40s
Phase 2. NetworkPrinterService now builds the ESC/POS bytes (as before) and dispatches them via a new router: if the receipt/kitchen/station printer is mapped to a PrintDevice whose agent is online, the bytes are sent to that agent over the hub and we await its ack; otherwise it falls back to a direct TCP connection (raw IP), so existing on-prem/reachable printers keep working unchanged. Adds nullable mapping columns Branch.ReceiptPrintDeviceId / KitchenPrintDeviceId and KitchenStation.PrintDeviceId (additive migration), plus TestPrintDeviceAsync for testing an agent printer. The cloud can now reach LAN/USB printers it never could. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,11 @@ public class Branch : TenantEntity
|
||||
public int? ReceiptPrinterPort { get; set; }
|
||||
public string? KitchenPrinterIp { get; set; }
|
||||
public int? KitchenPrinterPort { get; set; }
|
||||
|
||||
/// <summary>Optional <see cref="PrintDevice"/> to route through a local print agent
|
||||
/// (preferred over the raw IP when its agent is online). Cloud-hosted cafés use this.</summary>
|
||||
public string? ReceiptPrintDeviceId { get; set; }
|
||||
public string? KitchenPrintDeviceId { get; set; }
|
||||
public int PaperWidthMm { get; set; } = 80;
|
||||
public bool AutoCutEnabled { get; set; } = true;
|
||||
public string? ReceiptHeader { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user