/*
 * user.h
 *
 *  Created on: Dec 14, 2010
 *      Author: blackpanther
 */

#ifndef USER_H_
#define USER_H_

#include "configuration.h"

#include "persistentItem.h"

#define ID      0
#define ROLE_ID 1

typedef struct _user User;

typedef struct _group_array {
	int group[MAX_ITEM][2];
	int size;
} GroupArray;

struct _user {
	PersistentItem* id;
	char* login;
	char* password;
	GroupArray groups;

	/* add group to user*/
	void (*addGroup)(User*, int, int);
	/* setter for db_id */
	void (* setId)(User*, unsigned int);
	/* getter for db_id */
	unsigned int (* getId)(User*);
	/* setter for login */
	void (* setLogin)(User*, char*);
	/* getter for login */
	char* (* getLogin)(User*);
	/* setter for password */
	void (* setPassword)(User*, char*);
	/* getter for password */
	char* (* getPassword)(User*);
	/* toString */
	char* (* display)(User *);
};

User* createUserSkeleton();

void destroyUser(User*);

#endif /* USER_H_ */
