use derive_empty_traits::EmptyTraits;
use resolver_api::derive::Request;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::entities::variable::Variable;
use super::MonitorWriteRequest;
#[typeshare]
#[derive(
Debug, Clone, Serialize, Deserialize, Request, EmptyTraits,
)]
#[empty_traits(MonitorWriteRequest)]
#[response(CreateVariableResponse)]
pub struct CreateVariable {
pub name: String,
#[serde(default)]
pub value: String,
#[serde(default)]
pub description: String,
}
#[typeshare]
pub type CreateVariableResponse = Variable;
#[typeshare]
#[derive(
Debug, Clone, Serialize, Deserialize, Request, EmptyTraits,
)]
#[empty_traits(MonitorWriteRequest)]
#[response(UpdateVariableValueResponse)]
pub struct UpdateVariableValue {
pub name: String,
pub value: String,
}
#[typeshare]
pub type UpdateVariableValueResponse = Variable;
#[typeshare]
#[derive(
Debug, Clone, Serialize, Deserialize, Request, EmptyTraits,
)]
#[empty_traits(MonitorWriteRequest)]
#[response(UpdateVariableDescriptionResponse)]
pub struct UpdateVariableDescription {
pub name: String,
pub description: String,
}
#[typeshare]
pub type UpdateVariableDescriptionResponse = Variable;
#[typeshare]
#[derive(
Debug, Clone, Serialize, Deserialize, Request, EmptyTraits,
)]
#[empty_traits(MonitorWriteRequest)]
#[response(DeleteVariableResponse)]
pub struct DeleteVariable {
pub name: String,
}
#[typeshare]
pub type DeleteVariableResponse = Variable;