<?php

/**
 * This file is auto-generated by Saloon SDK Generator
 * Generator: Crescat\SaloonSdkGenerator\Generators\DtoGenerator
 * Do not modify it directly.
 */

declare(strict_types=1);

namespace SellingPartnerApi\Seller\ShipmentInvoicingV0\Dto;

use SellingPartnerApi\Dto;

final class ShipmentItem extends Dto
{
    protected static array $attributeMap = [
        'asin' => 'ASIN',
        'sellerSku' => 'SellerSKU',
        'orderItemId' => 'OrderItemId',
        'title' => 'Title',
        'quantityOrdered' => 'QuantityOrdered',
        'itemPrice' => 'ItemPrice',
        'shippingPrice' => 'ShippingPrice',
        'giftWrapPrice' => 'GiftWrapPrice',
        'shippingDiscount' => 'ShippingDiscount',
        'promotionDiscount' => 'PromotionDiscount',
        'serialNumbers' => 'SerialNumbers',
    ];

    /**
     * @param  ?string  $asin  The Amazon Standard Identification Number (ASIN) of the item.
     * @param  ?string  $sellerSku  The seller SKU of the item.
     * @param  ?string  $orderItemId  The Amazon-defined identifier for the order item.
     * @param  ?string  $title  The name of the item.
     * @param  ?float  $quantityOrdered  The number of items ordered.
     * @param  ?Money  $itemPrice  The currency type and amount.
     * @param  ?Money  $shippingPrice  The currency type and amount.
     * @param  ?Money  $giftWrapPrice  The currency type and amount.
     * @param  ?Money  $shippingDiscount  The currency type and amount.
     * @param  ?Money  $promotionDiscount  The currency type and amount.
     * @param  ?string[]  $serialNumbers  The list of serial numbers.
     */
    public function __construct(
        public readonly ?string $asin = null,
        public readonly ?string $sellerSku = null,
        public readonly ?string $orderItemId = null,
        public readonly ?string $title = null,
        public readonly ?float $quantityOrdered = null,
        public readonly ?Money $itemPrice = null,
        public readonly ?Money $shippingPrice = null,
        public readonly ?Money $giftWrapPrice = null,
        public readonly ?Money $shippingDiscount = null,
        public readonly ?Money $promotionDiscount = null,
        public readonly ?array $serialNumbers = null,
    ) {}
}
