refactor: Refactor in_chat_requests table #35

Manually merged
awiteb merged 7 commits from awiteb/rename-chat-request-table-and-save-respnse-in-it into master 2024-07-30 10:39:04 +02:00 AGit
3 changed files with 23 additions and 7 deletions
Showing only changes of commit c8693eeb3e - Show all commits

View file

@ -47,9 +47,13 @@ impl IncomingChatExt for DatabaseConnection {
..Default::default()
})
.on_conflict(
OnConflict::columns([IncomingChatColumn::RecipientId, IncomingChatColumn::Sender])
.do_nothing()
.to_owned(),
OnConflict::columns([
IncomingChatColumn::RecipientId,
IncomingChatColumn::Sender,
IncomingChatColumn::AcceptedResponse,
])
.do_nothing()
.to_owned(),
)
.exec(self)
.await?;

View file

@ -31,12 +31,15 @@ use crate::prelude::*;
#[sea_orm(table_name = "incoming_chat")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: IdCol,
pub recipient_id: IdCol,
pub id: IdCol,
pub recipient_id: IdCol,
/// Public key of the sender
pub sender: PublicKey,
pub sender: PublicKey,
/// Whether the chat response accepted or not.
/// This will be `None` if it is chat request, otherwise `bool`
pub accepted_response: Option<bool>,
/// The timestamp of the request, when it was received
pub in_on: chrono::DateTime<Utc>,
pub in_on: chrono::DateTime<Utc>,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]

View file

@ -58,6 +58,12 @@ impl MigrationTrait for Migration {
.on_delete(ForeignKeyAction::Cascade),
)
.col(ColumnDef::new(IncomingChat::Sender).binary().not_null())
.col(
ColumnDef::new(IncomingChat::AcceptedResponse)
.boolean()
.null()
.default(Option::<bool>::None),
)
.col(
ColumnDef::new(IncomingChat::InOn)
.timestamp_with_time_zone()
@ -74,6 +80,7 @@ impl MigrationTrait for Migration {
.table(IncomingChat::Table)
.col(IncomingChat::RecipientId)
.col(IncomingChat::Sender)
.col(IncomingChat::AcceptedResponse)
.unique()
.to_owned(),
)
@ -88,5 +95,7 @@ enum IncomingChat {
RecipientId,
/// Public key of the sender
Sender,
/// Whether the chat response accepted or not
AcceptedResponse,
InOn,
}