"""
Empty state component schemas.

Mirrors lightwave-ui/src/components/application/empty-state/.
"""

from pydantic import BaseModel, ConfigDict, Field

from lightwave.schema.pydantic.ui.types import CTAProps


class EmptyStateProps(BaseModel):
    """
    Empty state component props.

    Matches TypeScript EmptyStateProps.
    """

    # Content
    title: str = Field(..., description="Empty state title")
    description: str | None = Field(None, description="Empty state description")

    # Icon/Image
    icon: str | None = Field(None, description="Icon name")
    image_url: str | None = Field(None, serialization_alias="imageUrl", description="Illustration URL")

    # Actions
    primary_cta: CTAProps | None = Field(None, serialization_alias="primaryCta", description="Primary action")
    secondary_cta: CTAProps | None = Field(None, serialization_alias="secondaryCta", description="Secondary action")

    model_config = ConfigDict(
        populate_by_name=True,
        extra="forbid",
    )


__all__ = [
    "EmptyStateProps",
]
