use sea_orm::entity::prelude::*;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Serialize, Deserialize)]
#[sea_orm(table_name = "session_model_usage")]
pub struct Model {
#[sea_orm(primary_key, auto_increment = false)]
pub session_id: String,
#[sea_orm(primary_key, auto_increment = false)]
pub user_id: String,
#[sea_orm(primary_key, auto_increment = false)]
pub model: String,
pub tokens_in: i32,
pub tokens_out: i32,
pub cost_usd: f64,
pub updated_at: DateTimeUtc,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {}
impl ActiveModelBehavior for ActiveModel {}
impl Model {
pub fn to_dict(&self) -> serde_json::Value {
serde_json::json!({
"session_id": self.session_id,
"user_id": self.user_id,
"model": self.model,
"tokens_in": self.tokens_in,
"tokens_out": self.tokens_out,
"cost_usd": self.cost_usd,
"updated_at": self.updated_at.to_rfc3339(),
})
}
}