use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
#[sea_orm(rs_type = "String", db_type = "String(StringLen::N(50))")]
pub enum ServerStatus {
#[sea_orm(string_value = "active")]
Active,
#[sea_orm(string_value = "stopped")]
Stopped,
}
#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)]
#[sea_orm(table_name = "asynq_servers")]
pub struct Model {
#[sea_orm(primary_key, auto_increment = false)]
pub id: String,
pub host: String,
pub pid: i32,
pub server_id: String,
pub concurrency: i32,
pub started_at: DateTimeWithTimeZone,
pub status: ServerStatus,
pub expires_at: DateTimeWithTimeZone,
#[sea_orm(column_type = "JsonBinary")]
pub queues: Json,
pub strict_priority: bool,
pub active_worker_count: i32,
pub tenant_id: Option<String>,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {
#[sea_orm(has_many = "super::workers::Entity")]
Workers,
}
impl Related<super::workers::Entity> for Entity {
fn to() -> RelationDef {
Relation::Workers.def()
}
}
impl ActiveModelBehavior for ActiveModel {}