checkout_controller 0.0.7

a set of interfaces to create robust backends for a pleasant checkout experience
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::{money::Money, CheckoutError};
use async_trait::async_trait;
use serde::{Deserialize, Serialize};
use schemars::JsonSchema;

#[derive(Clone, Serialize, Deserialize, JsonSchema)]
pub struct Item {
    pub sku: String,
    pub title: String,
    pub quantity: u64,
    pub price: Money,
    pub discount: Money,
}

#[async_trait]
pub trait ItemTitleResolver {
    async fn resolve_item_title(&mut self, sku: &str) -> Result<String, CheckoutError>;
}