// OxideTalis Messaging Protocol homeserver core implementation // Copyright (c) 2024 OxideTalis Developers // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. use sea_orm_migration::prelude::*; #[derive(DeriveMigrationName)] pub struct Migration; #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { manager .create_table( Table::create() .table(Blacklist::Table) .if_not_exists() .col( ColumnDef::new(Blacklist::Id) .integer() .not_null() .auto_increment() .primary_key(), ) .col(ColumnDef::new(Blacklist::UserId).integer().not_null()) .col(ColumnDef::new(Blacklist::Target).string().not_null()) .col(ColumnDef::new(Blacklist::Reason).string_len(400)) .col( ColumnDef::new(Blacklist::BlacklistedAt) .timestamp_with_time_zone() .not_null(), ) .to_owned(), ) .await } } #[derive(DeriveIden)] enum Blacklist { Table, Id, UserId, /// Public key of the target Target, Reason, BlacklistedAt, }