use serde::{Deserialize, Serialize};
use salvo::oapi::ToSchema;
use genies_derive::casbin;
#[derive(Debug, Deserialize, ToSchema)]
pub struct CreateApplicationRequest {
pub app_name: String,
pub display_name: Option<String>,
pub description: Option<String>,
pub base_url: String,
pub status: Option<i8>,
}
#[derive(Debug, Deserialize, ToSchema)]
pub struct UpdateApplicationRequest {
pub app_name: Option<String>,
pub display_name: Option<String>,
pub description: Option<String>,
pub base_url: Option<String>,
pub status: Option<i8>,
}
#[casbin]
#[derive(Debug, Serialize, Deserialize, Clone, ToSchema)]
pub struct ApplicationVO {
pub id: Option<i64>,
pub app_name: Option<String>,
pub display_name: Option<String>,
pub description: Option<String>,
pub base_url: Option<String>,
pub status: Option<i8>,
pub created_at: Option<String>,
pub updated_at: Option<String>,
}
impl From<crate::domain::entity::application_entity::ApplicationEntity> for ApplicationVO {
fn from(e: crate::domain::entity::application_entity::ApplicationEntity) -> Self {
Self {
id: e.id,
app_name: e.app_name,
display_name: e.display_name,
description: e.description,
base_url: e.base_url,
status: e.status,
created_at: e.created_at.map(|d| d.to_string()),
updated_at: e.updated_at.map(|d| d.to_string()),
}
}
}