use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Prompt {
#[serde(rename = "pk")]
pub pk: uuid::Uuid,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "field_key")]
pub field_key: String,
#[serde(rename = "label")]
pub label: String,
#[serde(rename = "type")]
pub r#type: models::PromptTypeEnum,
#[serde(rename = "required", skip_serializing_if = "Option::is_none")]
pub required: Option<bool>,
#[serde(rename = "placeholder", skip_serializing_if = "Option::is_none")]
pub placeholder: Option<String>,
#[serde(rename = "initial_value", skip_serializing_if = "Option::is_none")]
pub initial_value: Option<String>,
#[serde(rename = "order", skip_serializing_if = "Option::is_none")]
pub order: Option<i32>,
#[serde(rename = "promptstage_set", skip_serializing_if = "Option::is_none")]
pub promptstage_set: Option<Vec<models::Stage>>,
#[serde(rename = "sub_text", skip_serializing_if = "Option::is_none")]
pub sub_text: Option<String>,
#[serde(rename = "placeholder_expression", skip_serializing_if = "Option::is_none")]
pub placeholder_expression: Option<bool>,
#[serde(rename = "initial_value_expression", skip_serializing_if = "Option::is_none")]
pub initial_value_expression: Option<bool>,
}
impl Prompt {
pub fn new(
pk: uuid::Uuid,
name: String,
field_key: String,
label: String,
r#type: models::PromptTypeEnum,
) -> Prompt {
Prompt {
pk,
name,
field_key,
label,
r#type,
required: None,
placeholder: None,
initial_value: None,
order: None,
promptstage_set: None,
sub_text: None,
placeholder_expression: None,
initial_value_expression: None,
}
}
}