agentic_commerce_protocol/models/
checkout_session.rs1use serde::{Deserialize, Serialize};
3
4use super::{
5 address::Address, buyer::Buyer, checkout_session_status::CheckoutSessionStatus,
6 fulfillment_option::FulfillmentOption, line_item::LineItem, link::Link, message::Message,
7 order::Order, payment_provider::PaymentProvider, total::Total,
8};
9
10#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
11pub struct CheckoutSession {
12 pub id: String,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub buyer: Option<Buyer>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub payment_provider: Option<PaymentProvider>,
17 pub status: CheckoutSessionStatus,
18 pub currency: String,
19 pub line_items: Vec<LineItem>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub fulfillment_address: Option<Address>,
22 pub fulfillment_options: Vec<FulfillmentOption>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub fulfillment_option_id: Option<String>,
25 pub totals: Vec<Total>,
26 pub messages: Vec<Message>,
27 pub links: Vec<Link>,
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub order: Option<Order>,
30}