package schema

import "time"

// Dataset Dataset对象
type Dataset struct {
	RecordID    string       `json:"record_id"`    // 记录id
	OrgId       string       `json:"org_id"`       // 组织id
	OrgName     string       `json:"org_name"`     // 知识库名称
	Name        string       `json:"name"`         // 名称
	Status      bool         `json:"status"`       // 状态
	FileCount   int          `json:"file_count"`   // 文件数量
	Files       DatasetFiles `json:"files"`        // 文件列表
	RagDataId   string       `json:"rag_data_id"`  // ragFlow知识库id
	CreatorId   string       `json:"creator_id"`   // 创建人id
	CreatorName string       `json:"creator_name"` // 创建人名称
	CreatedAt   time.Time    `json:"created_at"`   // 创建时间
	Sequence    int          `json:"sequence"`     // 排序值
}

// DatasetQueryParam 查询条件
type DatasetQueryParam struct {
	OrgId     string
	LikeName  string
	RecordIds []string
}

// DatasetQueryOptions Dataset对象查询可选参数项
type DatasetQueryOptions struct {
	PageParam *PaginationParam // 分页参数
}

type Datasets []*Dataset

// DatasetQueryResult Dataset对象查询结果
type DatasetQueryResult struct {
	Data       Datasets
	PageResult *PaginationResult
}

func (a Datasets) ToRecordIds() []string {
	recordIds := make([]string, len(a))
	for k, v := range a {
		recordIds[k] = v.RecordID
	}
	return recordIds
}

func (a Datasets) ToRagDataIds() []string {
	Ids := make([]string, len(a))
	for k, v := range a {
		Ids[k] = v.RagDataId
	}
	return Ids
}

// FillCreator 填充创建者信息
func (a Datasets) FillCreator(users Users) {
	for _, o := range a {
		for _, u := range users {
			if o.CreatorId == u.RecordID {
				o.CreatorName = u.RealName
				continue
			}
		}
	}
}
