36 lines
1.1 KiB
MySQL
36 lines
1.1 KiB
MySQL
|
CREATE TYPE member_bank_deposit_state AS ENUM ('application', 'complete');
|
||
|
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS member_bank_deposits (
|
||
|
id UUID DEFAULT uuid_generate_v4(),
|
||
|
member_id UUID NOT NULL,
|
||
|
name TEXT NOT NULL,
|
||
|
amount INTEGER NOT NULL,
|
||
|
memo TEXT,
|
||
|
state MEMBER_BANK_DEPOSIT_STATE DEFAULT 'application',
|
||
|
state_changed_at BIGINT,
|
||
|
created_at BIGINT NOT NULL DEFAULT (extract(epoch from now()) * 1000),
|
||
|
updated_at BIGINT NOT NULL DEFAULT (extract(epoch from now()) * 1000),
|
||
|
PRIMARY KEY (id),
|
||
|
CONSTRAINT fk_member_bank_deposits_member_id
|
||
|
FOREIGN KEY(member_id)
|
||
|
REFERENCES members(id)
|
||
|
|
||
|
);
|
||
|
|
||
|
CREATE INDEX idx_member_bank_deposits_member_id ON member_bank_deposits (member_id);
|
||
|
|
||
|
-- trigger (updated_at)
|
||
|
CREATE TRIGGER tg_member_bank_deposits_updated_at
|
||
|
BEFORE UPDATE
|
||
|
ON member_bank_deposits
|
||
|
FOR EACH ROW
|
||
|
EXECUTE PROCEDURE update_updated_at_column();
|
||
|
|
||
|
-- trigger (state_changed_at)
|
||
|
CREATE TRIGGER tg_member_bank_deposits_state_changed_at
|
||
|
BEFORE UPDATE
|
||
|
ON member_bank_deposits
|
||
|
FOR EACH ROW
|
||
|
EXECUTE PROCEDURE update_state_changed_at_column();
|