import uuid
from datetime import datetime

from pydantic import BaseModel


class PromptCreate(BaseModel):
    name: str
    domain: str | None = None
    description: str | None = None
    content: str


class PromptUpdate(BaseModel):
    name: str | None = None
    domain: str | None = None
    description: str | None = None
    content: str | None = None
    is_active: bool | None = None


class PromptOut(BaseModel):
    id: uuid.UUID
    org_id: uuid.UUID
    name: str
    domain: str | None
    description: str | None
    content: str
    current_version: int
    is_active: bool
    created_at: datetime
    updated_at: datetime

    class Config:
        from_attributes = True


class PromptVersionOut(BaseModel):
    id: uuid.UUID
    version: int
    content: str
    created_at: datetime

    class Config:
        from_attributes = True
