NetServe Schema Registry — Shared Python enums and Pydantic v2 event models
Project description
netserve-schema-sdk
NetServe Schema Registry — Shared Python enums and Pydantic v2 event models for all NetServe domain events across 20 modules (134 events).
Installation
pip install netserve-schema-sdk==1.0.0
Always pin to an exact version. Do not use >= or ~= — this is a contract package.
Requirements
- Python ≥ 3.10
- pydantic ≥ 2.0.0
Usage
from netserve_schema.generated.models import OrderCreatedEvent, BuyerBehaviorRecordedEvent
from netserve_schema.shared_enums import OrderStatus, VendorStatus
# Validate an inbound event
raw = {
"eventType": "order.created.v1",
"correlationId": "req-abc-123",
"timestamp": "2026-05-25T10:00:00Z",
"payload": {
"orderId": "order-xyz",
"userId": "user-abc",
"storeIds": ["store-1"],
"totalKobo": 25000,
"itemCount": 2,
"isQrOrder": False,
"checkoutSessionId": "chk-def",
}
}
event = OrderCreatedEvent(**raw)
print(event.payload.order_id) # "order-xyz"
print(event.payload.total_kobo) # 25000
# Use enums
status = OrderStatus.PENDING
assert status == "PENDING" # str enum
Top-level import (convenience)
# Import everything from the top-level package
from netserve_schema import OrderCreatedEvent, OrderStatus
Available Exports
netserve_schema.shared_enums
All Prisma enums as Python str, Enum subclasses (JSON-safe serialization):
OrderStatus— PENDING, CONFIRMED, PREPARING, READY_FOR_PICKUP, OUT_FOR_DELIVERY, COMPLETED, CANCELLED, FAILED, REFUNDEDVendorStatus— PENDING, ACTIVE, SUSPENDED, REJECTEDUserRole— BUYER, VENDOR, ADMIN, SUPER_ADMIN, SUPPORTProductStatus— DRAFT, ACTIVE, ARCHIVEDDeliveryStatus— PENDING, ASSIGNED, PICKED_UP, IN_TRANSIT, DELIVERED, FAILED, RETURNEDNotificationChannel— PUSH, IN_APP, EMAIL, SMS- 20+ additional enums — see
netserve_schema/shared_enums/__init__.py
netserve_schema.generated.models
Pydantic v2 models with Field(alias="camelCase") + populate_by_name: True:
| Class | Event type |
|---|---|
OrderCreatedEvent |
order.created.v1 |
OrderCompletedEvent |
order.completed.v1 |
OrderCancelledEvent |
order.cancelled.v1 |
BuyerBehaviorRecordedEvent |
buyer.behavior.recorded.v1 |
BuyerAffinityUpdatedEvent |
buyer.affinity.updated.v1 |
BuyerStreakUpdatedEvent |
buyer.streak.updated.v1 |
InventoryStockUpdatedEvent |
inventory.stock.updated.v1 |
InventoryOutOfStockEvent |
inventory.product.out_of_stock.v1 |
IntelligenceIntentSignalEvent |
intelligence.intent.signal.generated.v1 |
IntelligenceAffinityUpdatedEvent |
intelligence.affinity.updated.v1 |
AuthLoginSucceededEvent |
auth.login.succeeded.v1 |
LogisticsDispatchCreatedEvent |
logistics.dispatch.created.v1 |
LogisticsDeliveryCompletedEvent |
logistics.delivery.completed.v1 |
CommunityViralSignalEvent |
community.viral_signal.generated.v1 |
Union Types
from netserve_schema.generated.models import AnyOrderEvent, AnyInventoryEvent, AnyIntelligenceEvent
Field Naming Convention
All models use camelCase JSON aliases with snake_case Python attributes:
event = OrderCreatedEvent(**json_data)
event.payload.order_id # snake_case Python access
event.payload.model_dump(by_alias=True)["orderId"] # camelCase JSON output
Version Policy
This package follows the NetServe Schema Registry semver rules:
- MAJOR — breaking change (field removed, type changed, event removed)
- MINOR — additive change (new event, new optional field)
- PATCH — editorial (description updates, constraint relaxation)
Source
Generated from: contracts/events/ in netserve-schema-registry
Do not edit generated files directly — raise a PR in the schema registry instead.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file netserve_schema_sdk-1.0.0.tar.gz.
File metadata
- Download URL: netserve_schema_sdk-1.0.0.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53bf2ecb2750a0529170d0c82ffd4643cc92eb57447a557a243a585446aa98e6
|
|
| MD5 |
47ea774d74e6ec0be62ecd8a7304ef98
|
|
| BLAKE2b-256 |
5b912902c5b9f3f9490c7413f139133e798cfeaef1ad22b01176f113501d3ed0
|
File details
Details for the file netserve_schema_sdk-1.0.0-py3-none-any.whl.
File metadata
- Download URL: netserve_schema_sdk-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d32bd0b96fcf1308c31b74d3bb5bd4b42e900ca0b81c941aa5091a7843c4fb6d
|
|
| MD5 |
e905d9c931c311ddb6da5e54103bc68e
|
|
| BLAKE2b-256 |
e4d2d067d3a591dc5c71fc11cfa643c54c4250bd3f0e473c9d572b3d3ad4cd7a
|