package genex

import (
	"context"
	"math/big"
	"time"

	"github.com/ethereum/go-ethereum/common"
)

// GetCouponDetail 查询券详情
func (c *Client) GetCouponDetail(tokenId *big.Int) (*CouponDetail, error) {
	// 实际实现：通过 ABI 编码调用 Coupon.getConfig(tokenId)
	// 此处为 SDK 接口骨架
	_ = context.Background()
	return &CouponDetail{
		TokenID:    tokenId,
		FaceValue:  big.NewInt(0),
		CouponType: 0,
		ExpiryDate: time.Now(),
	}, nil
}

// GetCouponHoldings 查询地址持有的券 NFT
func (c *Client) GetCouponHoldings(address common.Address) ([]*CouponHolding, error) {
	// 调用 Coupon.balanceOf + tokenOfOwnerByIndex
	return []*CouponHolding{}, nil
}

// GetBatchInfo 查询批次信息
func (c *Client) GetBatchInfo(batchId *big.Int) (issuer common.Address, startTokenId *big.Int, quantity *big.Int, couponType uint8, err error) {
	// 调用 CouponFactory.getBatchInfo
	return common.Address{}, big.NewInt(0), big.NewInt(0), 0, nil
}
