printer-core 0.0.6__tar.gz → 0.0.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. {printer_core-0.0.6 → printer_core-0.0.7}/PKG-INFO +1 -1
  2. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/builders/client_ticket_builder.py +14 -0
  3. {printer_core-0.0.6 → printer_core-0.0.7}/pyproject.toml +1 -1
  4. {printer_core-0.0.6 → printer_core-0.0.7}/.gitignore +0 -0
  5. {printer_core-0.0.6 → printer_core-0.0.7}/README.md +0 -0
  6. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/__init__.py +0 -0
  7. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/algorithms/__init__.py +0 -0
  8. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/algorithms/products_modifiers_multiprinter.py +0 -0
  9. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/algorithms/products_modifiers_multiprinter_family.py +0 -0
  10. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/algorithms/products_modifiers_unique_ticket.py +0 -0
  11. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/builders/__init__.py +0 -0
  12. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/builders/header_builder.py +0 -0
  13. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/builders/kitchen_ticket_payload_builder.py +0 -0
  14. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/builders/printer_products_grouper.py +0 -0
  15. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/clock.py +0 -0
  16. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/context/__init__.py +0 -0
  17. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/context/ticket_context_builder.py +0 -0
  18. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/dispatchers/__init__.py +0 -0
  19. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/dispatchers/kitchen_ticket_dispatcher.py +0 -0
  20. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/dispatchers/payload_dispatcher.py +0 -0
  21. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/entities/__init__.py +0 -0
  22. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/entities/print_context.py +0 -0
  23. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/entities/print_models.py +0 -0
  24. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/formatters/__init__.py +0 -0
  25. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/formatters/discount_formatter.py +0 -0
  26. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/ports.py +0 -0
  27. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/selectors/__init__.py +0 -0
  28. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/selectors/family_product_selector.py +0 -0
  29. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/__init__.py +0 -0
  30. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/flows/__init__.py +0 -0
  31. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/flows/base.py +0 -0
  32. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/flows/client.py +0 -0
  33. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/flows/kitchen.py +0 -0
  34. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/march_printer_service.py +0 -0
  35. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/multi_printer_family_service.py +0 -0
  36. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/multi_printer_service.py +0 -0
  37. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/order_print_service.py +0 -0
  38. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/print_policy.py +0 -0
  39. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/services/unique_ticket_service.py +0 -0
  40. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/__init__.py +0 -0
  41. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/__init__.py +0 -0
  42. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/helpers.py +0 -0
  43. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_cases_output.py +0 -0
  44. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_client_ticket_builder.py +0 -0
  45. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_discount_formatter.py +0 -0
  46. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_family_product_selector.py +0 -0
  47. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_flows.py +0 -0
  48. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_header_builder_foodeo_printers.py +0 -0
  49. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_kitchen_ticket_dispatcher.py +0 -0
  50. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_kitchen_ticket_payload_builder.py +0 -0
  51. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_march_printer_service.py +0 -0
  52. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_multi_printer_family_service.py +0 -0
  53. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_multi_printer_service.py +0 -0
  54. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_order_print_service.py +0 -0
  55. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_payload_dispatcher.py +0 -0
  56. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_print_policy.py +0 -0
  57. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_printer_helpers.py +0 -0
  58. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_printer_products_grouper.py +0 -0
  59. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_products_modifiers.py +0 -0
  60. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_ticket_context_builder.py +0 -0
  61. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/tests/unitaries/test_unique_ticket_service.py +0 -0
  62. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/utils/__init__.py +0 -0
  63. {printer_core-0.0.6 → printer_core-0.0.7}/printer_core/utils/printer_helpers.py +0 -0
  64. {printer_core-0.0.6 → printer_core-0.0.7}/scripts/link_backend_env.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: printer-core
3
- Version: 0.0.6
3
+ Version: 0.0.7
4
4
  Summary: Foodeo Printer Core Domain.
5
5
  Project-URL: Homepage, https://github.com/Foodeo/printer-core
6
6
  Project-URL: Repository, https://github.com/Foodeo/printer-core
@@ -1,6 +1,8 @@
1
1
  from decimal import Decimal
2
2
  from typing import Any, Callable
3
+ from datetime import datetime
3
4
 
5
+ from printer_core.clock import SystemClock
4
6
  from printer_core.entities import (
5
7
  ClientTicketData,
6
8
  ClientTicketPayload,
@@ -9,15 +11,18 @@ from printer_core.entities import (
9
11
  PrintRequestData,
10
12
  PrinterData,
11
13
  )
14
+ from printer_core.ports import Clock
12
15
 
13
16
 
14
17
  class ClientTicketBuilder:
15
18
  def __init__(self,
16
19
  currency_symbol_resolver: Callable[[str], str] | None = None,
17
20
  domicile_service_label: str = "Domicile Service",
21
+ clock: Clock | None = None
18
22
  ):
19
23
  self._currency_symbol_resolver = currency_symbol_resolver or (lambda _: "")
20
24
  self._domicile_service_label = domicile_service_label
25
+ self._clock = clock or SystemClock()
21
26
 
22
27
  def build(self,
23
28
  request: PrintRequestData,
@@ -39,6 +44,8 @@ class ClientTicketBuilder:
39
44
  elif client_request.details:
40
45
  client_request = client_request.model_copy(update={"details": None})
41
46
 
47
+ client_request = client_request.model_copy(update={"created_at": self._resolve_created_at(request)})
48
+
42
49
  printer_name, printer_width = self._resolve_printer(printer)
43
50
  payload = ClientTicketPayload(
44
51
  data=client_request,
@@ -95,3 +102,10 @@ class ClientTicketBuilder:
95
102
  if isinstance(printer, dict):
96
103
  return printer["name"], printer["printer_width"]
97
104
  return printer.name, printer.printer_width
105
+
106
+ def _resolve_created_at(self, request: PrintRequestData) -> str:
107
+ if request.type in ["domicilio", "recoger"] and request.shift_time and request.delivery_date:
108
+ shift_time = datetime.strptime(request.shift_time, "%H:%M").time()
109
+ delivery_date = datetime.strptime(request.delivery_date, "%Y-%m-%d").date()
110
+ return datetime.combine(delivery_date, shift_time).strftime("%Y-%m-%d %H:%M")
111
+ return self._clock.now_iso()
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "printer-core"
7
- version = "0.0.6"
7
+ version = "0.0.7"
8
8
  description = "Foodeo Printer Core Domain."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes