langfuse_client_base/models/
numeric_score_v3.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, bon::Builder)]
15pub struct NumericScoreV3 {
16 #[serde(rename = "id")]
17 pub id: String,
18 #[serde(rename = "projectId")]
19 pub project_id: String,
20 #[serde(rename = "name")]
21 pub name: String,
22 #[serde(rename = "source")]
23 pub source: models::ScoreSource,
24 #[serde(rename = "timestamp")]
25 pub timestamp: chrono::DateTime<chrono::FixedOffset>,
26 #[serde(rename = "environment")]
28 pub environment: String,
29 #[serde(rename = "createdAt")]
30 pub created_at: chrono::DateTime<chrono::FixedOffset>,
31 #[serde(rename = "updatedAt")]
32 pub updated_at: chrono::DateTime<chrono::FixedOffset>,
33 #[serde(
35 rename = "comment",
36 default,
37 with = "::serde_with::rust::double_option",
38 skip_serializing_if = "Option::is_none"
39 )]
40 pub comment: Option<Option<String>>,
41 #[serde(
43 rename = "configId",
44 default,
45 with = "::serde_with::rust::double_option",
46 skip_serializing_if = "Option::is_none"
47 )]
48 pub config_id: Option<Option<String>>,
49 #[serde(
51 rename = "metadata",
52 default,
53 with = "::serde_with::rust::double_option",
54 skip_serializing_if = "Option::is_none"
55 )]
56 pub metadata: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
57 #[serde(
59 rename = "authorUserId",
60 default,
61 with = "::serde_with::rust::double_option",
62 skip_serializing_if = "Option::is_none"
63 )]
64 pub author_user_id: Option<Option<String>>,
65 #[serde(
67 rename = "queueId",
68 default,
69 with = "::serde_with::rust::double_option",
70 skip_serializing_if = "Option::is_none"
71 )]
72 pub queue_id: Option<Option<String>>,
73 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
74 pub subject: Option<Box<models::ScoreSubjectV3>>,
75 #[serde(rename = "value")]
77 pub value: f64,
78}
79
80impl NumericScoreV3 {
81 pub fn new(
82 id: String,
83 project_id: String,
84 name: String,
85 source: models::ScoreSource,
86 timestamp: chrono::DateTime<chrono::FixedOffset>,
87 environment: String,
88 created_at: chrono::DateTime<chrono::FixedOffset>,
89 updated_at: chrono::DateTime<chrono::FixedOffset>,
90 value: f64,
91 ) -> NumericScoreV3 {
92 NumericScoreV3 {
93 id,
94 project_id,
95 name,
96 source,
97 timestamp,
98 environment,
99 created_at,
100 updated_at,
101 comment: None,
102 config_id: None,
103 metadata: None,
104 author_user_id: None,
105 queue_id: None,
106 subject: None,
107 value,
108 }
109 }
110}