-- 賠償責任条項


-- トリガーの削除
DROP TRIGGER IF EXISTS liability_clauses_updated_at ON liability_clauses;


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


-- テーブル作成
CREATE TABLE liability_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),           -- 最終更新者    
    hull_clause_set VARCHAR(255) NOT NULL, -- 船体条項とのセット
    insured_amount INTEGER NOT NULL, -- 保険金額
    ship_classification VARCHAR(255) NOT NULL, -- 船舶区分
    length_classification VARCHAR(255), -- 全長区分
    horsepower_classification VARCHAR(255), -- 馬力区分
    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 liability_clauses_updated_at
BEFORE UPDATE ON liability_clauses
FOR EACH ROW
EXECUTE PROCEDURE update_timestamp();


-- 初期データ挿入
INSERT INTO liability_clauses (
    hull_clause_set, 
    insured_amount, 
    ship_classification, 
    length_classification, 
    horsepower_classification, 
    premium, 
    year
) VALUES
('船体条項とセットの場合', 50000000, 'ヨット', '8m以下', NULL, 6430, 2024),
('船体条項とセットの場合', 100000000, 'ヨット', '8m以下', NULL, 6700, 2024),
('船体条項とセットの場合', 300000000, 'ヨット', '8m以下', NULL, 7760, 2024),
('船体条項とセットの場合', 500000000, 'ヨット', '8m以下', NULL, 8110, 2024),
('船体条項をセットしない場合', 50000000, 'ヨット', '8m以下', NULL, 7140, 2024),
('船体条項をセットしない場合', 100000000, 'ヨット', '8m以下', NULL, 7450, 2024),
('船体条項をセットしない場合', 300000000, 'ヨット', '8m以下', NULL, 8630, 2024),
('船体条項をセットしない場合', 500000000, 'ヨット', '8m以下', NULL, 9010, 2024),
('船体条項とセットの場合', 50000000, 'ヨット', '8m超～13m以下', NULL, 11120, 2024),
('船体条項とセットの場合', 100000000, 'ヨット', '8m超～13m以下', NULL, 11590, 2024),
('船体条項とセットの場合', 300000000, 'ヨット', '8m超～13m以下', NULL, 13420, 2024),
('船体条項とセットの場合', 500000000, 'ヨット', '8m超～13m以下', NULL, 14010, 2024),
('船体条項をセットしない場合', 50000000, 'ヨット', '8m超～13m以下', NULL, 12350, 2024),
('船体条項をセットしない場合', 100000000, 'ヨット', '8m超～13m以下', NULL, 12880, 2024),
('船体条項をセットしない場合', 300000000, 'ヨット', '8m超～13m以下', NULL, 14910, 2024),
('船体条項をセットしない場合', 500000000, 'ヨット', '8m超～13m以下', NULL, 15570, 2024),
('船体条項とセットの場合', 50000000, 'ヨット', '13m超', NULL, 14570, 2024),
('船体条項とセットの場合', 100000000, 'ヨット', '13m超', NULL, 15190, 2024),
('船体条項とセットの場合', 300000000, 'ヨット', '13m超', NULL, 17590, 2024),
('船体条項とセットの場合', 500000000, 'ヨット', '13m超', NULL, 18370, 2024),
('船体条項をセットしない場合', 50000000, 'ヨット', '13m超', NULL, 16190, 2024),
('船体条項をセットしない場合', 100000000, 'ヨット', '13m超', NULL, 16880, 2024),
('船体条項をセットしない場合', 300000000, 'ヨット', '13m超', NULL, 19540, 2024),
('船体条項をセットしない場合', 500000000, 'ヨット', '13m超', NULL, 20410, 2024),
('船体条項とセットの場合', 50000000, 'モーターボート', NULL, '50馬力以下', 7950, 2024),
('船体条項とセットの場合', 100000000, 'モーターボート', NULL, '50馬力以下', 8290, 2024),
('船体条項とセットの場合', 300000000, 'モーターボート', NULL, '50馬力以下', 9600, 2024),
('船体条項とセットの場合', 500000000, 'モーターボート', NULL, '50馬力以下', 10030, 2024),
('船体条項をセットしない場合', 50000000, 'モーターボート', NULL, '50馬力以下', 8840, 2024),
('船体条項をセットしない場合', 100000000, 'モーターボート', NULL, '50馬力以下', 9210, 2024),
('船体条項をセットしない場合', 300000000, 'モーターボート', NULL, '50馬力以下', 10670, 2024),
('船体条項をセットしない場合', 500000000, 'モーターボート', NULL, '50馬力以下', 11140, 11140),
('船体条項とセットの場合', 50000000, 'モーターボート', NULL, '50馬力超～100馬力以下', 12590, 2024),
('船体条項とセットの場合', 100000000, 'モーターボート', NULL, '50馬力超～100馬力以下', 13120, 2024),
('船体条項とセットの場合', 300000000, 'モーターボート', NULL, '50馬力超～100馬力以下', 15200, 2024),
('船体条項とセットの場合', 500000000, 'モーターボート', NULL, '50馬力超～100馬力以下', 15870, 2024),
('船体条項をセットしない場合', 50000000, 'モーターボート', NULL, '50馬力超～100馬力以下', 13990, 2024),
('船体条項をセットしない場合', 100000000, 'モーターボート', NULL, '50馬力超～100馬力以下', 14580, 2024),
('船体条項をセットしない場合', 300000000, 'モーターボート', NULL, '50馬力超～100馬力以下', 16890, 2024),
('船体条項をセットしない場合', 500000000, 'モーターボート', NULL, '50馬力超～100馬力以下', 17630, 2024),
('船体条項とセットの場合', 50000000, 'モーターボート', NULL, '100馬力超', 21340, 2024),
('船体条項とセットの場合', 100000000, 'モーターボート', NULL, '100馬力超', 22240, 2024),
('船体条項とセットの場合', 300000000, 'モーターボート', NULL, '100馬力超', 25760, 2024),
('船体条項とセットの場合', 500000000, 'モーターボート', NULL, '100馬力超', 26900, 2024),
('船体条項をセットしない場合', 50000000, 'モーターボート', NULL, '100馬力超', 23710, 2024),
('船体条項をセットしない場合', 100000000, 'モーターボート', NULL, '100馬力超', 24720, 2024),
('船体条項をセットしない場合', 300000000, 'モーターボート', NULL, '100馬力超', 28620, 2024),
('船体条項をセットしない場合', 500000000, 'モーターボート', NULL, '100馬力超', 29890, 2024)
;