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