--
-- Copyright (c) 2025 SUSE
--
-- This software is licensed to you under the GNU General Public License,
-- version 2 (GPLv2). There is NO WARRANTY for this software, express or
-- implied, including the implied warranties of MERCHANTABILITY or FITNESS
-- FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
-- along with this software; if not, see
-- http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
--

CREATE TABLE suseScapPolicy
(
    id                   BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    policy_name          VARCHAR(255) NOT NULL,
    description          TEXT,
    scap_content_id      BIGINT NOT NULL
                         CONSTRAINT suse_scap_policy_content_fk
                         REFERENCES suseScapContent (id)
                         ON DELETE RESTRICT,
    xccdf_profile_id     TEXT NOT NULL,
    tailoring_file       BIGINT
                         CONSTRAINT suse_scap_policy_tailoring_fk
                         REFERENCES suseScapTailoringFile (id)
                         ON DELETE RESTRICT,

    tailoring_profile_id TEXT,
    oval_files           TEXT,
    advanced_args        TEXT,
    fetch_remote_resources BOOLEAN NOT NULL DEFAULT FALSE,
    org_id               BIGINT NOT NULL
                         CONSTRAINT suse_scap_policy_org_fk
                         REFERENCES web_customer (id)
                         ON DELETE CASCADE,                         
    created              TIMESTAMPTZ DEFAULT current_timestamp NOT NULL,
    modified             TIMESTAMPTZ DEFAULT current_timestamp NOT NULL
);

CREATE UNIQUE INDEX suseScapPolicy_org_id_name_uq
ON suseScapPolicy (org_id, policy_name);
