data

package
v0.0.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 23, 2025 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConvertTimeFromGorm

func ConvertTimeFromGorm(t gorm.DeletedAt) lang.Time

ConvertTimeFromGorm ...

func ConvertTimeToGorm

func ConvertTimeToGorm(t lang.Time) gorm.DeletedAt

ConvertTimeToGorm ...

func CopyBaseFieldsFromDtoToEntity

func CopyBaseFieldsFromDtoToEntity(src *rbac.BaseDTO, dst *BaseEntity)

CopyBaseFieldsFromDtoToEntity ...

func CopyBaseFieldsFromEntityToDTO

func CopyBaseFieldsFromEntityToDTO(src *BaseEntity, dst *rbac.BaseDTO)

CopyBaseFieldsFromEntityToDTO ...

func Prototypes

func Prototypes() []any

Types

type BaseEntity

type BaseEntity struct {
	UUID lang.UUID `gorm:"unique"`

	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt gorm.DeletedAt `gorm:"index"`

	Group   rbac.GroupID
	Owner   rbac.UserID
	Creator rbac.UserID
	Updater rbac.UserID
}

BaseEntity 是基本的数据库实体

type EmailAddressConvertor

type EmailAddressConvertor interface {
	ConvertE2D(c context.Context, entity *EmailAddressEntity) (*rbac.EmailAddressDTO, error)
	ConvertD2E(c context.Context, dto *rbac.EmailAddressDTO) (*EmailAddressEntity, error)

	ConvertListE2D(c context.Context, entity []*EmailAddressEntity) ([]*rbac.EmailAddressDTO, error)
}

EmailAddressConvertor ...

type EmailAddressDAO

type EmailAddressDAO interface {
	Insert(db *gorm.DB, o *EmailAddressEntity) (*EmailAddressEntity, error)
	Update(db *gorm.DB, id rbac.EmailAddressID, updater func(*EmailAddressEntity)) (*EmailAddressEntity, error)
	Delete(db *gorm.DB, id rbac.EmailAddressID) error

	Find(db *gorm.DB, id rbac.EmailAddressID) (*EmailAddressEntity, error)
	List(db *gorm.DB, q *rbac.EmailAddressQuery) ([]*EmailAddressEntity, error)

	FindByAddress(db *gorm.DB, address rbac.EmailAddress) (*EmailAddressEntity, error)
}

EmailAddressDAO ...

type EmailAddressEntity

type EmailAddressEntity struct {
	ID rbac.EmailAddressID `gorm:"primaryKey"`

	BaseEntity

	Address  rbac.EmailAddress `gorm:"unique"`
	Verified bool
}

EmailAddressEntity ...

func (EmailAddressEntity) TableName

func (EmailAddressEntity) TableName() string

TableName ...

type Entity

type Entity struct {
	BaseEntity
}

Entity 是基本的数据库实体

type Finder

type Finder interface {
	Init(db *gorm.DB) Finder
	AsList(list any) Finder
	AsEntity(entity any) Finder
	All(all bool) Finder
	WithPagination(page *rbac.Pagination) Finder
	WithConditions(cond *rbac.Conditions) Finder
	Find() error
}

Finder 提供一套通用的查询工具

func NewFinder

func NewFinder() Finder

NewFinder 新建一个查询工具

type GroupConvertor

type GroupConvertor interface {
	ConvertE2D(c context.Context, entity *GroupEntity) (*rbac.GroupDTO, error)
	ConvertD2E(c context.Context, dto *rbac.GroupDTO) (*GroupEntity, error)

	ConvertListE2D(c context.Context, entity []*GroupEntity) ([]*rbac.GroupDTO, error)
}

GroupConvertor 负责 dto <==> entity 的转换

type GroupDAO

type GroupDAO interface {
	Insert(db *gorm.DB, o *GroupEntity) (*GroupEntity, error)
	Update(db *gorm.DB, id rbac.GroupID, updater func(o *GroupEntity)) (*GroupEntity, error)
	Delete(db *gorm.DB, id rbac.GroupID) error

	Find(db *gorm.DB, id rbac.GroupID) (*GroupEntity, error)
	List(db *gorm.DB, q *rbac.GroupQuery) ([]*GroupEntity, error)
}

GroupDAO 是数据库访问对象

type GroupEntity

