-- 捜索救助費⽤担保特約条項


-- トリガーの削除
DROP TRIGGER IF EXISTS search_rescue_coverage_clauses_updated_at ON search_rescue_coverage_clauses;


-- テーブルの削除
DROP TABLE IF EXISTS search_rescue_coverage_clauses CASCADE;


-- テーブル作成
CREATE TABLE search_rescue_coverage_clauses (
    id SERIAL PRIMARY KEY, -- 主キー
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 作成日時
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 更新日時
    last_updater VARCHAR(255),           -- 最終更新者    
    insured_amount INTEGER NOT NULL, -- 保険金額
    premium INTEGER NOT NULL, -- 保険料
    year INTEGER -- 年度
);


--関数の作成（update_timestamp）
CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$ 
BEGIN
    NEW.updated_at = CURRENT_TIMESTAMP;  -- 更新日時を現在時刻に設定
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;


-- トリガーの作成（updated_at の自動更新）
CREATE TRIGGER search_rescue_coverage_clauses_updated_at
BEFORE UPDATE ON search_rescue_coverage_clauses
FOR EACH ROW
EXECUTE PROCEDURE update_timestamp();


-- 初期データ挿入
INSERT INTO search_rescue_coverage_clauses (
    insured_amount, 
    premium,
    year
) VALUES
(5000000, 1430, 2024),
(10000000, 2580, 2024),
(20000000, 4010, 2024),
(30000000, 5150, 2024),
(50000000, 7150, 2024)
;