<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping package="com.middleware_company.torpedo.auction.hibernate">

        <class name="Auction" table="Auction">
            <id name="id" column="auction_id" type="string" unsaved-value="any">
                <generator class="assigned"/>
            </id>
            <property name="lowPrice" column="low_price" type="float"/>
            <many-to-one name="item" class="Item" column="item"/>
            <set name="bids" inverse="true" lazy="true">
                <key column="auction" />
                <one-to-many class="Bid"/>
            </set>
            <many-to-one name="seller" class="User" column="seller"/>
        </class>

        <class name="Bid" table="Bid">
            <id name="id" column="bid_id" type="string" unsaved-value="any">
                <generator class="assigned"/>
            </id>
            <property name="amount" column="amount" type="float"/>
            <property name="maxAmount" column="max_amount" type="float"/>
            <many-to-one name="auction" class="Auction" column="auction"/>
            <many-to-one name="buyer" class="User" column="buyer"/>
        </class>

        <class name="Item" table="Item">
            <id name="id" column="item_id" type="string" unsaved-value="any">
                <generator class="assigned"/>
            </id>
            <property name="itemName" column="item_name" type="string"/>
            <property name="graphicFilename" column="graphic_filename" type="string"/>
            <property name="description" column="description" type="string"/>

        </class>

        <class name="User" table="Auction_User" mutable="false">
            <id name="id" column="user_id" type="string" unsaved-value="any">
                <generator class="assigned"/>
            </id>
            <bag name="bids" inverse="true" lazy="true">
                <key column="buyer" />
                <one-to-many class="Bid"/>
            </bag>
            <bag name="auctions" inverse="true" lazy="true">
                <key column="seller" />
                <one-to-many class="Auction"/>
            </bag>
        </class>

</hibernate-mapping>
