"""
Canvas LMS configuration for LTI 1.3 Tool
Import this file in main.py to override platform-specific constants.
"""

import os

# ------------------------------------------------------------------
# Tool (your external LTI tool) configuration
# ------------------------------------------------------------------
# Values come from your Canvas Developer Key (in Admin > Developer Keys)
TOOL_CLIENT_ID = os.getenv("CLIENT_ID", "YOUR_CANVAS_CLIENT_ID")
TOOL_REDIRECT_URI = os.getenv("TOOL_REDIRECT_URI", "http://localhost:8000/oidc/callback")

# Public base URL of your tool (must be HTTPS and resolvable by Canvas)
TOOL_BASE_URL = os.getenv("TOOL_BASE_URL", "http://localhost:8000")
TOOL_JWKS_PATH = "/jwks.json"
TOOL_JWKS_URL = TOOL_BASE_URL + TOOL_JWKS_PATH

# ------------------------------------------------------------------
# Canvas LMS (Platform) configuration
# ------------------------------------------------------------------
# Canvas global issuer (constant across all accounts)
PLATFORM_ISS = "https://canvas.instructure.com"

# OIDC / LTI endpoints for Canvas
PLATFORM_OIDC_AUTH = "https://canvas.instructure.com/api/lti/authorize_redirect"
PLATFORM_TOKEN_URL = "https://canvas.instructure.com/login/oauth2/token"
PLATFORM_JWKS_URL = "https://canvas.instructure.com/api/lti/security/jwks"

# ------------------------------------------------------------------
# Deployment ID
# ------------------------------------------------------------------
# Each LTI tool must be deployed at the account/course level.
# Canvas shows you a Deployment ID when you complete the installation.
DEPLOYMENT_ID = os.getenv("CANVAS_DEPLOYMENT_ID", "YOUR_CANVAS_DEPLOYMENT_ID")

# ------------------------------------------------------------------
# Scopes (Canvas requires explicit scopes for services)
# ------------------------------------------------------------------
# NRPS = Names & Roles
# AGS = Assignments & Grades
SCOPES = {
    "nrps": "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly",
    "ags_lineitem": "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem",
    "ags_score": "https://purl.imsglobal.org/spec/lti-ags/scope/score",
}
