{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug FastAPI App",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/src/server/fastapi_app.py",
            "console": "integratedTerminal",
            "justMyCode": true,
            "python": "/home/lukas/miniconda3/envs/AniWorld/bin/python",
            "env": {
                "PYTHONPATH": "${workspaceFolder}/src:${workspaceFolder}",
                "JWT_SECRET_KEY": "your-secret-key-here-debug",
                "PASSWORD_SALT": "default-salt-debug",
                "MASTER_PASSWORD": "admin123",
                "LOG_LEVEL": "DEBUG",
                "ANIME_DIRECTORY": "${workspaceFolder}/data/anime",
                "DATABASE_URL": "sqlite:///${workspaceFolder}/data/aniworld.db"
            },
            "cwd": "${workspaceFolder}",
            "args": [],
            "stopOnEntry": false,
            "autoReload": {
                "enable": true
            }
        },
        {
            "name": "Debug FastAPI with Uvicorn",
            "type": "debugpy",
            "request": "launch",
            "module": "uvicorn",
            "python": "/home/lukas/miniconda3/envs/AniWorld/bin/python",
            "args": [
                "src.server.fastapi_app:app",
                "--host",
                "127.0.0.1",
                "--port",
                "8000",
                "--reload",
                "--log-level",
                "debug"
            ],
            "console": "integratedTerminal",
            "justMyCode": true,
            "env": {
                "PYTHONPATH": "${workspaceFolder}/src:${workspaceFolder}",
                "JWT_SECRET_KEY": "your-secret-key-here-debug",
                "PASSWORD_SALT": "default-salt-debug",
                "MASTER_PASSWORD": "admin123",
                "LOG_LEVEL": "DEBUG",
                "ANIME_DIRECTORY": "${workspaceFolder}/data/anime",
                "DATABASE_URL": "sqlite:///${workspaceFolder}/data/aniworld.db"
            },
            "cwd": "${workspaceFolder}"
        },
        {
            "name": "Debug CLI App",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/src/cli/Main.py",
            "console": "integratedTerminal",
            "justMyCode": true,
            "python": "/home/lukas/miniconda3/envs/AniWorld/bin/python",
            "env": {
                "PYTHONPATH": "${workspaceFolder}/src:${workspaceFolder}",
                "LOG_LEVEL": "DEBUG",
                "ANIME_DIRECTORY": "${workspaceFolder}/data/anime"
            },
            "cwd": "${workspaceFolder}",
            "args": [
                // Add arguments as needed for CLI testing
                // Example: "${workspaceFolder}/test_data"
            ],
            "stopOnEntry": false
        },
        {
            "name": "Debug Tests",
            "type": "debugpy",
            "request": "launch",
            "module": "pytest",
            "python": "/home/lukas/miniconda3/envs/AniWorld/bin/python",
            "args": [
                "${workspaceFolder}/tests",
                "-v",
                "--tb=short",
                "--no-header",
                "--disable-warnings"
            ],
            "console": "integratedTerminal",
            "justMyCode": true,
            "env": {
                "PYTHONPATH": "${workspaceFolder}/src:${workspaceFolder}",
                "JWT_SECRET_KEY": "test-secret-key",
                "PASSWORD_SALT": "test-salt",
                "MASTER_PASSWORD": "admin123",
                "LOG_LEVEL": "DEBUG",
                "ANIME_DIRECTORY": "${workspaceFolder}/test_data/anime",
                "DATABASE_URL": "sqlite:///${workspaceFolder}/test_data/test_aniworld.db"
            },
            "cwd": "${workspaceFolder}"
        },
        {
            "name": "Debug Unit Tests Only",
            "type": "debugpy",
            "request": "launch",
            "module": "pytest",
            "python": "/home/lukas/miniconda3/envs/AniWorld/bin/python",
            "args": [
                "${workspaceFolder}/tests/unit",
                "-v",
                "--tb=short"
            ],
            "console": "integratedTerminal",
            "justMyCode": true,
            "env": {
                "PYTHONPATH": "${workspaceFolder}/src:${workspaceFolder}",
                "JWT_SECRET_KEY": "test-secret-key",
                "PASSWORD_SALT": "test-salt",
                "LOG_LEVEL": "DEBUG"
            },
            "cwd": "${workspaceFolder}"
        },
        {
            "name": "Debug Integration Tests Only",
            "type": "debugpy",
            "request": "launch",
            "module": "pytest",
            "python": "/home/lukas/miniconda3/envs/AniWorld/bin/python",
            "args": [
                "${workspaceFolder}/tests/integration",
                "-v",
                "--tb=short"
            ],
            "console": "integratedTerminal",
            "justMyCode": true,
            "env": {
                "PYTHONPATH": "${workspaceFolder}/src:${workspaceFolder}",
                "JWT_SECRET_KEY": "test-secret-key",
                "PASSWORD_SALT": "test-salt",
                "MASTER_PASSWORD": "admin123",
                "LOG_LEVEL": "DEBUG",
                "ANIME_DIRECTORY": "${workspaceFolder}/test_data/anime",
                "DATABASE_URL": "sqlite:///${workspaceFolder}/test_data/test_aniworld.db"
            },
            "cwd": "${workspaceFolder}"
        },
        {
            "name": "Debug FastAPI Production Mode",
            "type": "debugpy",
            "request": "launch",
            "module": "uvicorn",
            "python": "/home/lukas/miniconda3/envs/AniWorld/bin/python",
            "args": [
                "src.server.fastapi_app:app",
                "--host",
                "0.0.0.0",
                "--port",
                "8000",
                "--workers",
                "1"
            ],
            "console": "integratedTerminal",
            "justMyCode": true,
            "env": {
                "PYTHONPATH": "${workspaceFolder}/src:${workspaceFolder}",
                "JWT_SECRET_KEY": "production-secret-key-change-me",
                "PASSWORD_SALT": "production-salt-change-me",
                "MASTER_PASSWORD": "admin123",
                "LOG_LEVEL": "INFO",
                "ANIME_DIRECTORY": "${workspaceFolder}/data/anime",
                "DATABASE_URL": "sqlite:///${workspaceFolder}/data/aniworld.db"
            },
            "cwd": "${workspaceFolder}"
        }
    ]
}