CREATE TABLE IF NOT EXISTS cargo_bookings (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    active TINYINT(1) NOT NULL DEFAULT 1,
    order_id VARCHAR(50) NOT NULL,
    order_no VARCHAR(50) NOT NULL,
    booking_ref_no VARCHAR(100) NOT NULL,
    booking_vessel VARCHAR(150) NOT NULL,
    vessel_name VARCHAR(150) DEFAULT NULL,
    voyage_no VARCHAR(100) DEFAULT NULL,
    quantity INT UNSIGNED DEFAULT 0,
    amt_booked_containers INT UNSIGNED DEFAULT 0,
    empties_collected INT UNSIGNED DEFAULT 0,
    packed INT UNSIGNED DEFAULT 0,
    packed_nett DECIMAL(12,2) DEFAULT 0.00,
    dispatched INT UNSIGNED DEFAULT 0,
    fumigated INT UNSIGNED DEFAULT 0,
    preadvised INT UNSIGNED DEFAULT 0,
    planned_start_dispatch_date DATE DEFAULT NULL,
    order_date DATE NOT NULL,
    stack_open_date DATE DEFAULT NULL,
    stack_close_date DATE DEFAULT NULL,
    month_shipping VARCHAR(20) DEFAULT NULL,
    container_size_id VARCHAR(20) DEFAULT '40FT',
    terminal VARCHAR(150) DEFAULT NULL,
    port_of_loading VARCHAR(150) DEFAULT NULL,
    port_of_discharge VARCHAR(150) DEFAULT NULL,
    depot VARCHAR(150) DEFAULT NULL,
    cartage VARCHAR(150) DEFAULT NULL,
    carrier VARCHAR(150) DEFAULT NULL,
    booking_type_id VARCHAR(50) DEFAULT NULL,
    booking_agent VARCHAR(150) DEFAULT NULL,
    free_detention_days INT UNSIGNED DEFAULT 7,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY uq_order_id (order_id),
    UNIQUE KEY uq_booking_ref (booking_ref_no)
);