2025-09-22 09:10:20 +07:00
|
|
|
use crate::ResourceEnum;
|
|
|
|
|
use imphnen_utils::make_thing_from_enum;
|
2025-03-23 20:42:38 +07:00
|
|
|
use serde::{Deserialize, Serialize};
|
2025-05-20 00:26:24 +07:00
|
|
|
use surrealdb::{Uuid, sql::Thing};
|
2025-03-23 20:42:38 +07:00
|
|
|
|
2025-08-13 20:40:02 +07:00
|
|
|
use super::{PermissionsItemDto, PermissionsQueryDto};
|
2025-05-20 01:49:50 +07:00
|
|
|
|
2025-03-23 20:42:38 +07:00
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
|
|
|
pub struct PermissionsSchema {
|
|
|
|
|
pub id: Thing,
|
|
|
|
|
pub name: String,
|
|
|
|
|
pub is_deleted: bool,
|
|
|
|
|
pub created_at: Option<String>,
|
|
|
|
|
pub updated_at: Option<String>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Default for PermissionsSchema {
|
|
|
|
|
fn default() -> Self {
|
2025-09-22 09:10:20 +07:00
|
|
|
Self {
|
|
|
|
|
id: make_thing_from_enum(
|
|
|
|
|
ResourceEnum::Permissions,
|
2025-04-01 20:00:00 +07:00
|
|
|
&Uuid::new_v4().to_string(),
|
|
|
|
|
),
|
2025-03-23 20:42:38 +07:00
|
|
|
name: String::new(),
|
|
|
|
|
is_deleted: false,
|
|
|
|
|
created_at: None,
|
|
|
|
|
updated_at: None,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-05-20 01:49:50 +07:00
|
|
|
|
|
|
|
|
impl PermissionsSchema {
|
|
|
|
|
pub fn list(&self) -> PermissionsItemDto {
|
|
|
|
|
PermissionsItemDto {
|
|
|
|
|
id: self.id.id.to_raw(),
|
|
|
|
|
name: self.name.clone(),
|
|
|
|
|
created_at: self.created_at.clone(),
|
|
|
|
|
updated_at: self.updated_at.clone(),
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-08-13 20:40:02 +07:00
|
|
|
|
|
|
|
|
pub fn from(dto: PermissionsQueryDto) -> Self {
|
|
|
|
|
Self {
|
|
|
|
|
id: dto.id,
|
|
|
|
|
name: dto.name,
|
|
|
|
|
is_deleted: false,
|
|
|
|
|
created_at: dto.created_at,
|
|
|
|
|
updated_at: dto.updated_at,
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-05-20 01:49:50 +07:00
|
|
|
}
|