-- 代理店（agencies）テーブルの作成


-- トリガーの削除
DROP TRIGGER IF EXISTS agencies_updated_at ON agencies;


-- テーブルの削除


-- agenciesテーブルを作成
CREATE TABLE agencies (
    id SERIAL PRIMARY KEY,                    -- 主キー
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 作成日時
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 更新日時
    last_updater VARCHAR(255),                 -- 最終更新者
    agency_name VARCHAR(255) NOT NULL,         -- 代理店名
    handling_agency_name VARCHAR(255),        -- 取扱代理店名
    postal_code VARCHAR(10),                  -- 郵便番号
    address TEXT,                             -- 住所
    phone_number VARCHAR(20),                 -- 電話番号
    fax_number VARCHAR(20),                   -- FAX
    remarks TEXT                              -- 受付時間
) WITH (oids = false);


--関数の作成（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 update_agencies_updated_at
BEFORE UPDATE ON public.agencies
FOR EACH ROW
EXECUTE FUNCTION update_timestamp();


-- 初期データ挿入
INSERT INTO public.agencies (
    agency_name,
    handling_agency_name,
    postal_code,
    address,
    phone_number,
    fax_number,
    remarks
) VALUES (
    '株式会社ユニマットプレシャス',                  -- 代理店名
    'ユニマットマリーナオーナー会',                  -- 取扱代理店名
    '239-0824',                                      -- 郵便番号
    '神奈川県横須賀市西浦賀４-１１-５',             -- 住所
    '046-844-2111',                                  -- 電話番号
    '046-844-9572',                                  -- FAX
    '午前9時から午後5時まで、火曜日定休日11月から2月のみ火曜水曜定休日' -- 受付時間
);
