-ifndef(KVS_HRL).
-define(KVS_HRL, true).

-define(USR_FEED, users).
-define(PRD_FEED, products).
-define(GRP_FEED, groups).
-define(ENT_FEED, entries).
-define(CMT_FEED, comments).
-define(FEED(Type), case Type of user -> ?USR_FEED; product -> ?PRD_FEED; group -> ?GRP_FEED; entry-> ?ENT_FEED; comment-> ?CMT_FEED;_-> undefined end).

-record(id_seq, {thing, id}).

-define(CONTAINER, id, top, entries_count=0).
-define(ITERATOR(Container, Guard), id, container=Container, feed_id, prev, next, feeds=[], guard=Guard).
-define(ITERATOR(Container), ?ITERATOR(Container, false)).
-define(CONTAINERS, [
    {feed,              record_info(fields, feed)},
    {acl,               record_info(fields, acl)},
    {entry_views,       record_info(fields, entry_views)},
    {user_transaction,  record_info(fields, user_transaction)},
    {user_payment,      record_info(fields, user_payment)} ]).

-record(container, {?CONTAINER}).
-record(iterator,  {?ITERATOR(undefined)}).

-define(CREATE_TAB(T), store_mnesia:create_table(T, record_info(fields, T), [{storage, permanent}]) ).


-endif.