my_teams
events_structures.h
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2024
3 ** myteams
4 ** File description:
5 ** events_structures
6 */
7 
8 #ifndef EVENTS_STRUCTURES_H
9  #define EVENTS_STRUCTURES_H
10 
11  #define UUID_LENGTH 37
12  #define MAX_NAME_LENGTH 32
13  #define MAX_DESCRIPTION_LENGTH 255
14  #define MAX_BODY_LENGTH 512
15 
16  #include <stdbool.h>
17  #include <time.h>
18 
19 // No Struct request for EVT_PING and EVT_LIST_USERS
20 // No Struct response for EVT_PING and EVT_SEND
21 
25 typedef struct {
26  char uuid[UUID_LENGTH];
27  char name[MAX_NAME_LENGTH];
28 } user_t;
29 
33 typedef struct {
34  char uuid[UUID_LENGTH];
35  char name[MAX_NAME_LENGTH];
36  bool is_logged;
37 } user_state_t;
38 
43 typedef struct {
44  char uuid[UUID_LENGTH];
45  char name[MAX_NAME_LENGTH];
46  char description[MAX_DESCRIPTION_LENGTH];
47 } team_t;
48 
52 typedef struct {
53  char sender_uuid[UUID_LENGTH];
54  char receiver_uuid[UUID_LENGTH];
55  char body[MAX_BODY_LENGTH];
56  time_t timestamp;
58 
64 typedef struct {
65  char user_uuid[UUID_LENGTH];
66  char team_uuid[UUID_LENGTH];
67 } subscribe_t;
68 
72 typedef struct {
73  char user_name[MAX_NAME_LENGTH];
74 } login_t;
75 
82 typedef struct {
83  char uuid[UUID_LENGTH];
84 } team_uuid_t;
85 
90 typedef struct {
91  char sender_uuid[UUID_LENGTH];
92  char receiver_uuid[UUID_LENGTH];
93  char message_body[MAX_BODY_LENGTH];
95 
99 typedef struct {
100  char user_uuid[UUID_LENGTH];
101  char team_uuid[UUID_LENGTH];
102 } unsubscribe_t;
103 
107 typedef struct {
108  char user_uuid[UUID_LENGTH];
109  char team_name[MAX_NAME_LENGTH];
110  char team_description[MAX_DESCRIPTION_LENGTH];
111 } team_create_t;
112 
116 typedef struct {
117  char team_uuid[UUID_LENGTH];
118  char channel_name[MAX_NAME_LENGTH];
119  char channel_description[MAX_DESCRIPTION_LENGTH];
121 
126 typedef struct {
127  char uuid[UUID_LENGTH];
128  char team_uuid[UUID_LENGTH];
129  char name[MAX_NAME_LENGTH];
130  char description[MAX_DESCRIPTION_LENGTH];
131 } channel_t;
132 
136 typedef struct {
137  char channel_uuid[UUID_LENGTH];
138  char user_uuid[UUID_LENGTH];
139  char thread_title[MAX_NAME_LENGTH];
140  char thread_body[MAX_BODY_LENGTH];
142 
147 typedef struct {
148  char uuid[UUID_LENGTH];
149  char user_uuid[UUID_LENGTH];
150  char channel_uuid[UUID_LENGTH];
151  char title[MAX_NAME_LENGTH];
152  char body[MAX_BODY_LENGTH];
153  time_t timestamp;
154 } thread_t;
155 
159 typedef struct {
160  char thread_uuid[UUID_LENGTH];
161  char user_uuid[UUID_LENGTH];
162  char reply_body[MAX_BODY_LENGTH];
164 
168 typedef struct {
169  char user_uuid[UUID_LENGTH];
170  char thread_uuid[UUID_LENGTH];
171  char body[MAX_BODY_LENGTH];
172  time_t timestamp;
173 } reply_t;
174 
178 typedef struct {
179  char team_uuid[UUID_LENGTH];
180  char user_uuid[UUID_LENGTH];
181  char thread_uuid[UUID_LENGTH];
182  char reply_body[MAX_BODY_LENGTH];
183 } reply_ref_t;
184 
185 #endif //EVENTS_STRUCTURES_H
#define MAX_NAME_LENGTH
Definition: events_structures.h:12
#define MAX_BODY_LENGTH
Definition: events_structures.h:14
#define MAX_DESCRIPTION_LENGTH
Definition: events_structures.h:13
#define UUID_LENGTH
Definition: events_structures.h:11
Definition: events_structures.h:116
Definition: events_structures.h:126
Definition: events_structures.h:72
Definition: events_structures.h:52
time_t timestamp
Definition: events_structures.h:56
Definition: events_structures.h:159
Definition: events_structures.h:178
Definition: events_structures.h:168
time_t timestamp
Definition: events_structures.h:172
Definition: events_structures.h:90
Definition: events_structures.h:64
Definition: events_structures.h:107
Definition: events_structures.h:43
Definition: events_structures.h:82
Definition: events_structures.h:136
Definition: events_structures.h:147
time_t timestamp
Definition: events_structures.h:153
Definition: events_structures.h:99
Definition: events_structures.h:33
bool is_logged
Definition: events_structures.h:36
Definition: events_structures.h:25