"""``CommandOptions`` TypedDict for ``audit_discord_roles`` argparse output."""

from __future__ import annotations

from typing import TypedDict


class CommandOptions(TypedDict, total=False):
    """
    Parsed argparse output for ``audit_discord_roles``.

    All keys are present after argparse runs (Django passes
    defaults even when an argument was not supplied), but the
    TypedDict is ``total=False`` because the helper paths read
    only a subset.
    """

    action: str | None
    limit: int | None
    user_id: int | None
    no_notify: bool
    yes: bool
    json: bool
    resume_run_id: int | None
    abandon_run_id: int | None
    explain_member_id: int | None
    diff_run_id: int | None
    from_fixture: str | None
    policy_preview: str | None
