{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/src/InternshipSystem.Api/InternshipSystem.Api.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": "$msCompile"
        },
        {
            "label": "watch",
            "command": "dotnet",
            "type": "process",
            "args": [
                "watch",
                "--project",
                "${workspaceFolder}/src/InternshipSystem.Api/InternshipSystem.Api.csproj",
                "run",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },
        {
            "label": "build: api",
            "type": "docker-build",
            "dockerBuild": {
                "dockerfile": "src/InternshipSystem.Api/Dockerfile",
                "tag": "internship.api",
                "context": "src"
            },
            "problemMatcher": [],
        },
        {
            "label": "down: api",
            "type": "shell",
            "command": "docker-compose",
            "args": [
                "-f",
                ".docker/docker-compose.yaml",
                "down",
                "--volumes",
                "--remove-orphans"
            ]
        },
        {
            "label": "up: api",
            "type": "shell",
            "command": "docker-compose",
            "args": [
                "-f",
                ".docker/docker-compose.yaml",
                "up",
            ],
            "dependsOn": [
                "build: api",
                "down: api"
            ],
            "problemMatcher": []
        },
        {
            "label": "restore",
            "type": "shell",
            "command": "dotnet",
            "args": [
                "restore"
            ],
            "problemMatcher": []
        },
        {
            "label": "publish",
            "command": "dotnet",
            "args": [
                "publish",
                "--output",
                "./obj/docker/publish",
                "--runtime",
                "linux-x64"
            ]
        }
    ]
}