-- 基本保険料の割増率


-- トリガーの削除
DROP TRIGGER IF EXISTS next_year_premium_increase_rate_updated_at ON next_year_premium_increase_rate;


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


-- テーブル作成
CREATE TABLE next_year_premium_increase_rate (
    id SERIAL PRIMARY KEY, -- 主キー
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 作成日時
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 更新日時
    last_updater VARCHAR(255),           -- 最終更新者    
    accident_count INTEGER NOT NULL, -- 事故件数（事故報告を受けた件数）
    next_year_basic_premium_increase_rate NUMERIC(3, 1), --次年度基本保険料の割増率
    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 next_year_premium_increase_rate_updated_at
BEFORE UPDATE ON next_year_premium_increase_rate
FOR EACH ROW
EXECUTE PROCEDURE update_timestamp();


-- 初期データ挿入
INSERT INTO next_year_premium_increase_rate (
    accident_count,
    next_year_basic_premium_increase_rate,
    year
) VALUES
(1, 1.3, 2024),
(2, 2.0, 2024),
(3, NULL, 2024)
;