permission.rs 31 lignes · 1056 octets
use chrono::{DateTime, Utc};
use sea_orm::entity::prelude::*;
use serde::{Deserialize, Serialize};
use uuid::Uuid;

/// SeaORM model for the `permissions` table.
///
/// Represents a fine-grained permission that can be assigned to roles.
#[derive(Clone, Debug, Serialize, Deserialize, DeriveEntityModel)]
#[sea_orm(table_name = "permissions")]
pub struct Model {
    /// Primary key.
    #[sea_orm(primary_key)]
    pub id: Uuid,
    /// Unique machine-readable permission name (e.g. `"users:write"`).
    #[sea_orm(unique)]
    pub name: String,
    /// Optional human-readable description of what this permission grants.
    #[sea_orm(nullable)]
    pub description: Option<String>,
    /// Grouping category for UI display (e.g. `"users"`, `"admin"`).
    pub category: String,
    /// Timestamp when this permission was created.
    pub created_at: DateTime<Utc>,
}

/// SeaORM relations for the Permission entity (none defined).
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {}

impl ActiveModelBehavior for ActiveModel {}