from typing import Literal

from pydantic import BaseModel


class Module(BaseModel):
    key: str
    name: str
    description: str
    status: Literal["active", "inactive", "in-development"]
    kind: Literal["legacy", "platform"]
    route_path: str
    short_description: str
    stack_summary: str
    future_integration_state: str
    source_path: str | None
    preview_mode: Literal["link", "iframe", "none"]
    technical_notes: list[str]

