27 lines
1.3 KiB
Go
27 lines
1.3 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
type SocialRatingOperation struct {
|
|
ID uint `json:"id" gorm:"primaryKey"`
|
|
TargetUserID uint `json:"targetUserId" gorm:"not null;index"`
|
|
TargetUser User `json:"-" gorm:"foreignKey:TargetUserID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
|
|
ActorUserID *uint `json:"actorUserId,omitempty" gorm:"index"`
|
|
ActorUser *User `json:"-" gorm:"foreignKey:ActorUserID;constraint:OnUpdate:CASCADE,OnDelete:SET NULL"`
|
|
Delta int `json:"delta" gorm:"not null"`
|
|
OperationType string `json:"operationType" gorm:"size:32;not null;index"`
|
|
Reason string `json:"reason,omitempty" gorm:"size:255"`
|
|
Source string `json:"source,omitempty" gorm:"size:64;index"`
|
|
BalanceAfter int `json:"balanceAfter" gorm:"not null"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
}
|
|
|
|
type UserSocialRating struct {
|
|
UserID uint `json:"userId" gorm:"primaryKey"`
|
|
User User `json:"-" gorm:"foreignKey:UserID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
|
|
Score int `json:"score" gorm:"not null;default:0;index"`
|
|
LastOperationID *uint `json:"lastOperationId,omitempty" gorm:"index"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
}
|