Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
from datetime import datetime
from typing import NamedTuple

from models_library.licenses import LicensedItemID
from models_library.licenses import LicenseID
from models_library.products import ProductName
from models_library.resource_tracker_licensed_items_checkouts import (
LicensedItemCheckoutID,
)
from models_library.resource_tracker_license_checkouts import LicenseCheckoutID
from models_library.services_types import ServiceRunID
from models_library.users import UserID
from models_library.wallets import WalletID
from pydantic import BaseModel, ConfigDict, PositiveInt


class LicensedItemCheckoutGet(BaseModel):
licensed_item_checkout_id: LicensedItemCheckoutID
licensed_item_id: LicensedItemID
class LicenseCheckoutGet(BaseModel):
license_checkout_id: LicenseCheckoutID
license_id: LicenseID
wallet_id: WalletID
user_id: UserID
user_email: str
Expand All @@ -28,8 +26,8 @@ class LicensedItemCheckoutGet(BaseModel):
json_schema_extra={
"examples": [
{
"licensed_item_checkout_id": "beb16d18-d57d-44aa-a638-9727fa4a72ef",
"licensed_item_id": "303942ef-6d31-4ba8-afbe-dbb1fce2a953",
"license_checkout_id": "beb16d18-d57d-44aa-a638-9727fa4a72ef",
"license_id": "303942ef-6d31-4ba8-afbe-dbb1fce2a953",
"wallet_id": 1,
"user_id": 1,
"user_email": "[email protected]",
Expand All @@ -44,6 +42,6 @@ class LicensedItemCheckoutGet(BaseModel):
)


class LicensedItemsCheckoutsPage(NamedTuple):
items: list[LicensedItemCheckoutGet]
class LicenseCheckoutsPage(NamedTuple):
items: list[LicenseCheckoutGet]
total: PositiveInt
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,19 @@
from decimal import Decimal
from typing import NamedTuple

from models_library.licenses import LicensedItemID
from models_library.licenses import LicenseID
from models_library.products import ProductName
from models_library.resource_tracker import PricingUnitCostId
from models_library.resource_tracker_licensed_items_purchases import (
LicensedItemPurchaseID,
)
from models_library.resource_tracker_license_purchases import LicensePurchaseID
from models_library.users import UserID
from models_library.wallets import WalletID
from pydantic import BaseModel, ConfigDict, PositiveInt


class LicensedItemPurchaseGet(BaseModel):
licensed_item_purchase_id: LicensedItemPurchaseID
class LicensePurchaseGet(BaseModel):
licensed_item_purchase_id: LicensePurchaseID
product_name: ProductName
licensed_item_id: LicensedItemID
license_id: LicenseID
wallet_id: WalletID
wallet_name: str
pricing_unit_cost_id: PricingUnitCostId
Expand All @@ -35,7 +33,7 @@ class LicensedItemPurchaseGet(BaseModel):
{
"licensed_item_purchase_id": "beb16d18-d57d-44aa-a638-9727fa4a72ef",
"product_name": "osparc",
"licensed_item_id": "303942ef-6d31-4ba8-afbe-dbb1fce2a953",
"license_id": "303942ef-6d31-4ba8-afbe-dbb1fce2a953",
"wallet_id": 1,
"wallet_name": "My Wallet",
"pricing_unit_cost_id": 1,
Expand All @@ -53,6 +51,6 @@ class LicensedItemPurchaseGet(BaseModel):
)


class LicensedItemsPurchasesPage(NamedTuple):
items: list[LicensedItemPurchaseGet]
class LicensesPurchasesPage(NamedTuple):
items: list[LicensePurchaseGet]
total: PositiveInt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from ..licenses import LicensedItemID
from ..products import ProductName
from ..resource_tracker_licensed_items_checkouts import LicensedItemCheckoutID
from ..resource_tracker_license_checkouts import LicenseCheckoutID
from ..users import UserID
from ..wallets import WalletID
from ._base import OutputSchema
Expand All @@ -15,7 +15,7 @@


class LicensedItemCheckoutRpcGet(BaseModel):
licensed_item_checkout_id: LicensedItemCheckoutID
licensed_item_checkout_id: LicenseCheckoutID
licensed_item_id: LicensedItemID
wallet_id: WalletID
user_id: UserID
Expand Down Expand Up @@ -50,7 +50,7 @@ class LicensedItemCheckoutRpcGetPage(NamedTuple):


class LicensedItemCheckoutRestGet(OutputSchema):
licensed_item_checkout_id: LicensedItemCheckoutID
licensed_item_checkout_id: LicenseCheckoutID
licensed_item_id: LicensedItemID
wallet_id: WalletID
user_id: UserID
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
from ..licenses import LicensedItemID
from ..products import ProductName
from ..resource_tracker import PricingUnitCostId
from ..resource_tracker_licensed_items_purchases import LicensedItemPurchaseID
from ..resource_tracker_license_purchases import LicensePurchaseID
from ..users import UserID
from ..wallets import WalletID
from ._base import OutputSchema


class LicensedItemPurchaseGet(OutputSchema):
licensed_item_purchase_id: LicensedItemPurchaseID
licensed_item_purchase_id: LicensePurchaseID
product_name: ProductName
licensed_item_id: LicensedItemID
wallet_id: WalletID
Expand Down
2 changes: 2 additions & 0 deletions packages/models-library/src/models_library/licenses.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
from .utils.enums import StrAutoEnum

LicensedItemID: TypeAlias = UUID
LicenseID: TypeAlias = UUID
LicensedResourceID: TypeAlias = UUID


class LicensedResourceType(StrAutoEnum):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import TypeAlias
from uuid import UUID

LicensedItemCheckoutID: TypeAlias = UUID
LicenseCheckoutID: TypeAlias = UUID
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@

from pydantic import BaseModel, ConfigDict

from .licenses import LicensedItemID
from .licenses import LicenseID
from .products import ProductName
from .resource_tracker import PricingPlanId, PricingUnitCostId, PricingUnitId
from .users import UserID
from .wallets import WalletID

LicensedItemPurchaseID: TypeAlias = UUID
LicensePurchaseID: TypeAlias = UUID


class LicensedItemsPurchasesCreate(BaseModel):
class LicensePurchasesCreate(BaseModel):
product_name: ProductName
licensed_item_id: LicensedItemID
license_id: LicenseID
wallet_id: WalletID
wallet_name: str
pricing_plan_id: PricingPlanId
Expand Down
16 changes: 8 additions & 8 deletions packages/models-library/tests/test_licenses.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from models_library.api_schemas_webserver.licensed_items import LicensedItemRestGet
from models_library.licenses import LicensedItem
from models_library.api_schemas_webserver.licensed_items import LicenseRestGet
from models_library.licenses import LicensedResource
from pydantic import ConfigDict


def test_licensed_item_from_domain_model():
for example in LicensedItem.model_json_schema()["examples"]:
item = LicensedItem.model_validate(example)
for example in LicensedResource.model_json_schema()["examples"]:
item = LicensedResource.model_validate(example)

got = LicensedItemRestGet.from_domain_model(item)
got = LicenseRestGet.from_domain_model(item)

assert item.display_name == got.display_name

Expand All @@ -31,8 +31,8 @@ def test_licensed_item_from_domain_model():


def test_strict_check_of_examples():
class TestLicensedItemRestGet(LicensedItemRestGet):
class TestLicenseRestGet(LicenseRestGet):
model_config = ConfigDict(extra="forbid")

for example in LicensedItemRestGet.model_json_schema()["examples"]:
TestLicensedItemRestGet.model_validate(example)
for example in LicenseRestGet.model_json_schema()["examples"]:
TestLicenseRestGet.model_validate(example)
Loading