-- 船体条項


-- トリガーの削除
DROP TRIGGER IF EXISTS hull_clauses_updated_at ON hull_clauses;


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


-- テーブル作成
CREATE TABLE hull_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),           -- 最終更新者    
    deductible_amount INTEGER NOT NULL, -- 免責金額
    year INTEGER, -- 年度
    standard_premium_rate INTEGER NOT NULL -- 標準保険料率_船体保険金額1,000円につき
);


--関数の作成（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 hull_clauses_updated_at
BEFORE UPDATE ON hull_clauses
FOR EACH ROW
EXECUTE PROCEDURE update_timestamp();


-- 初期データ挿入
INSERT INTO hull_clauses 
(deductible_amount, year, standard_premium_rate)
VALUES
(5, 2024, 20),
(5, 2025, 20),
(5, 2026, 20);