"""
Shared asset component schemas.

Mirrors lightwave-ui/src/components/shared-assets/.

These are reusable visual assets used across pages:
- background_patterns: Background pattern components
- illustrations: Illustration components
- credit_card: Credit card display components

Usage:
    from lightwave.schema.pydantic.ui.components.shared_assets import (
        IllustrationProps,
    )
"""

from pydantic import BaseModel, ConfigDict, Field


class IllustrationProps(BaseModel):
    """
    Illustration component props.
    """

    name: str = Field(..., description="Illustration name/identifier")
    alt: str | None = Field(None, description="Alt text")
    width: int | None = Field(None, description="Width in pixels")
    height: int | None = Field(None, description="Height in pixels")

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


class BackgroundPatternProps(BaseModel):
    """
    Background pattern component props.
    """

    pattern: str = Field(..., description="Pattern name")
    opacity: float = Field(1.0, description="Pattern opacity (0-1)")

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


__all__ = [
    "IllustrationProps",
    "BackgroundPatternProps",
]
