import type * as Square from "../index"; /** * A [CatalogModifier](entity:CatalogModifier). */ export interface OrderLineItemModifier { /** A unique ID that identifies the modifier only within this order. */ uid?: string | null; /** The catalog object ID referencing [CatalogModifier](entity:CatalogModifier). */ catalogObjectId?: string | null; /** The version of the catalog object that this modifier references. */ catalogVersion?: bigint | null; /** The name of the item modifier. */ name?: string | null; /** * The quantity of the line item modifier. The modifier quantity can be 0 or more. * For example, suppose a restaurant offers a cheeseburger on the menu. When a buyer orders * this item, the restaurant records the purchase by creating an `Order` object with a line item * for a burger. The line item includes a line item modifier: the name is cheese and the quantity * is 1. The buyer has the option to order extra cheese (or no cheese). If the buyer chooses * the extra cheese option, the modifier quantity increases to 2. If the buyer does not want * any cheese, the modifier quantity is set to 0. */ quantity?: string | null; /** * The base price for the modifier. * * `base_price_money` is required for ad hoc modifiers. * If both `catalog_object_id` and `base_price_money` are set, `base_price_money` will * override the predefined [CatalogModifier](entity:CatalogModifier) price. */ basePriceMoney?: Square.Money; /** * The total price of the item modifier for its line item. * This is the modifier's `base_price_money` multiplied by the line item's quantity. */ totalPriceMoney?: Square.Money; /** * Application-defined data attached to this order. Metadata fields are intended * to store descriptive references or associations with an entity in another system or store brief * information about the object. Square does not process this field; it only stores and returns it * in relevant API calls. Do not use metadata to store any sensitive information (such as personally * identifiable information or card details). * * Keys written by applications must be 60 characters or less and must be in the character set * `[a-zA-Z0-9_-]`. Entries can also include metadata generated by Square. These keys are prefixed * with a namespace, separated from the key with a ':' character. * * Values have a maximum length of 255 characters. * * An application can have up to 10 entries per metadata field. * * Entries written by applications are private and can only be read or modified by the same * application. * * For more information, see [Metadata](https://developer.squareup.com/docs/build-basics/metadata). */ metadata?: Record | null; /** The `uid` of the parent modifier, if this modifier is nested under another modifier. */ parentModifierUid?: string | null; }