use kalamdb_commons::{Role, UserId};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ServerSetupRequest {
pub user: UserId,
pub password: String,
pub root_password: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
}
impl ServerSetupRequest {
pub fn new(
user: impl Into<UserId>,
password: impl Into<String>,
root_password: impl Into<String>,
email: Option<String>,
) -> Self {
Self {
user: user.into(),
password: password.into(),
root_password: root_password.into(),
email,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ServerSetupResponse {
pub user: SetupUserInfo,
pub message: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SetupUserInfo {
pub id: UserId,
pub role: Role,
pub email: Option<String>,
pub created_at: String,
pub updated_at: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SetupStatusResponse {
pub needs_setup: bool,
pub message: String,
}