Add Allegro shipment service and related components

- Implement AllegroShipmentService for managing shipment creation and status checks.
- Create ShipmentController to handle shipment preparation and label downloading.
- Introduce ShipmentPackageRepository for database interactions related to shipment packages.
- Add methods for retrieving delivery services, creating shipments, checking creation status, and downloading labels.
- Implement address validation and token management for Allegro API integration.
This commit is contained in:
2026-03-06 01:06:59 +01:00
parent 9df7a63244
commit 1b5e403c31
46 changed files with 6705 additions and 133 deletions

View File

@@ -0,0 +1,37 @@
CREATE TABLE IF NOT EXISTS shipment_packages (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
order_id BIGINT UNSIGNED NOT NULL,
provider VARCHAR(32) NOT NULL DEFAULT 'allegro_wza',
delivery_method_id VARCHAR(128) NULL,
credentials_id VARCHAR(128) NULL,
command_id VARCHAR(64) NULL,
shipment_id VARCHAR(64) NULL,
tracking_number VARCHAR(128) NULL,
status VARCHAR(32) NOT NULL DEFAULT 'draft',
carrier_id VARCHAR(64) NULL,
package_type VARCHAR(16) NOT NULL DEFAULT 'PACKAGE',
weight_kg DECIMAL(8,3) NULL,
length_cm DECIMAL(8,1) NULL,
width_cm DECIMAL(8,1) NULL,
height_cm DECIMAL(8,1) NULL,
insurance_amount DECIMAL(12,2) NULL,
insurance_currency CHAR(3) NULL,
cod_amount DECIMAL(12,2) NULL,
cod_currency CHAR(3) NULL,
label_format VARCHAR(8) NOT NULL DEFAULT 'PDF',
label_path VARCHAR(512) NULL,
receiver_point_id VARCHAR(64) NULL,
sender_point_id VARCHAR(64) NULL,
reference_number VARCHAR(128) NULL,
error_message TEXT NULL,
payload_json JSON NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY shipment_packages_order_idx (order_id),
KEY shipment_packages_status_idx (status),
KEY shipment_packages_tracking_idx (tracking_number),
KEY shipment_packages_command_idx (command_id),
CONSTRAINT shipment_packages_order_fk
FOREIGN KEY (order_id) REFERENCES orders(id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;