"""Constants specific to Jira operations."""

# Based on https://support.atlassian.com/jira-software-cloud/docs/what-is-advanced-search-in-jira-cloud/
# "Reserved words" section — verified 2026-02-23
# Using lowercase for case-insensitive matching
RESERVED_JQL_WORDS = {
    "a",
    "an",
    "abort",
    "access",
    "add",
    "after",
    "alias",
    "all",
    "alter",
    "and",
    "any",
    "are",
    "as",
    "asc",
    "at",
    "audit",
    "avg",
    "be",
    "before",
    "begin",
    "between",
    "boolean",
    "break",
    "but",
    "by",
    "byte",
    "catch",
    "cf",
    "char",
    "character",
    "check",
    "checkpoint",
    "collate",
    "collation",
    "column",
    "commit",
    "connect",
    "continue",
    "count",
    "create",
    "current",
    "date",
    "decimal",
    "declare",
    "decrement",
    "default",
    "defaults",
    "define",
    "delete",
    "delimiter",
    "desc",
    "difference",
    "distinct",
    "divide",
    "do",
    "double",
    "drop",
    "else",
    "empty",
    "encoding",
    "end",
    "equals",
    "escape",
    "exclusive",
    "exec",
    "execute",
    "exists",
    "explain",
    "false",
    "fetch",
    "field",
    "file",
    "first",
    "float",
    "for",
    "from",
    "function",
    "go",
    "goto",
    "grant",
    "greater",
    "group",
    "having",
    "identified",
    "if",
    "immediate",
    "in",
    "increment",
    "index",
    "initial",
    "inner",
    "inout",
    "input",
    "insert",
    "int",
    "integer",
    "intersect",
    "intersection",
    "into",
    "is",
    "isempty",
    "isnull",
    "it",
    "join",
    "last",
    "left",
    "less",
    "like",
    "limit",
    "lock",
    "long",
    "max",
    "min",
    "minus",
    "mode",
    "modify",
    "modulo",
    "more",
    "multiply",
    "next",
    "no",
    "noaudit",
    "not",
    "notin",
    "nowait",
    "null",
    "number",
    "object",
    "of",
    "on",
    "option",
    "or",
    "order",
    "outer",
    "output",
    "power",
    "previous",
    "prior",
    "privileges",
    "public",
    "raise",
    "raw",
    "remainder",
    "rename",
    "resource",
    "return",
    "returns",
    "revoke",
    "right",
    "row",
    "rowid",
    "rownum",
    "rows",
    "select",
    "session",
    "set",
    "share",
    "size",
    "sqrt",
    "start",
    "strict",
    "string",
    "subtract",
    "such",
    "sum",
    "synonym",
    "table",
    "that",
    "the",
    "their",
    "then",
    "there",
    "these",
    "they",
    "this",
    "to",
    "trans",
    "transaction",
    "trigger",
    "true",
    "uid",
    "union",
    "unique",
    "update",
    "user",
    "validate",
    "values",
    "view",
    "was",
    "when",
    "whenever",
    "where",
    "while",
    "will",
    "with",
}

# Set of default fields returned by Jira read operations when no specific fields are requested.
DEFAULT_READ_JIRA_FIELDS: set[str] = {
    "summary",
    "description",
    "status",
    "assignee",
    "reporter",
    "labels",
    "priority",
    "created",
    "updated",
    "issuetype",
}
