<?xml version="1.0" encoding="iso-8859-1"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
   <datasources>
      <primarytable name="usr" realname="community_users" primarykey="id" />
   </datasources>
   <record>
      <property name="id" fieldname="id" datatype="autoincrement"/>
       
      <property name="login" fieldname="login"
          required="yes" datatype="string"  maxlength="50" />

      <property name="password" fieldname="password" datatype="string" required="yes"
                maxlength="120" selectpattern="%s" updatepattern="" insertpattern="%s" />
      
      <property name="status" fieldname="status" datatype="integer" required="yes"/>
      <!-- status :
           -2 deleted
           -1 deactivate
           0 new user, invalid account
           1 valid user
           2 valid, but email changed. awaiting for confirmation
           3 valid, but password changed. awaiting for confirmation
           -->
      <property name="email" fieldname="email" datatype="string" required="yes" maxlength="255" />
      <property name="nickname" fieldname="nickname" datatype="string" maxlength="50" />
      <property name="keyactivate" fieldname="keyactivate"  datatype="string" maxlength="50" />
      <property name="request_date" fieldname="request_date" datatype="datetime" />
      <property name="create_date" fieldname="create_date" datatype="datetime"
                insertpattern="now()" updatepattern=""/>
   </record>
   <factory>
     <method name="getByLoginPassword" type="selectfirst">
         <parameter name="login" />
         <parameter name="password" />

         <conditions>
             <eq property="login" expr="$login" />
             <eq property="password" expr="$password" />
         </conditions>
     </method>

     <method name="getByLogin" type="selectfirst">
         <parameter name="login" />

         <conditions>
             <eq property="login" expr="$login" />
         </conditions>
     </method>

     <method name="verifyNickname" type="selectfirst">
         <parameter name="login" />
         <parameter name="nickname" />
         <conditions>
             <neq property="login" expr="$login" />
             <eq property="nickname" expr="$nickname" />
         </conditions>
     </method>
     
     <method name="updatePassword" type="update">
         <parameter name="login" />
         <parameter name="password" />

         <values>
             <value property="password" expr="$password"/>
         </values>
         <conditions>
             <eq property="login" expr="$login" />
         </conditions>
     </method>

     <method name="deleteByLogin" type="delete">
         <parameter name="login" />
         <conditions>
             <eq property="login" expr="$login" />
         </conditions>
     </method>

     <method name="findByLogin" type="select">
         <parameter name="pattern" />
         <conditions>
             <like property="login" expr="$pattern" />
         </conditions>
         <order>
             <orderitem property="login" way="asc" />
          </order>
     </method>
     <method name="findAll" type="select">
         <order>
             <orderitem property="login" way="asc" />
         </order>
     </method>
   </factory>
</dao>
