package feishu

// CellValue represents a cell value, supports multiple types
// Can be: string (text), float64 (number), LinkCell (link)
type CellValue interface{}

// LinkCell represents a link type cell
type LinkCell struct {
	Type string `json:"type"`
	Text string `json:"text"`
	Link string `json:"link"`
}

// TextCell creates a text type cell - returns string directly
func TextCell(text string) CellValue {
	return text
}

// NumberCell creates a number type cell - returns number directly
func NumberCell(number float64) CellValue {
	return number
}

// NewLinkCell creates a link type cell
func NewLinkCell(text, url string) CellValue {
	return LinkCell{
		Type: "url",
		Text: text,
		Link: url,
	}
}
