package bll

import (
	"context"
	"yx-dataset-server/app/schema"
)

// IDatasetFile DatasetFile业务逻辑接口
type IDatasetFile interface {
	// 查询数据
	Query(ctx context.Context, params schema.DatasetFileQueryParam, opts ...schema.DatasetFileQueryOptions) (*schema.DatasetFileQueryResult, error)
	// 查询指定数据
	Get(ctx context.Context, recordID string, opts ...schema.DatasetFileQueryOptions) (*schema.DatasetFile, error)
	// 创建数据
	Create(ctx context.Context, item schema.DatasetFile) error
	// CreateV2 创建数据（V2版本，直接接收本地文件并上传到RagFlow）
	CreateV2(ctx context.Context, param schema.UpdateFileParam) error
	// BatchCreate 批量创建数据
	BatchCreate(ctx context.Context, files schema.DatasetFiles) error
	// 更新数据
	Update(ctx context.Context, recordID string, item schema.DatasetFile) error
	// 删除数据
	Delete(ctx context.Context, recordID string) error
	// BatchDelete 批量删除
	BatchDelete(ctx context.Context, fileIDs []string) error
	// 更新状态
	UpdateStatus(ctx context.Context, recordID string, status int) error
	// UpdateEnabled 更新启用状态
	UpdateEnabled(ctx context.Context, recordID string, status bool) error
	// BatchCreate2 批量上传多个文件到指定知识库
	BatchCreateV2(ctx context.Context, datasetId string, files []schema.UpdateFileParam) error
}
