1a12872d5a19d223a4039f19b4548c2035855676
[euphorik.git] / modules / include / euphorik_bd.hrl
1 % Copyright 2008 Grégory Burri
2 %
3 % This file is part of Euphorik.
4 %
5 % Euphorik is free software: you can redistribute it and/or modify
6 % it under the terms of the GNU General Public License as published by
7 % the Free Software Foundation, either version 3 of the License, or
8 % (at your option) any later version.
9 %
10 % Euphorik is distributed in the hope that it will be useful,
11 % but WITHOUT ANY WARRANTY; without even the implied warranty of
12 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 % GNU General Public License for more details.
14 %
15 % You should have received a copy of the GNU General Public License
16 % along with Euphorik.  If not, see <http://www.gnu.org/licenses/>.
17 %
18 % @author GBurri
19
20
21 % Version de la BD
22 -define(VERSION_BD, 2).
23
24
25 % Pour générer des id
26 -record(counter,
27    {
28       key,
29       value
30    }).
31    
32    
33 % Mémorse toutes les propriétés, entre autre la version des données
34 -record(proprietes,
35    {
36       nom,
37       valeur
38    }).
39
40
41 % décrit un enregistrement d'un message
42 -record(minichat,
43    {
44       id, % integer
45       auteur_id, % -> #user.id
46       date, % erlang:now()
47       pseudo, % chaine de caractère
48       contenu, % chaine de caractère
49       troll_id = undefined, % l'id du troll associé correspondant
50       racine_id = undefined % la racine, par défaut correspond à l'id du message
51    }).
52    
53    
54 % type bag
55 % 'repondant' repond à 'cible'
56 -record(reponse_minichat,
57    {
58       repondant, % -> #minichat.id
59       cible % -> #minichat.id
60    }). 
61
62
63 -record(user,
64    {
65       id,
66       cookie, % string()
67       pseudo = [], % string()
68       login = [], % string()
69       password = [], % string() (md5)
70       email = [], % string()
71       date_creation, % erlang:now()
72       date_derniere_connexion, % erlang:now(), est mis à jour lors de n'importe quelle activitée (envoie de message par exemple)
73       css = [], % string()
74       nick_format = nick, %atom(), peut valoir 'nick', 'login' ou 'nick_login'
75       view_times = true,
76       view_tooltips = true,
77       ostentatious_master = light, % peut valoir invisible, light ou heavy. seulement pour ek_master
78       message_order = reverse, % can be normal or reverse
79       indice_flood = 0, % integer() est incrémenté lorsque l'utilisateur envoie trop rapidement des messages.
80       conversations = [], % [{integer(), bool}], la liste des messages correspondant au conversation {racine, reduite?}
81       ek_master = false,
82       last_ip = undefined % integer(), undefined si inconnu
83    }).
84
85
86 % identificateur : (ip)
87 -record(ip_table,
88    {
89       ip, % {integer(), integer(), integer(), integer()}
90       ban = undefined, % la date du dernier bannissement
91       ban_duration = 0, % le temps de ban en minute
92       nb_try_register = 0,
93       nb_try_login = 0, % pour l'instant pas utilisé
94       date_last_try_register,
95       date_last_try_login % pour l'instant pas utilisé
96    }).
97    
98    
99 -record(troll,
100    {
101       id,
102       id_user,
103       date_create, % erlang:now()
104       date_post = undefined, % date à laquelle le troll est affiché sur la page principale. undefined initialement puis erlang:now() quand affiché
105       content % chaine de caractère
106    }).
107