MODE_CUSTOMER = "customer"
MODE_ADMIN = "admin"

SKILL_SCOPE_PUBLIC = "public"
SKILL_SCOPE_ADMIN = "admin"
SKILL_SCOPE_BUSINESS = "business"

CAPABILITY_LEVEL_READ_ONLY = "read_only"
CAPABILITY_LEVEL_DRAFT_ONLY = "draft_only"
CAPABILITY_LEVEL_APPROVAL_REQUIRED = "approval_required"
CAPABILITY_LEVEL_MUTATION = "mutation"

DISPLAY_MODE_PAGE = "page"
DISPLAY_MODE_WIDGET = "widget"
DISPLAY_MODE_BOTH = "both"
DISPLAY_MODE_DISABLED = "disabled"

WIDGET_POSITION_BOTTOM_RIGHT = "bottom-right"
WIDGET_POSITION_BOTTOM_LEFT = "bottom-left"

ROLE_USER = "user"
ROLE_ASSISTANT = "assistant"
ROLE_SYSTEM = "system"

SESSION_OPEN = "open"
SESSION_CLOSED = "closed"
SESSION_ESCALATED = "escalated"

DEFAULT_OPENAI_MODEL = "gpt-4o-mini"
DEFAULT_OPENAI_TIMEOUT_SECONDS = 20
MAX_MESSAGE_LENGTH = 4000
VISITOR_COOKIE_MAX_AGE = 60 * 60 * 24 * 365

DEFAULT_PUBLIC_THROTTLE_LIMIT = 10
DEFAULT_PUBLIC_THROTTLE_WINDOW_SECONDS = 60
DEFAULT_ADMIN_THROTTLE_LIMIT = 30
DEFAULT_ADMIN_THROTTLE_WINDOW_SECONDS = 60

ENV_OPENAI_API_KEY_SETTING = "AI_ASSISTANT_OPENAI_API_KEY"
DEFAULT_BUSINESS_ASSISTANT_MODE_LABEL = "Business Assistant"
SKILL_SITE_INFO = "site_info"
SKILL_PAGE_SEARCH = "page_search"
SKILL_PRODUCT_SEARCH = "product_search"
SKILL_PRODUCT_DETAIL = "product_detail"
SKILL_CONTACT = "contact"
SKILL_BOOKING = "booking"
SKILL_QUOTE = "quote"
SKILL_ADMIN_CONTENT = "admin_content"
SKILL_SEO_ANALYSIS = "seo_analysis"
DEFAULT_ENABLED_PUBLIC_SKILLS = (SKILL_SITE_INFO,)
DEFAULT_ENABLED_ADMIN_SKILLS = (SKILL_SITE_INFO,)
DEFAULT_ENABLED_BUSINESS_SKILLS = ()
DEFAULT_MAX_SKILL_CONTEXT_ITEMS = 6

SAFETY_SYSTEM_PROMPT = (
    "You are a support assistant embedded in a website or admin interface. "
    "Never ask for or request passwords, API keys, private keys, tokens, payment details, "
    "or other secrets. Never claim to have performed actions, changed data, sent messages, "
    "or accessed systems unless the interface explicitly supports that action and it has actually "
    "happened. If you are unsure, say so clearly and recommend contacting a staff member or support team."
)
