from migrations.fixtures.delphi_tables.v1.triggers.base_trigger import BaseTrigger from migrations.fixtures.delphi_tables.v3.triggers.queries.user_projects_queries import UserProjectsQueries class ArtistTeamUserTrigger(BaseTrigger): table = "ArtistTeamUser" function_name = "log_artist_team_user_changes" def on_insert(self): return f""" DELETE FROM user_projects where user_id = NEW.user_id; INSERT INTO user_projects(project_id, user_id) {UserProjectsQueries.get_user_projects( where_clause='project.is_deleted IS FALSE AND dec_user.id = NEW.user_id' )}; """ def on_delete(self): return f""" DELETE FROM user_projects where user_id = OLD.user_id; -- We need to restore user_projects when user is owner in some of projects or is a collaborator INSERT INTO user_projects(project_id, user_id) {UserProjectsQueries.get_user_projects( where_clause='project.is_deleted IS FALSE AND dec_user.id = OLD.user_id' )}; """