"""
    Copyright 2020 Inmanta

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

    Contact: code@inmanta.com
"""
from asyncpg import Connection

DISABLED = False


async def update(connection: Connection) -> None:
    await connection.execute(
        """
-- Compile queue might be collapsed if it contains similar compile requests.
-- In that case, substitute_compile_id will reference the actually compiled request.
ALTER TABLE public.compile ADD COLUMN substitute_compile_id uuid REFERENCES public.compile (id);


-- Compile data json exported by compiling with the --export-compile-data parameter.
ALTER TABLE public.compile ADD COLUMN compile_data jsonb;


-- Add halted column to environment table to support halting all orchestrator operations.
ALTER TABLE public.environment ADD COLUMN halted boolean NOT NULL DEFAULT false;
-- Add unpause_on_resume column to agent table to persist paused state when halting the environment.
ALTER TABLE public.agent ADD COLUMN unpause_on_resume boolean;
        """
    )
