#include "reference.h"
#include "baseadaptor.h"

Reference::Reference()
        : Field( 0, QString(), (QVariant::Type)qMetaTypeId<Reference>() )
{

}

Reference::Reference( const QString &fieldName, const Table &target,
                      DAL::ConstraintAction onDelete, DAL::ConstraintAction onUpdate)
        : Field( target.db()->db(), fieldName,  (QVariant::Type)qMetaTypeId<Reference>() )
{
    if( target.hasColumn( "ID" ) )
        setProperty("target", target["ID"]);
    setProperty("on_delete", onDelete);
    setProperty("on_update", onUpdate);
}

Reference::Reference( const QString &fieldName, const Field &target,
                      DAL::ConstraintAction onDelete, DAL::ConstraintAction onUpdate)
        : Field( target.db(), fieldName,  (QVariant::Type)qMetaTypeId<Reference>() )
{
    setProperty("target", target );
    setProperty("on_delete", onDelete);
    setProperty("on_update", onUpdate);
}

Field Reference::target() const
{
    return property("target").value<Field>();
}

