use crate::{DateTimeUtc, ProjectId, UserId}; use sea_orm::entity::prelude::*; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, DeriveEntityModel)] #[sea_orm(table_name = "ai_conversation")] pub struct Model { #[sea_orm(primary_key)] pub id: Uuid, pub user_id: UserId, pub project_id: Option, pub scope: String, pub title: Option, pub model: String, pub model_config: Option, pub status: String, pub root_message_id: Option, pub fork_count: i32, pub is_shared: bool, pub message_count: i32, pub token_usage_total: Option, /// Who can see this chat: "owner" | "admin" | "member" pub access_visibility: String, /// Who can send messages: "owner" | "admin" | "member" pub can_ask: String, /// Project-unique sequential number for this chat pub project_uid: Option, /// AI model UUID selected for this chat pub model_uid: Option, /// AI model display name (e.g. "Claude Sonnet 4") pub model_name: Option, pub created_at: DateTimeUtc, pub updated_at: DateTimeUtc, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] pub enum Relation {} impl ActiveModelBehavior for ActiveModel {}