type GroupEntity struct {
	ID rbac.GroupID `gorm:"primaryKey"`

	BaseEntity

	Name rbac.GroupName `gorm:"unique"` // 用户分组名称

	Label       string            // 昵称
	Description string            // 头像 (HTTP-URL)
	Roles       rbac.RoleNameList // 用户的角色
	Enabled     bool              // 启用该项
}

GroupEntity 表示 Group 的数据库实体

func (GroupEntity) TableName

func (GroupEntity) TableName() string

TableName ...

type PermissionConvertor

type PermissionConvertor interface {
	ConvertE2D(c context.Context, entity *PermissionEntity) (*rbac.PermissionDTO, error)
	ConvertD2E(c context.Context, dto *rbac.PermissionDTO) (*PermissionEntity, error)

	ConvertListE2D(c context.Context, entity []*PermissionEntity) ([]*rbac.PermissionDTO, error)
}

PermissionConvertor 负责 dto <==> entity 的转换

type PermissionDAO

type PermissionDAO interface {
	Insert(db *gorm.DB, o *PermissionEntity) (*PermissionEntity, error)
	Update(db *gorm.DB, id rbac.PermissionID, updater func(*PermissionEntity)) (*PermissionEntity, error)
	Delete(db *gorm.DB, id rbac.PermissionID) error

	Find(db *gorm.DB, id rbac.PermissionID) (*PermissionEntity, error)
	List(db *gorm.DB, q *rbac.PermissionQuery) ([]*PermissionEntity, error)
	ListAll(db *gorm.DB) ([]*PermissionEntity, error)
}

PermissionDAO 是数据库访问对象

type PermissionEntity

type PermissionEntity struct {
	ID rbac.PermissionID `gorm:"primaryKey"`

	BaseEntity

	Method      string
	Path        string
	Resource    string            `gorm:"unique"` // like 'method + ":" + path'
	AcceptRoles rbac.RoleNameList `gorm:"column:roles"`
	Enabled     bool              // 启用该项

}

PermissionEntity 表示 Permission 的数据库实体

func (PermissionEntity) TableName

func (PermissionEntity) TableName() string

TableName ...

type PhoneNumberConvertor

type PhoneNumberConvertor interface {
	ConvertE2D(c context.Context, entity *PhoneNumberEntity) (*rbac.PhoneNumberDTO, error)
	ConvertD2E(c context.Context, dto *rbac.PhoneNumberDTO) (*PhoneNumberEntity, error)

	ConvertListE2D(c context.Context, entity []*PhoneNumberEntity) ([]*rbac.PhoneNumberDTO, error)
}

PhoneNumberConvertor ...

type PhoneNumberDAO

type PhoneNumberDAO interface {
	Insert(db *gorm.DB, o *PhoneNumberEntity) (*PhoneNumberEntity, error)
	Update(db *gorm.DB, id rbac.PhoneNumberID, updater func(*PhoneNumberEntity)) (*PhoneNumberEntity, error)
	Delete(db *gorm.DB, id rbac.PhoneNumberID) error

	Find(db *gorm.DB, id rbac.PhoneNumberID) (*PhoneNumberEntity, error)
	FindByNumber(db *gorm.DB, num rbac.FullPhoneNumber) (*PhoneNumberEntity, error)
	List(db *gorm.DB, q *rbac.PhoneNumberQuery) ([]*PhoneNumberEntity, error)
}

PhoneNumberDAO ...

type PhoneNumberEntity

type PhoneNumberEntity struct {
	ID rbac.PhoneNumberID `gorm:"primaryKey"`

	BaseEntity

	FullNumber rbac.PurePhoneNumber `gorm:"unique"`

	Region       rbac.RegionPhoneCode
	SimpleNumber rbac.SimplePhoneNumber
	Verified     bool
}

PhoneNumberEntity ...

func (PhoneNumberEntity) TableName

func (PhoneNumberEntity) TableName() string

TableName ...

type RegionConvertor

type RegionConvertor interface {
	ConvertE2D(c context.Context, entity *RegionEntity) (*rbac.RegionDTO, error)
	ConvertD2E(c context.Context, dto *rbac.RegionDTO) (*RegionEntity, error)

	ConvertListE2D(c context.Context, entity []*RegionEntity) ([]*rbac.RegionDTO, error)
}

RegionConvertor 负责 dto <==> entity 的转换

type RegionDAO

