feat(models/rooms): add room attachment model and update room message/notifications
This commit is contained in:
parent
98e6f77341
commit
a2e8f5bf5b
@ -114,6 +114,7 @@ impl std::fmt::Display for ToolCallStatus {
|
||||
|
||||
pub use room::Entity as Room;
|
||||
pub use room_ai::Entity as RoomAi;
|
||||
pub use room_attachment::Entity as RoomAttachment;
|
||||
pub use room_category::Entity as RoomCategory;
|
||||
pub use room_member::Entity as RoomMember;
|
||||
pub use room_message::Entity as RoomMessage;
|
||||
@ -125,6 +126,7 @@ pub use room_pin::Entity as RoomPin;
|
||||
pub use room_thread::Entity as RoomThread;
|
||||
pub mod room;
|
||||
pub mod room_ai;
|
||||
pub mod room_attachment;
|
||||
pub mod room_category;
|
||||
pub mod room_member;
|
||||
pub mod room_message;
|
||||
|
||||
22
libs/models/rooms/room_attachment.rs
Normal file
22
libs/models/rooms/room_attachment.rs
Normal file
@ -0,0 +1,22 @@
|
||||
use crate::{DateTimeUtc, MessageId, RoomId, UserId};
|
||||
use sea_orm::entity::prelude::*;
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
|
||||
#[sea_orm(table_name = "room_attachment")]
|
||||
pub struct Model {
|
||||
#[sea_orm(primary_key)]
|
||||
pub id: Uuid,
|
||||
pub room: RoomId,
|
||||
pub message: MessageId,
|
||||
pub uploader: UserId,
|
||||
pub file_name: String,
|
||||
pub file_size: i64,
|
||||
pub content_type: String,
|
||||
pub s3_key: String,
|
||||
pub created_at: DateTimeUtc,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
||||
pub enum Relation {}
|
||||
|
||||
impl ActiveModelBehavior for ActiveModel {}
|
||||
@ -13,6 +13,8 @@ pub struct Model {
|
||||
pub room: RoomId,
|
||||
pub sender_type: MessageSenderType,
|
||||
pub sender_id: Option<UserId>,
|
||||
/// AI model ID — set when sender_type = "ai", used for display name lookups.
|
||||
pub model_id: Option<Uuid>,
|
||||
pub thread: Option<RoomThreadId>,
|
||||
pub in_reply_to: Option<MessageId>,
|
||||
pub content: String,
|
||||
|
||||
@ -18,6 +18,10 @@ pub enum NotificationType {
|
||||
RoomDeleted,
|
||||
#[sea_orm(string_value = "system_announcement")]
|
||||
SystemAnnouncement,
|
||||
#[sea_orm(string_value = "project_invitation")]
|
||||
ProjectInvitation,
|
||||
#[sea_orm(string_value = "workspace_invitation")]
|
||||
WorkspaceInvitation,
|
||||
}
|
||||
|
||||
impl std::fmt::Display for NotificationType {
|
||||
@ -29,6 +33,8 @@ impl std::fmt::Display for NotificationType {
|
||||
NotificationType::RoomCreated => "room_created",
|
||||
NotificationType::RoomDeleted => "room_deleted",
|
||||
NotificationType::SystemAnnouncement => "system_announcement",
|
||||
NotificationType::ProjectInvitation => "project_invitation",
|
||||
NotificationType::WorkspaceInvitation => "workspace_invitation",
|
||||
};
|
||||
write!(f, "{}", s)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user