web/backend/secretapi/marketplace_models.go

177 lines
6.9 KiB
Go

package main
import "time"
type marketplaceOffer struct {
OfferID string `json:"offer_id"`
IssuerID string `json:"issuer_id"`
Title string `json:"title"`
Summary string `json:"summary,omitempty"`
Status string `json:"status"`
Pricing marketplaceOfferPrice `json:"pricing"`
Policies marketplaceOfferPolicy `json:"policies"`
ExecutionProfile marketplaceExecutionProfile `json:"execution_profile,omitempty"`
SortOrder int `json:"-"`
}
type marketplaceOfferPrice struct {
Currency string `json:"currency"`
AmountAtomic string `json:"amount_atomic"`
Decimals int `json:"decimals"`
ChainID int64 `json:"chain_id"`
}
type marketplaceOfferPolicy struct {
MemberOnly bool `json:"member_only"`
WorkspaceBound bool `json:"workspace_bound"`
Transferable bool `json:"transferable"`
InternalUseOnly bool `json:"internal_use_only"`
MultiTenant bool `json:"multi_tenant"`
EntitlementClass string `json:"entitlement_class,omitempty"`
RequiresOffers []string `json:"requires_offers,omitempty"`
}
type marketplaceExecutionProfile struct {
ConnectorSurface string `json:"connector_surface"`
PacingTier string `json:"pacing_tier"`
HumanPaceFloorMS int `json:"human_pace_floor_ms,omitempty"`
}
type marketplaceOffersResponse struct {
Offers []marketplaceOffer `json:"offers"`
}
type marketplaceCheckoutQuoteRequest struct {
Wallet string `json:"wallet"`
PayerWallet string `json:"payer_wallet,omitempty"`
OfferID string `json:"offer_id"`
OrgRootID string `json:"org_root_id,omitempty"`
PrincipalID string `json:"principal_id,omitempty"`
PrincipalRole string `json:"principal_role,omitempty"`
WorkspaceID string `json:"workspace_id,omitempty"`
OwnershipProof string `json:"ownership_proof,omitempty"`
IncludeMembershipIfMissing *bool `json:"include_membership_if_missing,omitempty"`
}
type marketplaceQuoteLineItem struct {
Kind string `json:"kind"`
Label string `json:"label"`
Amount string `json:"amount"`
AmountAtomic string `json:"amount_atomic"`
Decimals int `json:"decimals"`
Currency string `json:"currency"`
}
type marketplaceCheckoutQuoteResponse struct {
QuoteID string `json:"quote_id"`
Wallet string `json:"wallet"`
PayerWallet string `json:"payer_wallet,omitempty"`
OfferID string `json:"offer_id"`
OrgRootID string `json:"org_root_id,omitempty"`
PrincipalID string `json:"principal_id,omitempty"`
PrincipalRole string `json:"principal_role,omitempty"`
Currency string `json:"currency"`
Amount string `json:"amount"`
AmountAtomic string `json:"amount_atomic"`
TotalAmount string `json:"total_amount"`
TotalAmountAtomic string `json:"total_amount_atomic"`
Decimals int `json:"decimals"`
MembershipActivationIncluded bool `json:"membership_activation_included"`
LineItems []marketplaceQuoteLineItem `json:"line_items"`
PolicyHash string `json:"policy_hash"`
ExpiresAt string `json:"expires_at"`
Tx map[string]any `json:"tx"`
AccessClass string `json:"access_class"`
AvailabilityState string `json:"availability_state"`
}
type marketplaceCheckoutConfirmRequest struct {
QuoteID string `json:"quote_id"`
Wallet string `json:"wallet"`
PayerWallet string `json:"payer_wallet,omitempty"`
OfferID string `json:"offer_id"`
OrgRootID string `json:"org_root_id,omitempty"`
PrincipalID string `json:"principal_id,omitempty"`
PrincipalRole string `json:"principal_role,omitempty"`
WorkspaceID string `json:"workspace_id,omitempty"`
TxHash string `json:"tx_hash"`
ChainID int64 `json:"chain_id"`
}
type marketplaceCheckoutConfirmResponse struct {
Status string `json:"status"`
EntitlementID string `json:"entitlement_id"`
OfferID string `json:"offer_id"`
OrgRootID string `json:"org_root_id,omitempty"`
PrincipalID string `json:"principal_id,omitempty"`
PrincipalRole string `json:"principal_role,omitempty"`
Wallet string `json:"wallet"`
TxHash string `json:"tx_hash"`
PolicyHash string `json:"policy_hash"`
ActivatedAt string `json:"activated_at"`
AccessClass string `json:"access_class"`
AvailabilityState string `json:"availability_state"`
}
type marketplaceEntitlement struct {
EntitlementID string `json:"entitlement_id"`
OfferID string `json:"offer_id"`
WalletAddress string `json:"wallet_address"`
WorkspaceID string `json:"workspace_id,omitempty"`
OrgRootID string `json:"org_root_id,omitempty"`
State string `json:"state"`
AccessClass string `json:"access_class"`
AvailabilityState string `json:"availability_state"`
PolicyHash string `json:"policy_hash"`
IssuedAt string `json:"issued_at"`
}
type marketplaceEntitlementsResponse struct {
Entitlements []marketplaceEntitlement `json:"entitlements"`
}
type marketplaceQuoteRecord struct {
QuoteID string
Wallet string
PayerWallet string
OfferID string
OrgRootID string
PrincipalID string
PrincipalRole string
WorkspaceID string
Currency string
AmountAtomic string
TotalAmountAtomic string
Decimals int
MembershipIncluded bool
LineItemsJSON string
PolicyHash string
AccessClass string
AvailabilityState string
ExpectedTxTo string
ExpectedTxData string
ExpectedTxValueHex string
CreatedAt time.Time
ExpiresAt time.Time
ConfirmedAt *time.Time
ConfirmedTxHash string
}
type marketplaceEntitlementRecord struct {
EntitlementID string
QuoteID string
OfferID string
Wallet string
PayerWallet string
OrgRootID string
PrincipalID string
PrincipalRole string
WorkspaceID string
State string
AccessClass string
AvailabilityState string
PolicyHash string
IssuedAt time.Time
TxHash string
}