lynx_core/entities/
rule_group.rs

1//! `SeaORM` Entity, @generated by sea-orm-codegen 1.1.4
2
3use async_trait::async_trait;
4use chrono::Local;
5use sea_orm::{entity::prelude::*, ActiveValue};
6use serde::Serialize;
7
8#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize)]
9#[sea_orm(table_name = "rule_group")]
10#[serde(rename_all = "camelCase")]
11pub struct Model {
12    #[sea_orm(primary_key)]
13    pub id: i32,
14    pub name: String,
15    pub description: Option<String>,
16    pub created_at: u32,
17    pub updated_at: u32,
18}
19
20#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
21pub enum Relation {
22    #[sea_orm(has_many = "super::rule::Entity")]
23    Rule,
24}
25
26impl Related<super::rule::Entity> for Entity {
27    fn to() -> RelationDef {
28        Relation::Rule.def()
29    }
30}
31
32#[async_trait]
33impl ActiveModelBehavior for ActiveModel {
34    async fn before_save<C>(mut self, _db: &C, insert: bool) -> Result<Self, DbErr>
35    where
36        C: ConnectionTrait,
37    {
38        if insert {
39            self.created_at = ActiveValue::Set(Local::now().timestamp_millis() as u32);
40            self.updated_at = ActiveValue::Set(Local::now().timestamp_millis() as u32);
41        } else {
42            self.updated_at = ActiveValue::Set(Local::now().timestamp_millis() as u32);
43        }
44        Ok(self)
45    }
46}