package repository import ( "blockchain/internal/domain/entity" "context" ) type DataSourceRepository interface { GetSymbols(ctx context.Context) ([]*entity.Symbol, error) Downloader } type Downloader interface { // FetchHistoryKline 抓歷史 K 線資料 FetchHistoryKline(ctx context.Context, param QueryKline) ([]*entity.Kline, error) SaveHistoryKline(ctx context.Context, data []*entity.Kline) error GetKline(ctx context.Context, param QueryKline) ([]entity.Kline, error) } type QueryKline struct { Symbol string Interval string StartTime int64 EndTime int64 }