from typing import List, Optional
from pydantic import BaseModel, Field


class ActivityInfo(BaseModel):
    """Information about an available activity."""

    name: str = Field(..., description="Activity name")
    route: str = Field(..., description="API route path")
    description: Optional[str] = Field(None, description="Activity description")


class ActivityListResponse(BaseModel):
    """List of available activities."""

    activities: List[ActivityInfo] = Field(..., description="Available activities")
    count: int = Field(..., description="Number of activities")


class HealthResponse(BaseModel):
    """Health check response."""

    status: str = Field(..., description="Service status")
