luckperms_rs/models/
user.rs1use std::collections::HashMap;
2use uuid::Uuid;
3use crate::models::node::Node;
4
5#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub struct UserIdentifier {
8 pub unique_id: Uuid,
9 pub username: String,
10}
11
12#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
13#[serde(rename_all = "camelCase")]
14pub struct User {
15 pub unique_id: Uuid,
16 pub username: String,
17 #[serde(default)]
18 pub parent_groups: Vec<String>,
19 pub nodes: Vec<Node>,
20
21}
22
23#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct Metadata {
26 pub meta: HashMap<String, String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 #[serde(default)]
29 pub prefix: Option<String>,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 #[serde(default)]
32 pub suffix: Option<String>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 #[serde(default)]
35 pub primary_group: Option<String>,
36}
37
38#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
39#[serde(rename_all = "camelCase")]
40pub struct UserSearchResult {
41 pub unique_id: Uuid,
42 pub results: Vec<Node>,
43}
44
45#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
46#[serde(rename_all = "camelCase")]
47pub struct UsernameUpdateRequest {
48 pub username: String,
49}
50
51#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
52#[serde(rename_all = "camelCase")]
53pub struct PermissionCheckResult {
54 pub result: bool,
55 #[serde(skip_serializing_if = "Option::is_none")]
56 #[serde(default)]
57 pub node: Option<Node>,
58}
59
60#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
61#[serde(rename_all = "camelCase")]
62pub struct TrackMoveRequest {
63 pub track: String,
64}
65
66#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
67#[serde(rename_all = "camelCase")]
68pub struct TrackMoveResponse {
69 pub success: bool,
70 pub status: String,
71 pub group_from: String,
72 pub group_to: String,
73}