FIX #81 (partie d'update de la BD, voir euphorik_bd_admin:patch(2))
[euphorik.git] / modules / include / euphorik_bd.hrl
index 8c16c70..0b04c4b 100755 (executable)
-% Copyright 2008 Grégory Burri\r
-%\r
-% This file is part of Euphorik.\r
-%\r
-% Euphorik is free software: you can redistribute it and/or modify\r
-% it under the terms of the GNU General Public License as published by\r
-% the Free Software Foundation, either version 3 of the License, or\r
-% (at your option) any later version.\r
-%\r
-% Euphorik is distributed in the hope that it will be useful,\r
-% but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-% GNU General Public License for more details.\r
-%\r
-% You should have received a copy of the GNU General Public License\r
-% along with Euphorik.  If not, see <http://www.gnu.org/licenses/>.\r
-%\r
-% @author GBurri\r
+% coding: utf-8
+% Copyright 2008 Grégory Burri
+%
+% This file is part of Euphorik.
+%
+% Euphorik is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Euphorik is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Euphorik.  If not, see <http://www.gnu.org/licenses/>.
+%
+% @author GBurri
 
 
-% Pour générer des id\r
--record(counter,\r
-   {\r
-      key,\r
-      value\r
-   }).\r
-   \r
-\r
-% décrit un enregistrement d'un message\r
+% Version de la BD
+-define(VERSION_BD, 3).
+-define(TABLES, [counter, proprietes, minichat, reponse_minichat, user, ip_table, troll]).
+
+
+% Pour générer des id
+-record(counter,
+   {
+      key,
+      value
+   }).
+   
+   
+% Mémorse toutes les propriétés, entre autre la version des données
+-record(proprietes,
+   {
+      nom,
+      valeur
+   }).
+
+
+% Contient tous les textes que peut envoyer le serveur vers client.
+-record(texte,
+   {
+      id,
+      fr
+   }).
+
+
+% décrit un enregistrement d'un message
 -record(minichat,
-   {\r
-      id, % integer\r
+   {
+      id, % integer
       auteur_id, % -> #user.id
       date, % erlang:now()
-      pseudo, % chaine de caractère
-      contenu % chaine de caractère
-   }).\r
+      pseudo, % chaine de caractère
+      contenu, % chaine de caractère
+      racine_id = undefined % la racine, par défaut correspond à l'id du message
+   }).
    
-   \r
-% type bag\r
-% 'repondant' repond à 'cible'\r
--record(reponse_minichat,\r
-   {\r
-      repondant, % -> #minichat.id\r
-      cible % -> #minichat.id\r
-   }). \r
+   
+% type bag
+% 'repondant' repond à 'cible'
+-record(reponse_minichat,
+   {
+      repondant, % -> #minichat.id
+      cible % -> #minichat.id
+   }). 
+
 
-\r
--record(user,\r
-   {\r
-      id,\r
-      cookie, % string()\r
+-record(profile, % attention : pas une table !
+   {
       pseudo = [], % string()
-      login = [], % string()
-      password = [], % string() (md5)
-      email = [], % string()\r
-      date_creation, % erlang:now()\r
-      date_derniere_connexion, % erlang:now(), est mis à jour lors de n'importe quelle activitée (envoie de message par exemple)\r
+      email = [], % string()
       css = [], % string()
       nick_format = nick, %atom(), peut valoir 'nick', 'login' ou 'nick_login'
-      indice_flood = 0, % integer() est incrémenté lorsque l'utilisateur envoie trop rapidement des messages.
-      page_principale = 1, % la page de la conversation principale
-      conversations = [], % [{integer(), integer()}], la liste des messages correspondant au conversation ainsi que la page affichée
+      view_times = true,
+      view_tooltips = true,
+      ostentatious_master = light, % peut valoir invisible, light ou heavy. seulement pour ek_master
+      chat_order = reverse, % peut valoir chrono ou reverse
+      conversations = [] % [{integer(), bool}], la liste des messages correspondant au conversation {racine, reduite?}
+   }).\r
+   \r
+   
+-record(user,
+   {
+      id,
+      cookie, % string()
+      login = [], % string()
+      password = [], % string() (md5)
+      profile = #profile{},
+      date_creation, % erlang:now()
+      date_derniere_connexion, % erlang:now(), est mis à jour lors de n'importe quelle activitée (envoie de message par exemple)
+      indice_flood = 0, % integer() est incrémenté lorsque l'utilisateur envoie trop rapidement des messages.
       ek_master = false,
-      last_ip = undefined % integer(), undefined si inconnu\r
+      last_ip = undefined % integer(), undefined si inconnu
    }).
 
 
       ban = undefined, % la date du dernier bannissement
       ban_duration = 0, % le temps de ban en minute
       nb_try_register = 0,
-      nb_try_login = 0, % pour l'instant pas utilisé
+      nb_try_login = 0, % pour l'instant pas utilisé
       date_last_try_register,
-      date_last_try_login % pour l'instant pas utilisé
+      date_last_try_login % pour l'instant pas utilisé
    }).
    
    
 -record(troll,
    {
       id,
-      id_user,
+      id_user,\r
+      id_minichat = undefined, % l'id du message associé
       date_create, % erlang:now()
-      date_post = undefined, % date à laquelle le troll est affiché sur la page principale. undefined initialement puis erlang:now() quand affiché
-      content % chaine de caractère
+      date_post = undefined, % date à laquelle le troll est affiché sur la page principale. undefined initialement puis erlang:now() quand affiché
+      content % chaine de caractère
    }).
    
\ No newline at end of file