package members

import (
	"fmt"
)

type Member struct {
	OrgId  string `bson:"orgId"`
	UserId string `bson:"userId"`
	Role   Role   `bson:"role"`
}

type Role uint

const (
	NotMember Role = iota
	RoleMember
	RoleOwner
	RoleAdmin
)

func (r Role) IsPrivileged() bool {
	return r == RoleOwner || r == RoleAdmin
}

func (r Role) Format(s fmt.State, verb rune) {
	switch r {
	case RoleOwner:
		fmt.Fprint(s, "owner")
	case RoleAdmin:
		fmt.Fprint(s, "admin")
	case RoleMember:
		fmt.Fprint(s, "member")
	}
}