Skip to main content

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, REFUNDED
  • VendorStatus — PENDING, ACTIVE, SUSPENDED, REJECTED
  • UserRole — BUYER, VENDOR, ADMIN, SUPER_ADMIN, SUPPORT
  • ProductStatus — DRAFT, ACTIVE, ARCHIVED
  • DeliveryStatus — PENDING, ASSIGNED, PICKED_UP, IN_TRANSIT, DELIVERED, FAILED, RETURNED
  • NotificationChannel — 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

netserve_schema_sdk-1.0.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netserve_schema_sdk-1.0.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

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

Hashes for netserve_schema_sdk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 53bf2ecb2750a0529170d0c82ffd4643cc92eb57447a557a243a585446aa98e6
MD5 47ea774d74e6ec0be62ecd8a7304ef98
BLAKE2b-256 5b912902c5b9f3f9490c7413f139133e798cfeaef1ad22b01176f113501d3ed0

See more details on using hashes here.

File details

Details for the file netserve_schema_sdk-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for netserve_schema_sdk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d32bd0b96fcf1308c31b74d3bb5bd4b42e900ca0b81c941aa5091a7843c4fb6d
MD5 e905d9c931c311ddb6da5e54103bc68e
BLAKE2b-256 e4d2d067d3a591dc5c71fc11cfa643c54c4250bd3f0e473c9d572b3d3ad4cd7a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page