scitadel_core/models/
assessment.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4use super::{AssessmentId, PaperId, QuestionId};
5
6#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
10pub struct Assessment {
11 pub id: AssessmentId,
12 pub paper_id: PaperId,
13 pub question_id: QuestionId,
14 pub score: f64,
15 #[serde(default)]
16 pub reasoning: String,
17 pub model: Option<String>,
18 pub prompt: Option<String>,
19 pub temperature: Option<f64>,
20 #[serde(default)]
21 pub assessor: String,
22 pub created_at: DateTime<Utc>,
23}
24
25impl Assessment {
26 #[must_use]
27 pub fn new(paper_id: PaperId, question_id: QuestionId, score: f64) -> Self {
28 Self {
29 id: AssessmentId::new(),
30 paper_id,
31 question_id,
32 score,
33 reasoning: String::new(),
34 model: None,
35 prompt: None,
36 temperature: None,
37 assessor: String::new(),
38 created_at: Utc::now(),
39 }
40 }
41}