package model

// TownBuilding represents a persistent structure placed in a town.
type TownBuilding struct {
	ID           int64   `json:"id"`
	TownID       int64   `json:"townId"`
	BuildingType string  `json:"buildingType"` // house.quest_giver, house.merchant, house.healer, decoration.*
	OffsetX      float64 `json:"offsetX"`
	OffsetY      float64 `json:"offsetY"`
	Facing       string  `json:"facing"` // north, south, east, west
	FootprintW   float64 `json:"footprintW"`
	FootprintH   float64 `json:"footprintH"`
}

// BuildingView is the frontend-friendly view with absolute world coordinates.
type BuildingView struct {
	ID           int64   `json:"id"`
	BuildingType string  `json:"buildingType"`
	WorldX       float64 `json:"worldX"`
	WorldY       float64 `json:"worldY"`
	Facing       string  `json:"facing"`
	FootprintW   float64 `json:"footprintW"`
	FootprintH   float64 `json:"footprintH"`
}

// BuildingTypeForNPC returns the expected building type for a given NPC type.
func BuildingTypeForNPC(npcType string) string {
	return "house." + npcType
}

// IsHouseBuilding returns true if the building type is a house (not decoration).
func IsHouseBuilding(buildingType string) bool {
	return len(buildingType) > 6 && buildingType[:6] == "house."
}
