package groups

// Entity is the interface for entities that can be part of groups
// This interface is implemented by Player, NPC, and Bot types
type Entity interface {
	// Basic entity information
	GetID() int32
	GetName() string
	GetLevel() int8
	GetClass() int8
	GetRace() int8
	
	// Health and power
	GetHP() int32
	GetTotalHP() int32
	GetPower() int32
	GetTotalPower() int32
	
	// Entity type checks
	IsPlayer() bool
	IsNPC() bool
	IsBot() bool
	IsDead() bool
	
	// Zone information
	GetZone() Zone
	
	// Distance calculation
	GetDistance(other Entity) float32
}

// Zone interface for zone information
type Zone interface {
	GetZoneID() int32
	GetInstanceID() int32
	GetZoneName() string
}

// Spawn interface for distance calculations
type Spawn interface {
	// Minimal spawn interface for distance calculations
}