-- +goose Up -- +goose StatementBegin CREATE TABLE devices ( slug VARCHAR(255) PRIMARY KEY COLLATE NOCASE, disabled TINYINT NOT NULL DEFAULT 0, name TEXT NOT NULL COLLATE NOCASE, resolution_x DOUBLE NOT NULL, resolution_y DOUBLE NOT NULL, aspect_ratio_tolerance DOUBLE NOT NULL DEFAULT 0.2, min_x INTEGER NOT NULL DEFAULT 0, min_y INTEGER NOT NULL DEFAULT 0, max_x INTEGER NOT NULL DEFAULT 0, max_y INTEGER NOT NULL DEFAULT 0, nsfw TINYINT NOT NULL DEFAULT 0, single_folder_mode TINYINT NOT NULL DEFAULT 0, created_at BIGINT NOT NULL DEFAULT (strftime('%s', 'now')), updated_at BIGINT NOT NULL DEFAULT (strftime('%s', 'now')) ); CREATE UNIQUE INDEX idx_devices_unique_slug ON devices(slug); CREATE TRIGGER devices_update_timestamp AFTER UPDATE ON devices FOR EACH ROW BEGIN UPDATE devices SET updated_at = strftime('%s', 'now') WHERE slug = old.slug; END; CREATE TRIGGER devices_insert_create_total_image_metrics AFTER INSERT on devices FOR EACH ROW BEGIN INSERT INTO metrics (name, value) VALUES (CONCAT('devices.', NEW.slug, '.total_images'), 0); END; CREATE TRIGGER devices_delete_total_image_metrics AFTER DELETE on devices FOR EACH ROW BEGIN DELETE FROM metrics WHERE name = CONCAT('devices.', OLD.slug, '.total_images'); END; -- +goose StatementEnd -- +goose Down -- +goose StatementBegin DROP TABLE devices; -- +goose StatementEnd