//========= Copyright © 1996-2001, Valve LLC, All rights reserved. ============
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================

#ifndef ITRACKERUSER_H
#define ITRACKERUSER_H
#ifdef _WIN32
#pragma once
#endif

#include "interface.h"

//-----------------------------------------------------------------------------
// Purpose: Interface to accessing information about tracker users
//-----------------------------------------------------------------------------
class ITrackerUser : public IBaseInterface
{
public:
	// returns true if the interface is ready for use
	virtual bool IsValid() = 0;

	// returns the tracker ID of the current user
	virtual int GetTrackerID() = 0;

	// returns information about a user
	// information may not be known about some users, "" will be returned
	virtual const char *GetUserName(int trackerID) = 0;
	virtual const char *GetFirstName(int trackerID) = 0;
	virtual const char *GetLastName(int trackerID) = 0;
	virtual const char *GetEmail(int trackerID) = 0;

	// returns true if friendID is a friend of the current user 
	// ie. the current is authorized to see when the friend is online
	virtual bool IsFriend(int friendID) = 0;

	// requests authorization from a user
	virtual void RequestAuthorizationFromUser(int potentialFriendID) = 0;
};

#define TRACKERUSER_INTERFACE_VERSION "TrackerUser001"


#endif // ITRACKERUSER_H
