#!/bin/bash # Model generation script for MPR # Generates Django, Pydantic, TypeScript, and Protobuf from schema/models set -e cd "$(dirname "$0")/.." echo "Generating models from schema/models..." # Django ORM models: domain models + enums python -m modelgen from-schema \ --schema schema/models \ --output mpr/media_assets/models.py \ --targets django \ --include dataclasses,enums # Pydantic schemas for FastAPI: domain models + enums python -m modelgen from-schema \ --schema schema/models \ --output api/schemas/models.py \ --targets pydantic \ --include dataclasses,enums # TypeScript types for Timeline UI: domain models + enums + API types python -m modelgen from-schema \ --schema schema/models \ --output ui/timeline/src/types.ts \ --targets typescript \ --include dataclasses,enums,api # Graphene types for GraphQL: domain models + enums + API types python -m modelgen from-schema \ --schema schema/models \ --output api/schemas/graphql.py \ --targets graphene \ --include dataclasses,enums,api # Protobuf for gRPC: gRPC messages + service python -m modelgen from-schema \ --schema schema/models \ --output rpc/protos/worker.proto \ --targets proto \ --include grpc # Generate gRPC stubs from proto echo "Generating gRPC stubs..." python -m grpc_tools.protoc \ -I rpc/protos \ --python_out=rpc \ --grpc_python_out=rpc \ rpc/protos/worker.proto # Fix relative import in generated grpc stub sed -i 's/^import worker_pb2/from . import worker_pb2/' rpc/worker_pb2_grpc.py echo "Done!"