gitdataai/libs/models/rooms/mod.rs
2026-04-15 09:08:09 +08:00

136 lines
4.4 KiB
Rust

use sea_orm::entity::prelude::*;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, Serialize, Deserialize)]
#[sea_orm(rs_type = "String", db_type = "String(StringLen::None)")]
pub enum RoomMemberRole {
#[sea_orm(string_value = "owner")]
Owner,
#[sea_orm(string_value = "admin")]
Admin,
#[sea_orm(string_value = "member")]
Member,
#[sea_orm(string_value = "guest")]
Guest,
}
impl std::fmt::Display for RoomMemberRole {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
RoomMemberRole::Owner => write!(f, "owner"),
RoomMemberRole::Admin => write!(f, "admin"),
RoomMemberRole::Member => write!(f, "member"),
RoomMemberRole::Guest => write!(f, "guest"),
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, Serialize, Deserialize)]
#[sea_orm(rs_type = "String", db_type = "String(StringLen::None)")]
pub enum MessageSenderType {
#[sea_orm(string_value = "member")]
Member,
#[sea_orm(string_value = "admin")]
Admin,
#[sea_orm(string_value = "owner")]
Owner,
#[sea_orm(string_value = "ai")]
Ai,
#[sea_orm(string_value = "system")]
System,
#[sea_orm(string_value = "tool")]
Tool,
#[sea_orm(string_value = "guest")]
Guest,
}
impl std::fmt::Display for MessageSenderType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
MessageSenderType::Member => write!(f, "member"),
MessageSenderType::Admin => write!(f, "admin"),
MessageSenderType::Owner => write!(f, "owner"),
MessageSenderType::Ai => write!(f, "ai"),
MessageSenderType::System => write!(f, "system"),
MessageSenderType::Tool => write!(f, "tool"),
MessageSenderType::Guest => write!(f, "guest"),
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, Serialize, Deserialize)]
#[sea_orm(rs_type = "String", db_type = "String(StringLen::None)")]
pub enum MessageContentType {
#[sea_orm(string_value = "text")]
Text,
#[sea_orm(string_value = "image")]
Image,
#[sea_orm(string_value = "audio")]
Audio,
#[sea_orm(string_value = "video")]
Video,
#[sea_orm(string_value = "file")]
File,
}
impl std::fmt::Display for MessageContentType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
MessageContentType::Text => write!(f, "text"),
MessageContentType::Image => write!(f, "image"),
MessageContentType::Audio => write!(f, "audio"),
MessageContentType::Video => write!(f, "video"),
MessageContentType::File => write!(f, "file"),
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, Serialize, Deserialize)]
#[sea_orm(rs_type = "String", db_type = "String(StringLen::None)")]
pub enum ToolCallStatus {
#[sea_orm(string_value = "pending")]
Pending,
#[sea_orm(string_value = "running")]
Running,
#[sea_orm(string_value = "success")]
Success,
#[sea_orm(string_value = "failed")]
Failed,
#[sea_orm(string_value = "retrying")]
Retrying,
}
impl std::fmt::Display for ToolCallStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ToolCallStatus::Pending => write!(f, "pending"),
ToolCallStatus::Running => write!(f, "running"),
ToolCallStatus::Success => write!(f, "success"),
ToolCallStatus::Failed => write!(f, "failed"),
ToolCallStatus::Retrying => write!(f, "retrying"),
}
}
}
pub use room::Entity as Room;
pub use room_ai::Entity as RoomAi;
pub use room_category::Entity as RoomCategory;
pub use room_member::Entity as RoomMember;
pub use room_message::Entity as RoomMessage;
pub use room_message_edit_history::Entity as RoomMessageEditHistory;
pub use room_message_reaction::Entity as RoomMessageReaction;
pub use room_notifications::Entity as RoomNotification;
pub use room_notifications::NotificationType;
pub use room_pin::Entity as RoomPin;
pub use room_thread::Entity as RoomThread;
pub mod room;
pub mod room_ai;
pub mod room_category;
pub mod room_member;
pub mod room_message;
pub mod room_message_edit_history;
pub mod room_message_reaction;
pub mod room_notifications;
pub mod room_pin;
pub mod room_thread;