"""Commands for the Example aggregate."""

from typing import Annotated

from pydantic import Field

from {{ package_name }}.domain import {{ domain_name }}


@{{ domain_name }}.command(part_of="Example")
class CreateExample:
    """Command to create a new Example."""

    name: Annotated[str, Field(max_length=100)]
    description: Annotated[str, Field(max_length=500)] | None = None


@{{ domain_name }}.command(part_of="Example")
class ActivateExample:
    """Command to activate an Example."""

    example_id: str


@{{ domain_name }}.command(part_of="Example")
class ArchiveExample:
    """Command to archive an Example."""

    example_id: str
