"""
Newsletter CTA component schemas.

Mirrors lightwave-ui/src/components/marketing/newsletter-cta/.
"""

from pydantic import BaseModel, ConfigDict, Field


class NewsletterCTAProps(BaseModel):
    """
    Newsletter subscription CTA props.

    Matches TypeScript:
        interface NewsletterCTAProps {
            heading?: string;
            subheading?: string;
            placeholder?: string;
            buttonText?: string;
            successMessage?: string;
            privacyText?: string;
            privacyHref?: string;
        }
    """

    headline: str | None = Field(None, description="Section headline")
    description: str | None = Field(None, description="Section description")
    placeholder: str | None = Field("Enter your email", description="Input placeholder text")
    button_text: str | None = Field("Subscribe", serialization_alias="buttonText", description="Submit button text")
    success_message: str | None = Field(
        None,
        serialization_alias="successMessage",
        description="Success message after submit",
    )
    privacy_text: str | None = Field(
        None,
        serialization_alias="privacyText",
        description="Privacy policy text",
    )
    privacy_href: str | None = Field(
        None,
        serialization_alias="privacyHref",
        description="Privacy policy link",
    )

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


__all__ = [
    "NewsletterCTAProps",
]
