feat: added audit logs table to the database
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful

This commit is contained in:
BAaboe 2025-08-04 22:51:05 +02:00
parent 946085a18f
commit e8de96b2d0
3 changed files with 41 additions and 0 deletions

View file

@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
DROP TABLE audit_logs;

View file

@ -0,0 +1,14 @@
-- Your SQL goes here
CREATE TABLE audit_logs (
uuid UUID PRIMARY KEY NOT NULL,
guild_uuid UUID NOT NULL,
action_id INT2 NOT NULL,
by_uuid UUID NOT NULL REFERENCES guild_members(uuid),
channel_uuid UUID REFERENCES channels(uuid) DEFAULT NULL,
user_uuid UUID REFERENCES users(uuid) DEFAULT NULL,
message_uuid UUID REFERENCES messages(uuid) DEFAULT NULL,
role_uuid UUID REFERENCES roles(uuid) DEFAULT NULL,
audit_message VARCHAR(200) DEFAULT NULL,
changed_from VARCHAR(200) DEFAULT NULL,
changed_to VARCHAR(200) DEFAULT NULL
);

View file

@ -11,6 +11,25 @@ diesel::table! {
} }
} }
diesel::table! {
audit_logs (uuid) {
uuid -> Uuid,
guild_uuid -> Uuid,
action_id -> Int2,
by_uuid -> Uuid,
channel_uuid -> Nullable<Uuid>,
user_uuid -> Nullable<Uuid>,
message_uuid -> Nullable<Uuid>,
role_uuid -> Nullable<Uuid>,
#[max_length = 200]
audit_message -> Nullable<Varchar>,
#[max_length = 200]
changed_from -> Nullable<Varchar>,
#[max_length = 200]
changed_to -> Nullable<Varchar>,
}
}
diesel::table! { diesel::table! {
channel_permissions (channel_uuid, role_uuid) { channel_permissions (channel_uuid, role_uuid) {
channel_uuid -> Uuid, channel_uuid -> Uuid,
@ -163,6 +182,11 @@ diesel::table! {
diesel::joinable!(access_tokens -> refresh_tokens (refresh_token)); diesel::joinable!(access_tokens -> refresh_tokens (refresh_token));
diesel::joinable!(access_tokens -> users (uuid)); diesel::joinable!(access_tokens -> users (uuid));
diesel::joinable!(audit_logs -> channels (channel_uuid));
diesel::joinable!(audit_logs -> guild_members (by_uuid));
diesel::joinable!(audit_logs -> messages (message_uuid));
diesel::joinable!(audit_logs -> roles (role_uuid));
diesel::joinable!(audit_logs -> users (user_uuid));
diesel::joinable!(channel_permissions -> channels (channel_uuid)); diesel::joinable!(channel_permissions -> channels (channel_uuid));
diesel::joinable!(channel_permissions -> roles (role_uuid)); diesel::joinable!(channel_permissions -> roles (role_uuid));
diesel::joinable!(channels -> guilds (guild_uuid)); diesel::joinable!(channels -> guilds (guild_uuid));
@ -182,6 +206,7 @@ diesel::joinable!(roles -> guilds (guild_uuid));
diesel::allow_tables_to_appear_in_same_query!( diesel::allow_tables_to_appear_in_same_query!(
access_tokens, access_tokens,
audit_logs,
channel_permissions, channel_permissions,
channels, channels,
friend_requests, friend_requests,