package exporter

import "context"

// DataSource 导出场景数据源接口。
// 场景实现只负责统计、表头和按 offset/limit 拉取数据，分片调度由导出框架统一处理。
type DataSource interface {
	Scene() string
	Count(ctx context.Context, params ExportParams) (int, error)
	Headers(ctx context.Context, params ExportParams) ([]string, error)
	Fetch(ctx context.Context, params ExportParams, offset, limit int) ([][]string, error)
}

// ExportParams 导出任务执行参数。
// Filters 来自任务 query_json.filters，权限字段来自任务创建时的快照。
type ExportParams struct {
	Filters         map[string]any
	ScopeShopIDs    []uint
	UserType        int
	CreatorShopID   *uint
	ResolvedHeaders []string
}
