feat: Add accepted_response col to incoming_chat table

Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
Awiteb 2024-07-28 10:55:04 +03:00
parent f0383296de
commit c8693eeb3e
Signed by: awiteb
GPG key ID: 3F6B55640AA6682F
3 changed files with 23 additions and 7 deletions

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,
}