Skip to content

Commit 4826fa8

Browse files
renaming
1 parent 34d4577 commit 4826fa8

File tree

17 files changed

+347
-185
lines changed

17 files changed

+347
-185
lines changed
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,18 @@
55
from models_library.licensed_items import LicensedItemID
66
from models_library.products import ProductName
77
from models_library.resource_tracker import ServiceRunId
8-
from models_library.resource_tracker_licensed_items_usages import LicensedItemUsageID
8+
from models_library.resource_tracker_licensed_items_checkouts import (
9+
LicensedItemCheckoutID,
10+
)
911
from models_library.users import UserID
1012
from models_library.wallets import WalletID
1113
from pydantic import BaseModel, ConfigDict, PositiveInt
1214

1315
LicenseCheckoutID: TypeAlias = UUID
1416

1517

16-
class LicensedItemUsageGet(BaseModel):
17-
licensed_item_usage_id: LicensedItemUsageID
18+
class LicensedItemCheckoutGet(BaseModel):
19+
licensed_item_checkout_id: LicensedItemCheckoutID
1820
licensed_item_id: LicensedItemID
1921
wallet_id: WalletID
2022
user_id: UserID
@@ -28,7 +30,7 @@ class LicensedItemUsageGet(BaseModel):
2830
json_schema_extra={
2931
"examples": [
3032
{
31-
"licensed_item_usage_id": "beb16d18-d57d-44aa-a638-9727fa4a72ef",
33+
"licensed_item_checkout_id": "beb16d18-d57d-44aa-a638-9727fa4a72ef",
3234
"licensed_item_id": "303942ef-6d31-4ba8-afbe-dbb1fce2a953",
3335
"wallet_id": 1,
3436
"user_id": 1,
@@ -43,10 +45,10 @@ class LicensedItemUsageGet(BaseModel):
4345
)
4446

4547

46-
class LicensedItemsUsagesPage(NamedTuple):
47-
items: list[LicensedItemUsageGet]
48+
class LicensedItemsCheckoutsPage(NamedTuple):
49+
items: list[LicensedItemCheckoutGet]
4850
total: PositiveInt
4951

5052

5153
class LicenseCheckoutGet(BaseModel):
52-
checkout_id: LicenseCheckoutID # This is a licensed_item_usage_id generated in the `resource_tracker_licensed_items_usages` table
54+
checkout_id: LicenseCheckoutID # This is a licensed_item_checkout_id generated in the `resource_tracker_licensed_items_checkouts` table

packages/models-library/src/models_library/api_schemas_webserver/licensed_items_usages.py renamed to packages/models-library/src/models_library/api_schemas_webserver/licensed_items_checkouts.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@
33

44
from pydantic import BaseModel, PositiveInt
55

6-
from ..api_schemas_resource_usage_tracker.licensed_items_usages import LicenseCheckoutID
6+
from ..api_schemas_resource_usage_tracker.licensed_items_checkouts import (
7+
LicenseCheckoutID,
8+
)
79
from ..licensed_items import LicensedItemID
810
from ..products import ProductName
9-
from ..resource_tracker_licensed_items_usages import LicensedItemUsageID
11+
from ..resource_tracker_licensed_items_checkouts import LicensedItemCheckoutID
1012
from ..users import UserID
1113
from ..wallets import WalletID
1214
from ._base import OutputSchema
1315

1416

15-
class LicensedItemUsageGet(OutputSchema):
16-
licensed_item_usage_id: LicensedItemUsageID
17+
class LicensedItemCheckoutGet(OutputSchema):
18+
licensed_item_checkout_id: LicensedItemCheckoutID
1719
licensed_item_id: LicensedItemID
1820
wallet_id: WalletID
1921
user_id: UserID
@@ -24,7 +26,7 @@ class LicensedItemUsageGet(OutputSchema):
2426

2527

2628
class LicensedItemUsageGetPage(NamedTuple):
27-
items: list[LicensedItemUsageGet]
29+
items: list[LicensedItemCheckoutGet]
2830
total: PositiveInt
2931

3032

Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
from typing import TypeAlias
22
from uuid import UUID
33

4-
LicensedItemUsageID: TypeAlias = UUID
4+
LicensedItemCheckoutID: TypeAlias = UUID
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
"""rename usages to checkouts
2+
3+
Revision ID: aa6da21a0055
4+
Revises: 3720518f82a7
5+
Create Date: 2024-12-17 13:47:09.304574+00:00
6+
7+
"""
8+
import sqlalchemy as sa
9+
from alembic import op
10+
from sqlalchemy.dialects import postgresql
11+
12+
# revision identifiers, used by Alembic.
13+
revision = "aa6da21a0055"
14+
down_revision = "3720518f82a7"
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade():
20+
# ### commands auto generated by Alembic - please adjust! ###
21+
op.create_table(
22+
"resource_tracker_licensed_items_checkouts",
23+
sa.Column(
24+
"licensed_item_checkout_id",
25+
postgresql.UUID(as_uuid=True),
26+
server_default=sa.text("gen_random_uuid()"),
27+
nullable=False,
28+
),
29+
sa.Column("licensed_item_id", postgresql.UUID(as_uuid=True), nullable=True),
30+
sa.Column("wallet_id", sa.BigInteger(), nullable=False),
31+
sa.Column("user_id", sa.BigInteger(), nullable=False),
32+
sa.Column("user_email", sa.String(), nullable=True),
33+
sa.Column("product_name", sa.String(), nullable=False),
34+
sa.Column("service_run_id", sa.String(), nullable=True),
35+
sa.Column("started_at", sa.DateTime(timezone=True), nullable=False),
36+
sa.Column("stopped_at", sa.DateTime(timezone=True), nullable=True),
37+
sa.Column("num_of_seats", sa.SmallInteger(), nullable=False),
38+
sa.Column(
39+
"modified",
40+
sa.DateTime(timezone=True),
41+
server_default=sa.text("now()"),
42+
nullable=False,
43+
),
44+
sa.ForeignKeyConstraint(
45+
["product_name", "service_run_id"],
46+
[
47+
"resource_tracker_service_runs.product_name",
48+
"resource_tracker_service_runs.service_run_id",
49+
],
50+
name="resource_tracker_license_checkouts_service_run_id_fkey",
51+
onupdate="CASCADE",
52+
ondelete="RESTRICT",
53+
),
54+
sa.PrimaryKeyConstraint("licensed_item_checkout_id"),
55+
)
56+
op.create_index(
57+
op.f("ix_resource_tracker_licensed_items_checkouts_wallet_id"),
58+
"resource_tracker_licensed_items_checkouts",
59+
["wallet_id"],
60+
unique=False,
61+
)
62+
op.drop_index(
63+
"ix_resource_tracker_licensed_items_usage_wallet_id",
64+
table_name="resource_tracker_licensed_items_usage",
65+
)
66+
op.drop_table("resource_tracker_licensed_items_usage")
67+
# ### end Alembic commands ###
68+
69+
70+
def downgrade():
71+
# ### commands auto generated by Alembic - please adjust! ###
72+
op.create_table(
73+
"resource_tracker_licensed_items_usage",
74+
sa.Column(
75+
"licensed_item_usage_id",
76+
postgresql.UUID(),
77+
server_default=sa.text("gen_random_uuid()"),
78+
autoincrement=False,
79+
nullable=False,
80+
),
81+
sa.Column("wallet_id", sa.BIGINT(), autoincrement=False, nullable=False),
82+
sa.Column("user_id", sa.BIGINT(), autoincrement=False, nullable=False),
83+
sa.Column("user_email", sa.VARCHAR(), autoincrement=False, nullable=True),
84+
sa.Column("product_name", sa.VARCHAR(), autoincrement=False, nullable=False),
85+
sa.Column("service_run_id", sa.VARCHAR(), autoincrement=False, nullable=True),
86+
sa.Column(
87+
"started_at",
88+
postgresql.TIMESTAMP(timezone=True),
89+
autoincrement=False,
90+
nullable=False,
91+
),
92+
sa.Column(
93+
"stopped_at",
94+
postgresql.TIMESTAMP(timezone=True),
95+
autoincrement=False,
96+
nullable=True,
97+
),
98+
sa.Column("num_of_seats", sa.SMALLINT(), autoincrement=False, nullable=False),
99+
sa.Column(
100+
"modified",
101+
postgresql.TIMESTAMP(timezone=True),
102+
server_default=sa.text("now()"),
103+
autoincrement=False,
104+
nullable=False,
105+
),
106+
sa.Column(
107+
"licensed_item_id", postgresql.UUID(), autoincrement=False, nullable=False
108+
),
109+
sa.ForeignKeyConstraint(
110+
["product_name", "service_run_id"],
111+
[
112+
"resource_tracker_service_runs.product_name",
113+
"resource_tracker_service_runs.service_run_id",
114+
],
115+
name="resource_tracker_license_checkouts_service_run_id_fkey",
116+
onupdate="CASCADE",
117+
ondelete="RESTRICT",
118+
),
119+
sa.PrimaryKeyConstraint(
120+
"licensed_item_usage_id", name="resource_tracker_licensed_items_usage_pkey"
121+
),
122+
)
123+
op.create_index(
124+
"ix_resource_tracker_licensed_items_usage_wallet_id",
125+
"resource_tracker_licensed_items_usage",
126+
["wallet_id"],
127+
unique=False,
128+
)
129+
op.drop_index(
130+
op.f("ix_resource_tracker_licensed_items_checkouts_wallet_id"),
131+
table_name="resource_tracker_licensed_items_checkouts",
132+
)
133+
op.drop_table("resource_tracker_licensed_items_checkouts")
134+
# ### end Alembic commands ###
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
from ._common import RefActions, column_modified_datetime
88
from .base import metadata
99

10-
resource_tracker_licensed_items_usage = sa.Table(
11-
"resource_tracker_licensed_items_usage",
10+
resource_tracker_licensed_items_checkouts = sa.Table(
11+
"resource_tracker_licensed_items_checkouts",
1212
metadata,
1313
sa.Column(
14-
"licensed_item_usage_id",
14+
"licensed_item_checkout_id",
1515
UUID(as_uuid=True),
1616
nullable=False,
1717
primary_key=True,
Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,27 @@
44
from models_library.api_schemas_resource_usage_tracker import (
55
RESOURCE_USAGE_TRACKER_RPC_NAMESPACE,
66
)
7-
from models_library.api_schemas_resource_usage_tracker.licensed_items_usages import (
7+
from models_library.api_schemas_resource_usage_tracker.licensed_items_checkouts import (
88
LicenseCheckoutGet,
99
LicenseCheckoutID,
10-
LicensedItemsUsagesPage,
11-
LicensedItemUsageGet,
10+
LicensedItemCheckoutGet,
11+
LicensedItemsCheckoutsPage,
1212
)
1313
from models_library.basic_types import IDStr
1414
from models_library.licensed_items import LicensedItemID
1515
from models_library.products import ProductName
1616
from models_library.rabbitmq_basic_types import RPCMethodName
1717
from models_library.resource_tracker import ServiceRunId
18-
from models_library.resource_tracker_licensed_items_usages import LicensedItemUsageID
18+
from models_library.resource_tracker_licensed_items_checkouts import (
19+
LicensedItemCheckoutID,
20+
)
1921
from models_library.rest_ordering import OrderBy
2022
from models_library.users import UserID
2123
from models_library.wallets import WalletID
2224
from pydantic import NonNegativeInt, TypeAdapter
2325

2426
from ....logging_utils import log_decorator
25-
from ....rabbitmq import RabbitMQRPCClient
27+
from ... import RabbitMQRPCClient
2628

2729
_logger = logging.getLogger(__name__)
2830

@@ -33,33 +35,33 @@
3335

3436

3537
@log_decorator(_logger, level=logging.DEBUG)
36-
async def get_licensed_item_usage(
38+
async def get_licensed_item_checkout(
3739
rabbitmq_rpc_client: RabbitMQRPCClient,
3840
*,
3941
product_name: ProductName,
40-
licensed_item_usage_id: LicensedItemUsageID,
41-
) -> LicensedItemUsageGet:
42+
licensed_item_usage_id: LicensedItemCheckoutID,
43+
) -> LicensedItemCheckoutGet:
4244
result = await rabbitmq_rpc_client.request(
4345
RESOURCE_USAGE_TRACKER_RPC_NAMESPACE,
44-
_RPC_METHOD_NAME_ADAPTER.validate_python("get_licensed_item_usage"),
46+
_RPC_METHOD_NAME_ADAPTER.validate_python("get_licensed_item_checkout"),
4547
product_name=product_name,
4648
licensed_item_usage_id=licensed_item_usage_id,
4749
timeout_s=_DEFAULT_TIMEOUT_S,
4850
)
49-
assert isinstance(result, LicensedItemUsageGet) # nosec
51+
assert isinstance(result, LicensedItemCheckoutGet) # nosec
5052
return result
5153

5254

5355
@log_decorator(_logger, level=logging.DEBUG)
54-
async def get_licensed_items_usages_page(
56+
async def get_licensed_items_checkouts_page(
5557
rabbitmq_rpc_client: RabbitMQRPCClient,
5658
*,
5759
product_name: ProductName,
5860
filter_wallet_id: WalletID,
5961
offset: int = 0,
6062
limit: int = 20,
6163
order_by: OrderBy | None = None,
62-
) -> LicensedItemsUsagesPage:
64+
) -> LicensedItemsCheckoutsPage:
6365
"""
6466
Default order_by field is "started_at"
6567
"""
@@ -68,15 +70,15 @@ async def get_licensed_items_usages_page(
6870

6971
result = await rabbitmq_rpc_client.request(
7072
RESOURCE_USAGE_TRACKER_RPC_NAMESPACE,
71-
_RPC_METHOD_NAME_ADAPTER.validate_python("get_licensed_items_usages_page"),
73+
_RPC_METHOD_NAME_ADAPTER.validate_python("get_licensed_items_checkouts_page"),
7274
product_name=product_name,
7375
filter_wallet_id=filter_wallet_id,
7476
limit=limit,
7577
offset=offset,
7678
order_by=order_by,
7779
timeout_s=_DEFAULT_TIMEOUT_S,
7880
)
79-
assert isinstance(result, LicensedItemsUsagesPage) # nosec
81+
assert isinstance(result, LicensedItemsCheckoutsPage) # nosec
8082
return result
8183

8284

@@ -114,13 +116,13 @@ async def release_licensed_item(
114116
*,
115117
checkout_id: LicenseCheckoutID,
116118
product_name: ProductName,
117-
) -> LicensedItemUsageGet:
118-
result: LicensedItemUsageGet = await rabbitmq_rpc_client.request(
119+
) -> LicensedItemCheckoutGet:
120+
result: LicensedItemCheckoutGet = await rabbitmq_rpc_client.request(
119121
RESOURCE_USAGE_TRACKER_RPC_NAMESPACE,
120122
_RPC_METHOD_NAME_ADAPTER.validate_python("release_licensed_item"),
121123
checkout_id=checkout_id,
122124
product_name=product_name,
123125
timeout_s=_DEFAULT_TIMEOUT_S,
124126
)
125-
assert isinstance(result, LicensedItemUsageGet) # nosec
127+
assert isinstance(result, LicensedItemCheckoutGet) # nosec
126128
return result

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/licenses/licensed_items.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
LicensedItemGet,
66
LicensedItemGetPage,
77
)
8-
from models_library.api_schemas_webserver.licensed_items_usages import (
8+
from models_library.api_schemas_webserver.licensed_items_checkouts import (
99
LicenseCheckoutGet,
1010
LicenseCheckoutID,
11-
LicensedItemUsageGet,
11+
LicensedItemCheckoutGet,
1212
)
1313
from models_library.licensed_items import LicensedItemID
1414
from models_library.products import ProductName
@@ -99,13 +99,13 @@ async def release_licensed_item_for_wallet(
9999
product_name: ProductName,
100100
user_id: UserID,
101101
checkout_id: LicenseCheckoutID,
102-
) -> LicensedItemUsageGet:
102+
) -> LicensedItemCheckoutGet:
103103
result = await rabbitmq_rpc_client.request(
104104
WEBSERVER_RPC_NAMESPACE,
105105
TypeAdapter(RPCMethodName).validate_python("release_licensed_item_for_wallet"),
106106
product_name=product_name,
107107
user_id=user_id,
108108
checkout_id=checkout_id,
109109
)
110-
assert isinstance(result, LicensedItemUsageGet) # nosec
110+
assert isinstance(result, LicensedItemCheckoutGet) # nosec
111111
return result

0 commit comments

Comments
 (0)