add list folder policy api

This commit is contained in:
Hongbo Wu
2024-06-10 19:25:58 +08:00
parent 25ca4c7791
commit 7940c3f4ea
11 changed files with 578 additions and 4 deletions

View File

@ -4,15 +4,18 @@
BEGIN;
CREATE TYPE folder_action AS ENUM ('DELETE', 'ARCHIVE');
CREATE TABLE omnivore.folder_policy (
id UUID PRIMARY KEY DEFAULT uuid_generate_v1mc(),
user_id UUID NOT NULL REFERENCES omnivore.user(id) ON DELETE CASCADE,
folder TEXT NOT NULL, -- folder name in lowercase
action TEXT NOT NULL, -- delete or archive
action folder_action NOT NULL, -- delete or archive
after_days INT NOT NULL, -- number of days after which the action should be taken
minimum_items INT NOT NULL DEFAULT 0, -- minimum number of items to keep in the folder
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (user_id, folder) -- only one policy per folder per user
);
CREATE TRIGGER update_folder_policy_modtime BEFORE UPDATE ON omnivore.folder_policy FOR EACH ROW EXECUTE PROCEDURE update_updated_at_column();