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

52 lines
1.1 KiB
Rust

use crate::ResourceEnum;
use imphnen_utils::make_thing_from_enum;
use serde::{Deserialize, Serialize};
use surrealdb::{Uuid, sql::Thing};
use super::{PermissionsItemDto, PermissionsQueryDto};
#[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 {
Self {
id: make_thing_from_enum(
ResourceEnum::Permissions,
&Uuid::new_v4().to_string(),
),
name: String::new(),
is_deleted: false,
created_at: None,
updated_at: None,
}
}
}
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(),
}
}
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,
}
}
}