50 lines
3.6 KiB
MySQL
50 lines
3.6 KiB
MySQL
|
|
-- 900_triggers_and_functions.sql
|
||
|
|
-- Automated timestamps and consistency triggers
|
||
|
|
|
||
|
|
-- === FUNCTION: update_updated_at_column ===
|
||
|
|
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
||
|
|
RETURNS TRIGGER AS $$
|
||
|
|
BEGIN
|
||
|
|
NEW.updated_at = CURRENT_TIMESTAMP;
|
||
|
|
RETURN NEW;
|
||
|
|
END;
|
||
|
|
$$ language 'plpgsql';
|
||
|
|
|
||
|
|
-- === TRIGGERS ===
|
||
|
|
|
||
|
|
-- Auth & Users
|
||
|
|
CREATE TRIGGER update_users_updated_at BEFORE UPDATE ON public.users FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_federated_identities_updated_at BEFORE UPDATE ON public.federated_identities FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_user_sessions_updated_at BEFORE UPDATE ON public.user_sessions FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
|
||
|
|
-- RBAC & Profiles
|
||
|
|
CREATE TRIGGER update_roles_updated_at BEFORE UPDATE ON public.roles FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_user_profiles_updated_at BEFORE UPDATE ON public.user_profiles FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_user_settings_updated_at BEFORE UPDATE ON public.user_settings FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_admin_settings_updated_at BEFORE UPDATE ON public.admin_settings FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
|
||
|
|
-- Files
|
||
|
|
CREATE TRIGGER update_files_updated_at BEFORE UPDATE ON public.files FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_file_uploads_updated_at BEFORE UPDATE ON public.file_uploads FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_file_conversions_updated_at BEFORE UPDATE ON public.file_conversions FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
|
||
|
|
-- Streaming Core
|
||
|
|
CREATE TRIGGER update_tracks_updated_at BEFORE UPDATE ON public.tracks FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_track_versions_updated_at BEFORE UPDATE ON public.track_versions FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_playlists_updated_at BEFORE UPDATE ON public.playlists FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_playlist_collaborators_updated_at BEFORE UPDATE ON public.playlist_collaborators FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_playlist_follows_updated_at BEFORE UPDATE ON public.playlist_follows FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_queues_updated_at BEFORE UPDATE ON public.queues FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
|
||
|
|
-- Streaming Analytics
|
||
|
|
CREATE TRIGGER update_track_plays_updated_at BEFORE UPDATE ON public.track_plays FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_track_shares_updated_at BEFORE UPDATE ON public.track_shares FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_track_comments_updated_at BEFORE UPDATE ON public.track_comments FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
|
||
|
|
-- Media Processing
|
||
|
|
CREATE TRIGGER update_hls_streams_updated_at BEFORE UPDATE ON public.hls_streams FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
|
||
|
|
-- Legacy Chat
|
||
|
|
CREATE TRIGGER update_rooms_updated_at BEFORE UPDATE ON public.rooms FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_room_members_updated_at BEFORE UPDATE ON public.room_members FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
|
CREATE TRIGGER update_messages_updated_at BEFORE UPDATE ON public.messages FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|