diff --git a/migration/src/m20220101_000001_create_table.rs b/migration/src/m20220101_000001_create_table.rs
index a489339..135e606 100644
--- a/migration/src/m20220101_000001_create_table.rs
+++ b/migration/src/m20220101_000001_create_table.rs
@@ -481,6 +481,12 @@ impl MigrationTrait for Migration {
Table::create()
.table(Alias::new("server_user_permission"))
.if_not_exists()
+ .col(
+ ColumnDef::new(Alias::new("id"))
+ .uuid()
+ .not_null()
+ .primary_key(),
+ )
.col(ColumnDef::new(Alias::new("server_id")).uuid().not_null())
.col(ColumnDef::new(Alias::new("user_id")).uuid().not_null())
.col(
diff --git a/src/repositories/channel.rs b/src/repositories/channel.rs
index 33c89e7..c3917e6 100644
--- a/src/repositories/channel.rs
+++ b/src/repositories/channel.rs
@@ -1,7 +1,9 @@
-use crate::models::channel;
+use crate::models::{channel, channel_role_permission, channel_user_permission};
use crate::repositories::{AnyResult, RepositoryContext};
-use sea_orm::{ActiveModelTrait, EntityTrait};
+use sea_orm::sea_query::OnConflict;
+use sea_orm::{ActiveModelTrait, ColumnTrait, EntityTrait, QueryFilter, Set};
use std::sync::Arc;
+use uuid::Uuid;
#[derive(Clone, Debug)]
pub struct ChannelRepository {
@@ -9,7 +11,7 @@ pub struct ChannelRepository {
}
impl ChannelRepository {
- pub async fn get_by_id(&self, id: uuid::Uuid) -> AnyResult