<?xml version="1.0"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss// DTD JBOSSCMP-JDBC 3.0//EN" "http://jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd">
<jbosscmp-jdbc>

     <defaults>
        <datasource>java:/rubis</datasource>
        <datasource-mapping>mySQL</datasource-mapping>
        <create-table>false</create-table>
        <remove-table>false</remove-table>
    </defaults>

    <enterprise-beans> 

        <entity>
            <ejb-name>IDManager</ejb-name>
            <table-name>ids</table-name>
            <cmp-field>
                <field-name>id</field-name>
               <column-name>id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>categoryCount</field-name>
               <column-name>category</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>regionCount</field-name>
               <column-name>region</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>userCount</field-name>
               <column-name>users</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>itemCount</field-name>
               <column-name>item</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>commentCount</field-name>
               <column-name>comment</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>bidCount</field-name>
               <column-name>bid</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>buyNowCount</field-name>
               <column-name>buyNow</column-name>
            </cmp-field>
        </entity>

        <entity>
            <ejb-name>Category</ejb-name>
            <table-name>categories</table-name>
            <cmp-field>
                <field-name>name</field-name>
               <column-name>name</column-name>
            </cmp-field>
            <cmp-field>
                 <field-name>id</field-name>
               <column-name>id</column-name>
            </cmp-field>
            
            <query>
                <query-method>
                    <method-name>findByName</method-name>
                    <method-params>
                       <method-param>java.lang.String</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[name={0}]]></where>
               </declared-sql>
            </query>
            
            <query>
                <query-method>
                    <method-name>findAllCategories</method-name>
                    <method-params></method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>
               </declared-sql>
            </query>
       </entity>

        <entity>
            <ejb-name>Region</ejb-name>
            <table-name>regions</table-name>
            <cmp-field>
                <field-name>id</field-name>
               <column-name>id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>name</field-name>
               <column-name>name</column-name>
            </cmp-field>
            
            <query>
                <query-method>
                    <method-name>findByName</method-name>
                    <method-params>
                       <method-param>java.lang.String</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[name={0}]]></where>
               </declared-sql>
            </query>
            
            <query>
                <query-method>
                    <method-name>findAllRegions</method-name>
                    <method-params></method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>
               </declared-sql>
            </query>
        </entity>

        <entity>
            <ejb-name>User</ejb-name>
            <table-name>users</table-name>
            <cmp-field>
                <field-name>id</field-name>
                <column-name>id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>firstName</field-name>
               <column-name>firstname</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>lastName</field-name>
                <column-name>lastname</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>nickName</field-name>
                <column-name>nickname</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>password</field-name>
                <column-name>password</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>email</field-name>
                <column-name>email</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>rating</field-name>
                <column-name>rating</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>balance</field-name>
                <column-name>balance</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>creationDate</field-name>
                <column-name>creation_date</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>regionId</field-name>
                <column-name>region</column-name>
            </cmp-field>
            
            <query>
                <query-method>
                    <method-name>findByNickName</method-name>
                    <method-params>
                       <method-param>java.lang.String</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[nickname={0}]]></where>
               </declared-sql>
            </query>
            
            <query>
                <query-method>
                    <method-name>findAllUsers</method-name>
                    <method-params></method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>
               </declared-sql>
            </query>
        </entity>

        <entity>
            <ejb-name>Item</ejb-name>
            <table-name>items</table-name>
            <cmp-field>
                <field-name>id</field-name>
                <column-name>id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>name</field-name>
                <column-name>name</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>description</field-name>
                <column-name>description</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>initialPrice</field-name>
                <column-name>initial_price</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>quantity</field-name>
                <column-name>quantity</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>reservePrice</field-name>
                <column-name>reserve_price</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>buyNow</field-name>
                <column-name>buy_now</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>nbOfBids</field-name>
                <column-name>nb_of_bids</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>maxBid</field-name>
                <column-name>max_bid</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>startDate</field-name>
                <column-name>start_date</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>endDate</field-name>
                <column-name>end_date</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>sellerId</field-name>
                <column-name>seller</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>categoryId</field-name>
                <column-name>category</column-name>
            </cmp-field>
            
            <query>
                <query-method>
                    <method-name>findBySeller</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[seller={0}]]></where>
               </declared-sql>
            </query>
            <query>
                <query-method>
                    <method-name>findByCategory</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                 <where><![CDATA[category={0}]]></where>
               </declared-sql>
            </query>             
            <query>
                <query-method>
                    <method-name>findCurrentByCategory</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[category={0} AND end_date>=NOW()]]></where>
               </declared-sql>
             </query>
             <query>
               <query-method>
                    <method-name>findUserCurrentSellings</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>   
                 <where><![CDATA[items.seller={0} AND items.end_date>=NOW()]]></where>
               </declared-sql>
              </query> 
              <query> 
              <query-method>
                    <method-name>findUserPastSellings</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>   
                 <where><![CDATA[items.seller={0} AND TO_DAYS(NOW()) - TO_DAYS(items.end_date) <= 30]]></where>
               </declared-sql>
              </query>      
            <query>
                <query-method>
                    <method-name>findAllItems</method-name>
                    <method-params></method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>
               </declared-sql>
            </query>
        </entity>

        <entity>
            <ejb-name>OldItem</ejb-name>
            <table-name>old_items</table-name>
            <cmp-field>
                <field-name>id</field-name>
                <column-name>id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>name</field-name>
                <column-name>name</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>description</field-name>
                <column-name>description</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>initialPrice</field-name>
                <column-name>initial_price</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>quantity</field-name>
                <column-name>quantity</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>reservePrice</field-name>
                <column-name>reserve_price</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>buyNow</field-name>
                <column-name>buy_now</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>nbOfBids</field-name>
                <column-name>nb_of_bids</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>maxBid</field-name>
                <column-name>max_bid</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>startDate</field-name>
                <column-name>start_date</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>endDate</field-name>
                <column-name>end_date</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>sellerId</field-name>
                <column-name>seller</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>categoryId</field-name>
                <column-name>category</column-name>
            </cmp-field>
            
            <query>
                <query-method>
                    <method-name>findBySeller</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[seller={0}]]></where>
               </declared-sql>
            </query>
            <query>
                <query-method>
                    <method-name>findByCategory</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[category={0}]]></where>
               </declared-sql>
              </query>
              <query>
                <query-method>
                    <method-name>findCurrentByCategory</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[category={0} AND end_date>=NOW()]]></where>
               </declared-sql>
              </query>
              <query>
               <query-method>
                    <method-name>findUserCurrentSellings</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>   
                 <where><![CDATA[seller={0} AND end_date>=NOW()]]></where>
               </declared-sql>
              </query>
              <query>  
              <query-method>
                    <method-name>findUserPastSellings</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>   
                 <where><![CDATA[seller={0} AND TO_DAYS(NOW()) - TO_DAYS(end_date) <= 30]]></where>
               </declared-sql>
              </query>      
            <query>
                <query-method>
                    <method-name>findAllOldItems</method-name>
                    <method-params></method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>
               </declared-sql>
            </query>
        </entity>

        <entity>
            <ejb-name>Bid</ejb-name>
            <table-name>bids</table-name>
            <cmp-field>
                <field-name>id</field-name>
                <column-name>id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>userId</field-name>
                <column-name>user_id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>itemId</field-name>
                <column-name>item_id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>qty</field-name>
                <column-name>qty</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>bid</field-name>
                <column-name>bid</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>maxBid</field-name>
                <column-name>max_bid</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>date</field-name>
                <column-name>date</column-name>
            </cmp-field>
            <query>
                <query-method>
                    <method-name>findByItem</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[item_id={0}]]></where>
               </declared-sql>
              </query>
              <query>
                <query-method>
                    <method-name>findByUser</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[user_id={0}]]></where>
               </declared-sql>
              </query>
            <query>
                <query-method>
                    <method-name>findAllBids</method-name>
                    <method-params></method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>
               </declared-sql>
            </query>
        </entity>

        <entity>
            <ejb-name>Comment</ejb-name>
            <table-name>comments</table-name>
            <cmp-field>
                <field-name>id</field-name>
                <column-name>id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>fromUserId</field-name>
                <column-name>from_user_id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>toUserId</field-name>
                <column-name>to_user_id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>itemId</field-name>
                <column-name>item_id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>rating</field-name>
                <column-name>rating</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>date</field-name>
                <column-name>date</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>comment</field-name>
                <column-name>comment</column-name>
            </cmp-field>
            <query>
                <query-method>
                    <method-name>findByItem</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[item_id={0}]]></where>
               </declared-sql>
              </query>
              <query>
                <query-method>
                    <method-name>findByFromUser</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[from_user_id={0}]]></where>
               </declared-sql>
              </query>
              <query>
                <query-method>
                    <method-name>findByToUser</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[to_user_id={0}]]></where>
               </declared-sql>
              </query>              
            <query>
                <query-method>
                    <method-name>findAllComments</method-name>
                    <method-params></method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>
               </declared-sql>
            </query>
        </entity>

        <entity>
            <ejb-name>BuyNow</ejb-name>
            <table-name>buy_now</table-name>
            <cmp-field>
                <field-name>id</field-name>
                <column-name>id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>buyerId</field-name>
                <column-name>buyer_id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>itemId</field-name>
                <column-name>item_id</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>qty</field-name>
                <column-name>qty</column-name>
            </cmp-field>
            <cmp-field>
                <field-name>date</field-name>
                <column-name>date</column-name>
            </cmp-field>
            <query>
                <query-method>
                    <method-name>findByItem</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[item_id={0}]]></where>
               </declared-sql>
              </query>
              <query>
                <query-method>
                    <method-name>findByUser</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[user_id={0}]]></where>
               </declared-sql>
              </query>
              <query>
                <query-method>
                    <method-name>findUserBuyNow</method-name>
                    <method-params>
                       <method-param>java.lang.Integer</method-param>
                    </method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>                 
                <where><![CDATA[buyer_id={0} AND TO_DAYS(NOW()) - TO_DAYS(buy_now.date)<=30]]></where>
               </declared-sql>
              </query>
            <query>
                <query-method>
                    <method-name>findAllBuyNows</method-name>
                    <method-params></method-params>
               </query-method>
              <declared-sql>
                 <select>
                   <distinct></distinct>
                 </select>
               </declared-sql>
            </query>
        </entity>

     </enterprise-beans>

</jbosscmp-jdbc>