Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

46 строки
1.2 KiB

  1. package model
  2. import (
  3. "errors"
  4. "github.com/QuantumNous/new-api/common"
  5. "gorm.io/gorm"
  6. )
  7. // UserAssetGroup binds a platform user to an upstream asset group per channel.
  8. type UserAssetGroup struct {
  9. Id int `json:"id" gorm:"primaryKey"`
  10. UserId int `json:"user_id" gorm:"not null;uniqueIndex:idx_user_asset_group,priority:1"`
  11. ChannelId int `json:"channel_id" gorm:"not null;uniqueIndex:idx_user_asset_group,priority:2"`
  12. GroupId string `json:"group_id" gorm:"type:varchar(255);not null"`
  13. CreatedAt int64 `json:"created_at"`
  14. UpdatedAt int64 `json:"updated_at"`
  15. }
  16. func (UserAssetGroup) TableName() string {
  17. return "user_asset_groups"
  18. }
  19. func GetUserAssetGroup(userId int, channelId int) (*UserAssetGroup, error) {
  20. var binding UserAssetGroup
  21. err := DB.Where("user_id = ? AND channel_id = ?", userId, channelId).First(&binding).Error
  22. if errors.Is(err, gorm.ErrRecordNotFound) {
  23. return nil, nil
  24. }
  25. if err != nil {
  26. return nil, err
  27. }
  28. return &binding, nil
  29. }
  30. func CreateUserAssetGroup(userId int, channelId int, groupId string) error {
  31. now := common.GetTimestamp()
  32. return DB.Create(&UserAssetGroup{
  33. UserId: userId,
  34. ChannelId: channelId,
  35. GroupId: groupId,
  36. CreatedAt: now,
  37. UpdatedAt: now,
  38. }).Error
  39. }