use serde_json::Value;
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct CreateLinkageParams {
pub name: String,
pub position_id: Option<String>,
pub conditions: Value,
pub actions: Value,
}
impl CreateLinkageParams {
pub fn new(name: impl Into<String>, conditions: Value, actions: Value) -> Self {
Self {
name: name.into(),
position_id: None,
conditions,
actions,
}
}
pub fn with_position_id(mut self, position_id: impl Into<String>) -> Self {
self.position_id = Some(position_id.into());
self
}
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct UpdateLinkageParams {
pub linkage_id: String,
pub name: String,
pub position_id: Option<String>,
pub conditions: Value,
pub actions: Value,
}
impl UpdateLinkageParams {
pub fn new(
linkage_id: impl Into<String>,
name: impl Into<String>,
conditions: Value,
actions: Value,
) -> Self {
Self {
linkage_id: linkage_id.into(),
name: name.into(),
position_id: None,
conditions,
actions,
}
}
pub fn with_position_id(mut self, position_id: impl Into<String>) -> Self {
self.position_id = Some(position_id.into());
self
}
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct DeleteLinkageParams {
pub linkage_id: String,
}
impl DeleteLinkageParams {
pub fn new(linkage_id: impl Into<String>) -> Self {
Self {
linkage_id: linkage_id.into(),
}
}
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct EnableLinkageParams {
pub linkage_id: String,
pub enable: i32,
}
impl EnableLinkageParams {
pub fn new(linkage_id: impl Into<String>, enable: i32) -> Self {
Self {
linkage_id: linkage_id.into(),
enable,
}
}
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct QueryLinkageDetailParams {
pub linkage_id: String,
}
impl QueryLinkageDetailParams {
pub fn new(linkage_id: impl Into<String>) -> Self {
Self {
linkage_id: linkage_id.into(),
}
}
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct QueryLinkagesBySubjectIdParams {
pub subject_id: String,
}
impl QueryLinkagesBySubjectIdParams {
pub fn new(subject_id: impl Into<String>) -> Self {
Self {
subject_id: subject_id.into(),
}
}
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct QueryLinkagesByPositionIdParams {
pub position_id: Option<String>,
pub page_num: u32,
pub page_size: u32,
}
impl Default for QueryLinkagesByPositionIdParams {
fn default() -> Self {
Self {
position_id: None,
page_num: 1,
page_size: 50,
}
}
}
impl QueryLinkagesByPositionIdParams {
pub fn with_position_id(mut self, position_id: impl Into<String>) -> Self {
self.position_id = Some(position_id.into());
self
}
pub fn with_page_num(mut self, page_num: u32) -> Self {
self.page_num = page_num;
self
}
pub fn with_page_size(mut self, page_size: u32) -> Self {
self.page_size = page_size;
self
}
}