gitdataai/libs/models/rooms/mod.rs

110 lines
3.6 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 MessageSenderType {
#[sea_orm(string_value = "user")]
User,
#[sea_orm(string_value = "ai")]
Ai,
#[sea_orm(string_value = "system")]
System,
#[sea_orm(string_value = "webhook")]
Webhook,
#[sea_orm(string_value = "tool")]
Tool,
}
impl std::fmt::Display for MessageSenderType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
MessageSenderType::User => write!(f, "user"),
MessageSenderType::Ai => write!(f, "ai"),
MessageSenderType::System => write!(f, "system"),
MessageSenderType::Webhook => write!(f, "webhook"),
MessageSenderType::Tool => write!(f, "tool"),
}
}
}
#[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_access::Entity as RoomAccess;
pub use room_ai::Entity as RoomAi;
pub use room_attachment::Entity as RoomAttachment;
pub use room_category::Entity as RoomCategory;
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 use room_user_state::Entity as RoomUserState;
pub mod room;
pub mod room_access;
pub mod room_ai;
pub mod room_attachment;
pub mod room_category;
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;
pub mod room_user_state;