package cassandra

import (
	"github.com/gocql/gocql"
)

// Table 定義資料表模型必須實作的介面
type Table interface {
	TableName() string
}

// PrimaryKey 定義主鍵類型（使用類型約束）
// 注意：Go 1.18+ 才支持類型約束，如果需要兼容舊版本，可以使用 interface{}
type PrimaryKey interface {
	~string | ~int | ~int64 | gocql.UUID | []byte
}

// Order 定義排序順序
type Order int

const (
	ASC  Order = 0
	DESC Order = 1
)

// 將 Order 轉換為 toGocqlX 的 Order
func (o Order) toGocqlX() string {
	if o == DESC {
		return "DESC"
	}
	return "ASC"
}
