PHP Classes

File: SQL File

Recommend this page to a friend!
  Packages of Matthew Asham   Binkterm PHP   database/migrations/v1.10.5_user_activity_log.sql   Download  
File: database/migrations/v1.10.5_user_activity_log.sql
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Binkterm PHP
Bulletin board system based on the Web
Author: By
Last change:
Date: 1 month ago
Size: 2,235 bytes
 

Contents

Class file image Download
-- Migration: v1.10.5 - User Activity Log -- Creates lookup tables for activity categories and types, and the main activity log table. -- Category lookup table CREATE TABLE IF NOT EXISTS activity_categories ( id SMALLINT PRIMARY KEY, name VARCHAR(20) NOT NULL UNIQUE ); INSERT INTO activity_categories (id, name) VALUES (1, 'message'), (2, 'file'), (3, 'door'), (4, 'nodelist'), (5, 'chat'), (6, 'auth') ON CONFLICT (id) DO NOTHING; -- Activity type lookup table (references category) CREATE TABLE IF NOT EXISTS activity_types ( id SMALLINT PRIMARY KEY, category_id SMALLINT NOT NULL REFERENCES activity_categories(id), name VARCHAR(50) NOT NULL UNIQUE, label VARCHAR(100) NOT NULL ); INSERT INTO activity_types (id, category_id, name, label) VALUES (1, 1, 'echomail_area_view', 'Echoarea Viewed'), (2, 1, 'echomail_send', 'Echomail Sent'), (3, 1, 'netmail_read', 'Netmail Read'), (4, 1, 'netmail_send', 'Netmail Sent'), (5, 2, 'filearea_view', 'File Area Viewed'), (6, 2, 'file_download', 'File Downloaded'), (7, 2, 'file_upload', 'File Uploaded'), (8, 3, 'webdoor_play', 'WebDoor Played'), (9, 3, 'dosdoor_play', 'DOS Door Played'), (10, 4, 'nodelist_view', 'Nodelist Viewed'), (11, 4, 'node_view', 'Node Viewed'), (12, 5, 'chat_send', 'Chat Message Sent'), (13, 6, 'login', 'Login') ON CONFLICT (id) DO NOTHING; -- Main activity log table CREATE TABLE IF NOT EXISTS user_activity_log ( id BIGSERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(id) ON DELETE SET NULL, activity_type_id SMALLINT NOT NULL REFERENCES activity_types(id), object_id INTEGER, object_name VARCHAR(255), meta JSONB, created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_activity_user_id ON user_activity_log(user_id); CREATE INDEX IF NOT EXISTS idx_activity_type_id ON user_activity_log(activity_type_id); CREATE INDEX IF NOT EXISTS idx_activity_created_at ON user_activity_log(created_at); CREATE INDEX IF NOT EXISTS idx_activity_object_name ON user_activity_log(object_name) WHERE object_name IS NOT NULL;