package models import ( "git.sch9.ru/new_gate/ms-auth/pkg/utils" ) type Role int32 const ( RoleSpectator Role = 0 RoleParticipant Role = 1 RoleModerator Role = 2 RoleAdmin Role = 3 ) func (role Role) IsAdmin() bool { return role == RoleAdmin } func (role Role) IsModerator() bool { return role == RoleModerator } func (role Role) IsParticipant() bool { return role == RoleParticipant } func (role Role) IsSpectator() bool { return role == RoleSpectator } func (role Role) AtLeast(other Role) bool { return role >= other } func (role Role) AtMost(other Role) bool { return role <= other } func (role Role) Valid() error { switch role { case RoleSpectator, RoleParticipant, RoleModerator, RoleAdmin: return nil } return utils.ErrBadRole }