"""
Careers island prop schemas.

Auto-generated from packages/lightwave-ui/src/islands/careers-registry.tsx
Generated: 2026-02-02

Islands are React components hydrated on the client. These schemas define
the props that Django passes to the React island via JSON serialization.
"""

from pydantic import ConfigDict

from lightwave.schema.pydantic.core.base import LightwaveBaseSchema


class CareersPositionsItem(LightwaveBaseSchema):
    """Nested item type for positions."""

    title: str = None
    department: str | None = None
    location: str | None = None
    type: str | None = None
    href: str | None = None

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


class BaseCareersProps(LightwaveBaseSchema):
    """
    Base props that all careers variants should support.

    Source: packages/lightwave-ui/src/islands/careers-registry.tsx
    """

    headline: str | None = None
    description: str | None = None
    positions: list[CareersPositionsItem] | None = None

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


CAREERS_VARIANTS = ["card-01"]

__all__ = ["BaseCareersProps", "CAREERS_VARIANTS"]
