gleam-spacetraders-sdk/src/spacetraders_models/contract_deliver_good.gleam

28 lines
844 B
Gleam

import gleam/dynamic/decode.{type Decoder}
import spacetraders_models/trade_symbol.{type TradeSymbol}
import spacetraders_models/waypoint_symbol.{type WaypointSymbol}
pub type ContractDeliverGood {
ContractDeliverGood(
trade_symbol: TradeSymbol,
destination_symbol: WaypointSymbol,
units_required: Int,
units_fulfilled: Int,
)
}
pub fn decoder() -> Decoder(ContractDeliverGood) {
use trade_symbol <- decode.field("tradeSymbol", trade_symbol.decoder())
use destination_symbol <- decode.field(
"destinationSymbol",
waypoint_symbol.decoder(),
)
use units_required <- decode.field("unitsRequired", decode.int)
use units_fulfilled <- decode.field("unitsFulfilled", decode.int)
decode.success(ContractDeliverGood(
trade_symbol:,
destination_symbol:,
units_required:,
units_fulfilled:,
))
}