Files
2026-06-07 11:30:56 +08:00

30 lines
969 B
Rust

use crate::models::common::{ConversationType, JsonValue, Status, Visibility};
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)]
pub struct Conversation {
pub id: Uuid,
pub workspace_id: Option<Uuid>,
pub repo_id: Option<Uuid>,
pub issue_id: Option<Uuid>,
pub pull_request_id: Option<Uuid>,
pub agent_id: Option<Uuid>,
pub created_by: Uuid,
pub title: String,
pub description: Option<String>,
pub conversation_type: ConversationType,
pub status: Status,
pub visibility: Visibility,
pub pinned: bool,
pub archived: bool,
pub metadata: Option<JsonValue>,
pub last_message_id: Option<Uuid>,
pub last_message_at: Option<DateTime<Utc>>,
pub archived_at: Option<DateTime<Utc>>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
pub deleted_at: Option<DateTime<Utc>>,
}