Source code for autumn.models.meta
from __future__ import annotations
from typing import TYPE_CHECKING, Optional
from pydantic import BaseModel, ConfigDict
from .products import ProductItem
if TYPE_CHECKING:
from typing import Any, Dict
Metadata = Dict[str, Any]
__all__ = ("Empty", "FeatureOptions", "ProductOptions", "CustomerData")
[docs]
class Empty(BaseModel): ...
[docs]
class FeatureOptions(BaseModel):
feature_id: str
quantity: int
[docs]
class ProductOptions(BaseModel):
product_id: str
quantity: Optional[int] = None
[docs]
class CustomerData(BaseModel):
name: Optional[str] = None
email: Optional[str] = None
fingerprint: Optional[str] = None
[docs]
class AttachProductOptions(BaseModel):
product_id: str
quantity: Optional[int] = None
[docs]
class CheckoutLine(BaseModel):
description: str
amount: int
item: ProductItem
[docs]
class Cycle(BaseModel):
starts_at: int
total: float
[docs]
class QueryDP(BaseModel):
period: int
model_config = ConfigDict(extra="allow")
[docs]
def get_usage(self, key: str) -> Optional[int]:
if self.__pydantic_extra__ is None:
return None
return self.__pydantic_extra__.get(key)