Files
imphnen-backend-service/imphnen-iam/src/v1/permissions/permissions_dto.rs
T

45 lines
1.2 KiB
Rust
Raw Normal View History

2025-03-23 20:42:38 +07:00
use serde::{Deserialize, Serialize};
2025-03-30 02:46:16 +07:00
use surrealdb::sql::Thing;
2025-03-23 20:42:38 +07:00
use utoipa::ToSchema;
2025-03-25 20:50:42 +07:00
use validator::Validate;
2025-03-23 20:42:38 +07:00
2025-03-25 20:50:42 +07:00
#[derive(Clone, Debug, Serialize, Deserialize, ToSchema, Validate)]
2025-03-23 20:42:38 +07:00
pub struct PermissionsRequestDto {
2025-03-25 20:50:42 +07:00
#[validate(length(min = 1, message = "Permission name must not be empty"))]
2025-03-23 20:42:38 +07:00
pub name: String,
}
#[derive(Clone, Debug, Serialize, Deserialize, ToSchema, Validate)]
pub struct PermissionsUpdateRequestDto {
#[validate(length(min = 1, message = "Permission name must not be empty"))]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
2025-03-23 20:42:38 +07:00
#[derive(Clone, Debug, Serialize, Deserialize, ToSchema)]
pub struct PermissionsItemDto {
pub id: String,
pub name: String,
pub created_at: Option<String>,
pub updated_at: Option<String>,
}
2025-03-30 02:46:16 +07:00
2025-05-18 03:12:20 +07:00
impl PermissionsItemDto {
pub fn from(dto: &PermissionsQueryDto) -> Self {
Self {
id: dto.id.id.to_raw(),
name: dto.name.clone(),
created_at: dto.created_at.clone(),
updated_at: dto.updated_at.clone(),
}
}
}
2025-03-30 02:46:16 +07:00
#[derive(Clone, Debug, Serialize, Deserialize)]
2025-05-17 02:08:59 +07:00
pub struct PermissionsQueryDto {
2025-03-30 02:46:16 +07:00
pub id: Thing,
pub name: String,
pub created_at: Option<String>,
pub updated_at: Option<String>,
}