sumup_rs/models/
role.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct Role {
6    pub id: String,
7    pub name: String,
8    pub membership_id: String,
9    pub permissions: Vec<String>,
10    pub is_predefined: bool,
11    pub created_at: DateTime<Utc>,
12    #[serde(default, skip_serializing_if = "Option::is_none")]
13    pub updated_at: Option<DateTime<Utc>>,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct CreateRoleRequest {
18    pub name: String,
19    pub permissions: Vec<String>,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct UpdateRoleRequest {
24    pub name: String,
25    pub permissions: Vec<String>,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
29pub struct RoleListResponse {
30    pub roles: Vec<Role>,
31}