package db import ( "gitlink.org.cn/cloudream/jcs-pub/client/types" "gorm.io/gorm/clause" ) type UserSpaceDB struct { *DB } func (db *DB) UserSpace() *UserSpaceDB { return &UserSpaceDB{DB: db} } func (db *UserSpaceDB) GetByID(ctx SQLContext, spaceID types.UserSpaceID) (types.UserSpace, error) { var stg types.UserSpace err := ctx.Table("UserSpace").First(&stg, spaceID).Error return stg, err } func (UserSpaceDB) GetAllIDs(ctx SQLContext) ([]types.UserSpaceID, error) { var stgs []types.UserSpaceID err := ctx.Table("UserSpace").Select("UserSpaceID").Find(&stgs).Error return stgs, err } func (db *UserSpaceDB) BatchGetByID(ctx SQLContext, spaceIDs []types.UserSpaceID) ([]types.UserSpace, error) { var stgs []types.UserSpace err := ctx.Table("UserSpace").Find(&stgs, "UserSpaceID IN (?)", spaceIDs).Error return stgs, err } func (db *UserSpaceDB) GetAll(ctx SQLContext) ([]types.UserSpace, error) { var stgs []types.UserSpace err := ctx.Table("UserSpace").Find(&stgs).Error return stgs, err } func (db *UserSpaceDB) BatchGetAllSpaceIDs(ctx SQLContext, start int, count int) ([]types.UserSpaceID, error) { var ret []types.UserSpaceID err := ctx.Table("UserSpace").Select("UserSpaceID").Find(&ret).Limit(count).Offset(start).Error return ret, err } func (db *UserSpaceDB) GetByName(ctx SQLContext, name string) (types.UserSpace, error) { var stg types.UserSpace err := ctx.Table("UserSpace").Where("Name = ?", name).First(&stg).Error return stg, err } func (*UserSpaceDB) Create(ctx SQLContext, space *types.UserSpace) error { return ctx.Table("UserSpace").Create(space).Error } func (*UserSpaceDB) UpdateColumns(ctx SQLContext, space types.UserSpace, columns ...string) error { return ctx.Clauses(clause.OnConflict{ Columns: []clause.Column{{Name: "UserSpaceID"}}, DoUpdates: clause.AssignmentColumns(columns), }).Create(space).Error } func (*UserSpaceDB) DeleteByID(ctx SQLContext, spaceID types.UserSpaceID) error { return ctx.Table("UserSpace").Delete(types.UserSpace{}, "UserSpaceID = ?", spaceID).Error }