use derive_empty_traits::EmptyTraits;
use resolver_api::derive::Request;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::entities::server_template::{
ServerTemplate, ServerTemplateListItem, ServerTemplateQuery,
};
use super::MonitorReadRequest;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetServerTemplateResponse)]
pub struct GetServerTemplate {
#[serde(alias = "id", alias = "name")]
pub server_template: String,
}
#[typeshare]
pub type GetServerTemplateResponse = ServerTemplate;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Default, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListServerTemplatesResponse)]
pub struct ListServerTemplates {
#[serde(default)]
pub query: ServerTemplateQuery,
}
#[typeshare]
pub type ListServerTemplatesResponse = Vec<ServerTemplateListItem>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Default, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListFullServerTemplatesResponse)]
pub struct ListFullServerTemplates {
#[serde(default)]
pub query: ServerTemplateQuery,
}
#[typeshare]
pub type ListFullServerTemplatesResponse = Vec<ServerTemplate>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetServerTemplatesSummaryResponse)]
pub struct GetServerTemplatesSummary {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetServerTemplatesSummaryResponse {
pub total: u32,
}