nblm_core/models/enterprise/
share.rs

1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6#[derive(Debug, Clone, Serialize, Deserialize, Default)]
7#[serde(rename_all = "camelCase")]
8pub struct AccountRole {
9    pub email: String,
10    pub role: ProjectRole,
11}
12
13#[derive(Debug, Clone, Copy, Serialize, Deserialize, Default, PartialEq, Eq)]
14#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
15pub enum ProjectRole {
16    ProjectRoleOwner,
17    ProjectRoleWriter,
18    #[default]
19    ProjectRoleReader,
20    ProjectRoleNotShared,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize, Default)]
24#[serde(rename_all = "camelCase")]
25pub struct ShareResponse {
26    #[serde(skip_serializing_if = "Option::is_none")]
27    pub granted: Option<i32>,
28    #[serde(flatten)]
29    pub extra: HashMap<String, Value>,
30}