type RegionDAO interface {
	Insert(db *gorm.DB, o *RegionEntity) (*RegionEntity, error)
	Update(db *gorm.DB, id rbac.RegionID, updater func(*RegionEntity)) (*RegionEntity, error)
	Delete(db *gorm.DB, id rbac.RegionID) error

	Find(db *gorm.DB, id rbac.RegionID) (*RegionEntity, error)
	List(db *gorm.DB, q *rbac.RegionQuery) ([]*RegionEntity, error)
	ListAll(db *gorm.DB) ([]*RegionEntity, error)
}

RegionDAO 是数据库访问对象

type RegionEntity

type RegionEntity struct {
	ID rbac.RegionID

	BaseEntity

	DisplayName string
	SimpleName  string
	FullName    string
	FlagURL     string
	Code2       rbac.RegionCode2     `gorm:"unique"`
	Code3       rbac.RegionCode3     `gorm:"unique"`
	PhoneCode   rbac.RegionPhoneCode `gorm:"unique"`
}

RegionEntity 表示区域的实体

func (RegionEntity) TableName

func (RegionEntity) TableName() string

TableName ...

type RoleConvertor

type RoleConvertor interface {
	ConvertE2D(c context.Context, entity *RoleEntity) (*rbac.RoleDTO, error)
	ConvertD2E(c context.Context, dto *rbac.RoleDTO) (*RoleEntity, error)

	ConvertListE2D(c context.Context, entity []*RoleEntity) ([]*rbac.RoleDTO, error)
}

RoleConvertor 负责 dto <==> entity 的转换

type RoleDAO

type RoleDAO interface {
	Insert(db *gorm.DB, o *RoleEntity) (*RoleEntity, error)
	Update(db *gorm.DB, id rbac.RoleID, updater func(*RoleEntity)) (*RoleEntity, error)
	Delete(db *gorm.DB, id rbac.RoleID) error

	Find(db *gorm.DB, id rbac.RoleID) (*RoleEntity, error)
	List(db *gorm.DB, q *rbac.RoleQuery) ([]*RoleEntity, error)
	ListAll(db *gorm.DB) ([]*RoleEntity, error)
}

RoleDAO 是数据库访问对象

type RoleEntity

type RoleEntity struct {
	ID rbac.RoleID `gorm:"primaryKey"`

	BaseEntity

	Name        rbac.RoleName `gorm:"unique"`
	Description string
}

RoleEntity 表示 Role 的数据库实体

func (RoleEntity) TableName

func (RoleEntity) TableName() string

TableName ...

type UserConvertor

type UserConvertor interface {
	ConvertE2D(c context.Context, entity *UserEntity) (*rbac.UserDTO, error)
	ConvertD2E(c context.Context, dto *rbac.UserDTO) (*UserEntity, error)

	ConvertListE2D(c context.Context, entity []*UserEntity) ([]*rbac.UserDTO, error)
}

UserConvertor 负责 dto <==> entity 的转换

type UserDAO

type UserDAO interface {
	Insert(db *gorm.DB, o *UserEntity) (*UserEntity, error)
	Update(db *gorm.DB, id rbac.UserID, updater func(o *UserEntity)) (*UserEntity, error)
	Delete(db *gorm.DB, id rbac.UserID) error

	FindByAny(db *gorm.DB, text string) (*UserEntity, error)
	FindByName(db *gorm.DB, name rbac.UserName) (*UserEntity, error)
	FindByPhone(db *gorm.DB, phone rbac.FullPhoneNumber) (*UserEntity, error)
	FindByEmail(db *gorm.DB, email rbac.EmailAddress) (*UserEntity, error)

	Find(db *gorm.DB, id rbac.UserID) (*UserEntity, error)
	List(db *gorm.DB, q *rbac.UserQuery) ([]*UserEntity, error)
}

UserDAO 是数据库访问对象

type UserEntity

type UserEntity struct {
	ID rbac.UserID `gorm:"primaryKey"`

	BaseEntity

	Name rbac.UserName `gorm:"unique"` // 用户名

	Nickname string              // 昵称
	Avatar   string              // 头像 (HTTP-URL)
	Language string              // i18n 语言
	Phone    rbac.PhoneNumberID  // 主要的手机号
	Email    rbac.EmailAddressID // 主要的 e-mail 地址
	Roles    rbac.RoleNameList   // 用户的角色
	Enabled  bool                // 启用该项

	Password lang.Hex // 用户当前的密码
	Salt     lang.Hex // 跟密码相关的盐
}

UserEntity 表示 User 的数据库实体

func (UserEntity) TableName

func (UserEntity) TableName() string

TableName ...

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL