feature/upstream-service #13

Merged
GW_MC merged 43 commits from feature/upstream-service into master 2026-01-01 10:49:32 +08:00
Showing only changes of commit 921165476c - Show all commits

View File

@@ -4,7 +4,7 @@ use optfield::optfield;
use sea_orm::ActiveValue::{Set, Unchanged}; use sea_orm::ActiveValue::{Set, Unchanged};
use uuid::Uuid; use uuid::Uuid;
use database::generated::entities::upstream_target; use database::generated::entities::{upstream, upstream_target};
use crate::{ use crate::{
services::nginx::{builder::NginxConfigProvider, traits::indentable::Indentable}, services::nginx::{builder::NginxConfigProvider, traits::indentable::Indentable},
@@ -24,6 +24,17 @@ pub struct UpstreamTargetInfo {
pub updated_at: DateTime<Utc>, pub updated_at: DateTime<Utc>,
// //
pub upstream_id: uuid::Uuid, pub upstream_id: uuid::Uuid,
pub upstream: Option<UpstreamBasicInfo>,
}
#[derive(Clone)]
pub struct UpstreamBasicInfo {
pub id: uuid::Uuid,
pub name: String,
pub protocol: String,
//
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
} }
pub struct UpstreamTargetCreateInfo { pub struct UpstreamTargetCreateInfo {
@@ -48,6 +59,31 @@ impl From<upstream_target::Model> for UpstreamTargetInfo {
created_at: model.created_at, created_at: model.created_at,
updated_at: model.updated_at, updated_at: model.updated_at,
upstream_id: model.upstream_id, upstream_id: model.upstream_id,
upstream: None,
}
}
}
impl From<(upstream_target::Model, upstream::Model)> for UpstreamTargetInfo {
fn from(data: (upstream_target::Model, upstream::Model)) -> Self {
let (target_model, up_model) = data;
Self {
id: target_model.id,
target_host: target_model.target_host,
target_port: target_model.target_port,
weight: target_model.weight,
is_backup: target_model.is_backup,
enabled: target_model.enabled,
created_at: target_model.created_at,
updated_at: target_model.updated_at,
upstream_id: target_model.upstream_id,
upstream: Some(UpstreamBasicInfo {
id: up_model.id,
name: up_model.name,
protocol: up_model.protocol,
created_at: up_model.created_at,
updated_at: up_model.updated_at,
}),
} }
} }
} }