package models import "code.gitea.io/gitea/modules/timeutil" type DatasetReference struct { ID int64 `xorm:"pk autoincr"` RepoID int64 `xorm:"INDEX unique(repo_dataset)"` DatasetID int64 `xorm:"INDEX unique(repo_dataset)"` CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` } func GetDatasetIdsByRepoID(repoID int64) []int64 { var datasets []int64 _ = x.Table("dataset_reference").Where("repo_id=?", repoID). Cols("dataset_reference.dataset_id").Find(&datasets) return datasets } func DeleteDatasetIdsByRepoID(repoID int64, datasetIds []int64) error { if len(datasetIds) == 0 { return nil } _, err := x.In("dataset_id", datasetIds).And("repo_id", repoID).Delete(new(DatasetReference)) return err } func NewDatasetIdsByRepoID(repoID int64, datasetIds []int64) error { var datasetReference []DatasetReference for _, datasetId := range datasetIds { datasetReference = append(datasetReference, DatasetReference{ DatasetID: datasetId, RepoID: repoID, }) } _, err := x.Insert(datasetReference) return err } func DeleteReferenceDatasetByDatasetID(datasetId int64) error { _, err := x.Delete(&DatasetReference{DatasetID: datasetId}) return err }