usage_measure.rs

 1use crate::llm::db::UsageMeasureId;
 2use sea_orm::entity::prelude::*;
 3
 4#[derive(
 5    Copy, Clone, Debug, PartialEq, Eq, Hash, strum::EnumString, strum::Display, strum::EnumIter,
 6)]
 7#[strum(serialize_all = "snake_case")]
 8pub enum UsageMeasure {
 9    RequestsPerMinute,
10    TokensPerMinute,
11    TokensPerDay,
12}
13
14#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
15#[sea_orm(table_name = "usage_measures")]
16pub struct Model {
17    #[sea_orm(primary_key)]
18    pub id: UsageMeasureId,
19    pub name: String,
20}
21
22#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
23pub enum Relation {
24    #[sea_orm(has_many = "super::usage::Entity")]
25    Usages,
26}
27
28impl Related<super::usage::Entity> for Entity {
29    fn to() -> RelationDef {
30        Relation::Usages.def()
31    }
32}
33
34impl ActiveModelBehavior for ActiveModel {}