{
    "name": "jpawlowski/hass.tibber_prices",
    "image": "mcr.microsoft.com/devcontainers/python:3.14",
    "postCreateCommand": "bash .devcontainer/setup-git.sh && scripts/setup/setup",
    "postStartCommand": "scripts/motd",
    "containerEnv": {
        "PYTHONASYNCIODEBUG": "1",
        "TIBBER_PRICES_DEV": "1"
    },
    "forwardPorts": [
        8123,
        3000,
        3001
    ],
    "portsAttributes": {
        "8123": {
            "label": "Home Assistant",
            "onAutoForward": "notify"
        },
        "3000": {
            "label": "Docusaurus User Docs",
            "onAutoForward": "notify"
        },
        "3001": {
            "label": "Docusaurus Developer Docs",
            "onAutoForward": "notify"
        }
    },
    "customizations": {
        "vscode": {
            "extensions": [
                "charliermarsh.ruff",
                "EditorConfig.EditorConfig",
                "esbenp.prettier-vscode",
                "github.copilot",
                "github.vscode-pull-request-github",
                "ms-python.python",
                "ms-python.vscode-pylance",
                "ms-vscode-remote.remote-containers",
                "redhat.vscode-yaml",
                "ryanluker.vscode-coverage-gutters"
            ],
            "settings": {
                "editor.tabSize": 4,
                "editor.formatOnSave": true,
                "editor.formatOnType": false,
                "extensions.ignoreRecommendations": false,
                "files.eol": "\n",
                "files.trimTrailingWhitespace": true,
                "python.analysis.typeCheckingMode": "basic",
                "python.analysis.autoImportCompletions": true,
                "python.analysis.diagnosticMode": "workspace",
                "python.analysis.diagnosticSeverityOverrides": {
                    "reportUnusedImport": "none",
                    "reportUnusedVariable": "none",
                    "reportUnusedCoroutine": "none",
                    "reportMissingTypeStubs": "none"
                },
                "python.analysis.include": [
                    "custom_components/tibber_prices"
                ],
                "python.analysis.exclude": [
                    "**/.venv/**",
                    "**/venv/**",
                    "**/__pycache__/**",
                    "**/.git/**",
                    "**/.github/**",
                    "**/docs/**",
                    "**/node_modules/**"
                ],
                "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
                "python.analysis.extraPaths": [
                    "${workspaceFolder}/.venv/lib/python3.14/site-packages"
                ],
                "python.terminal.activateEnvironment": true,
                "python.terminal.activateEnvInCurrentTerminal": true,
                "python.testing.pytestArgs": [
                    "--no-cov"
                ],
                "[python]": {
                    "editor.defaultFormatter": "charliermarsh.ruff",
                    "editor.formatOnSave": true,
                    "editor.codeActionsOnSave": {
                        "source.fixAll.ruff": "explicit",
                        "source.organizeImports.ruff": "explicit"
                    }
                },
                "[markdown]": {
                    "editor.wordWrap": "on"
                },
                "yaml.customTags": [
                    "!secret scalar",
                    "!include scalar",
                    "!include_dir_list scalar",
                    "!include_dir_merge_list scalar",
                    "!include_dir_named scalar",
                    "!include_dir_merge_named scalar",
                    "!input scalar"
                ],
                "markdown.validate.enabled": false,
                "markdown.validate.fileLinks.enabled": "ignore",
                "markdown.validate.fragmentLinks.enabled": "ignore",
                "json.schemas": [
                    {
                        "fileMatch": [
                            "homeassistant/components/*/manifest.json"
                        ],
                        "url": "${containerWorkspaceFolder}/schemas/json/manifest_schema.json"
                    },
                    {
                        "fileMatch": [
                            "homeassistant/components/*/translations/*.json"
                        ],
                        "url": "${containerWorkspaceFolder}/schemas/json/translation_schema.json"
                    }
                ],
                "git.useConfigOnly": false
            }
        }
    },
    "mounts": [
        "source=${localEnv:HOME}${localEnv:USERPROFILE}/.gitconfig,target=/home/vscode/.gitconfig.host,type=bind,consistency=cached"
    ],
    "remoteUser": "vscode",
    "features": {
        "ghcr.io/devcontainers/features/github-cli:1": {},
        "ghcr.io/flexwie/devcontainer-features/op:1": {
            "version": "latest"
        },
        "ghcr.io/devcontainers/features/node:1": {
            "version": "24"
        },
        "ghcr.io/devcontainers/features/rust:1": {
            "version": "latest",
            "profile": "minimal"
        },
        "ghcr.io/devcontainers-extra/features/apt-packages:1": {
            "packages": [
                "ffmpeg",
                "libturbojpeg0",
                "libpcap-dev"
            ]
        }
    }
}
