role.go 964 字节
package domain

import "time"

const (
	RoleTypeCommon     int = 0 // 角色类型-普通角色
	RoleTypeSystem     int = 1 // 角色类型-系统预制角色HR-BP(不可删除、编辑)
	RoleTypeSuperAdmin int = 2 // 角色类型-系统预制超级管理员(不可删除、编辑)
)

type Role struct {
	Id          int64      `json:"id,string"`
	Name        string     `json:"name"`
	Type        int        `json:"type" pg:",use_zero"`
	Description string     `json:"description"`
	CompanyId   int64      `json:"companyId,string"`
	CreatedAt   time.Time  `json:"createdAt"`
	UpdatedAt   time.Time  `json:"updatedAt"`
	DeletedAt   *time.Time `json:"deletedAt"`
}

type RoleRepository interface {
	Insert(role *Role) (*Role, error)
	Remove(role *Role) (*Role, error)
	FindOne(queryOptions map[string]interface{}) (*Role, error)
	Find(queryOptions map[string]interface{}) (int64, []*Role, error)
	Count(queryOptions map[string]interface{}) (int64, error)
}