use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use sqlx::types::Json;
use systemprompt_identifiers::{ContextId, FileId, SessionId, TraceId, UserId};
use super::metadata::FileMetadata;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct File {
pub id: FileId,
pub path: String,
pub public_url: String,
pub mime_type: String,
pub size_bytes: Option<i64>,
pub ai_content: bool,
pub metadata: Json<FileMetadata>,
pub user_id: Option<UserId>,
pub session_id: Option<SessionId>,
pub trace_id: Option<TraceId>,
pub context_id: Option<ContextId>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
pub deleted_at: Option<DateTime<Utc>>,
}