Documentation ¶
Overview ¶
Package entity Entity interface and base entity for all persistent model entities
Index ¶
- func BinaryMarshal(v any) ([]byte, error)
- func BinaryUnmarshal(data []byte, v any) error
- func EntityIndex(entity Entity, tenantId string) string
- func GUID() string
- func ID() string
- func IDN() string
- func Marshal(v any) ([]byte, error)
- func NanoID() string
- func ShortID(delta ...int) string
- func ShortIDN(delta ...int) string
- func Unmarshal(data []byte, v any) error
- func UnmarshalFromString(data string, v any) error
- type BaseEntity
- type Entity
- type EntityAction
- type EntityFactory
- type Json
- type JsonDoc
- type SimpleEntity
- type TimeDataPoint
- type TimeFrame
- type Timestamp
- type Tuple
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BinaryMarshal ¶ added in v1.2.67
BinaryMarshal returns the best wire format encoding of v. If v implements encoding.BinaryMarshaler it will return the binary format, otherwise it will apply JSON encoding
func BinaryUnmarshal ¶ added in v1.2.67
BinaryUnmarshal will try to unmarshal binary data if v implements encoding.BinaryUnmarshaler, otherwise it will use JSON unmarshal
func EntityIndex ¶
EntityIndex extract table or index name from entity.TABLE()
func ID ¶ added in v1.1.2
func ID() string
ID return a long string (alphanumeric) based on Epoch micro-seconds in base 36
func IDN ¶ added in v1.2.21
func IDN() string
IDN return a long string (digits only) based on Epoch micro-seconds
func NanoID ¶ added in v1.1.2
func NanoID() string
NanoID return a long string (6 characters) based on go-nanoid project (smaller and faster than GUID)
func ShortID ¶ added in v1.1.2
ShortID return a short string (6 characters alphanumeric) based on epoch seconds in base 36
func ShortIDN ¶ added in v1.2.21
ShortIDN return a short string (digits only) based on epoch seconds
func UnmarshalFromString ¶ added in v1.2.55
UnmarshalFromString returns the struct from JSON string
Types ¶
type BaseEntity ¶
type BaseEntity struct { Id string `json:"id"` // Unique object Id CreatedOn Timestamp `json:"createdOn"` // When the object was created [Epoch milliseconds Timestamp] UpdatedOn Timestamp `json:"updatedOn"` // When the object was last updated [Epoch milliseconds Timestamp] }
BaseEntity is a base structure for any concrete Entity
func (BaseEntity) ID ¶
func (e BaseEntity) ID() string
func (BaseEntity) KEY ¶
func (e BaseEntity) KEY() string
func (BaseEntity) NAME ¶
func (e BaseEntity) NAME() string
func (BaseEntity) TABLE ¶
func (e BaseEntity) TABLE() string
type Entity ¶
type Entity interface { // ID return the entity unique Id ID() string // TABLE return the entity table name (for sharded entities, table name include the suffix of the tenant id) TABLE() string // NAME return the entity name NAME() string // KEY return the entity sharding key (tenant/account id) based on one of the entity's attributes KEY() string }
Entity is a marker interface for all serialized domain model entities with identity
func NewBaseEntity ¶ added in v1.2.41
func NewBaseEntity() Entity
func NewSimpleEntity ¶ added in v1.2.41
type EntityAction ¶
type EntityAction int
const ( AddEntity EntityAction = 1 UpdateEntity EntityAction = 2 DeleteEntity EntityAction = 3 )
type EntityFactory ¶
type EntityFactory func() Entity
EntityFactory is the factory method signature for Entity
type JsonDoc ¶
JsonDoc is a Json document to store in Document object store (Postgres, ElasticSearch, Couchbase ...)
type SimpleEntity ¶ added in v1.2.41
type SimpleEntity[T any] struct { Value T `json:"value"` // entity value }
SimpleEntity is a primitive type expressed as an Entity
func (SimpleEntity[T]) ID ¶ added in v1.2.41
func (e SimpleEntity[T]) ID() string
func (SimpleEntity[T]) KEY ¶ added in v1.2.41
func (e SimpleEntity[T]) KEY() string
func (SimpleEntity[T]) NAME ¶ added in v1.2.41
func (e SimpleEntity[T]) NAME() string
func (SimpleEntity[T]) TABLE ¶ added in v1.2.41
func (e SimpleEntity[T]) TABLE() string
type TimeDataPoint ¶ added in v1.2.35
type TimeDataPoint[V any] struct { Timestamp Timestamp `json:"timestamp"` // Timestamp Value V `json:"value"` // Generic value }
TimeDataPoint model represents a generic datapoint in time
func NewTimeDataPoint ¶ added in v1.2.35
func NewTimeDataPoint[V any](ts Timestamp, value V) TimeDataPoint[V]
NewTimeDataPoint return new instance of the datapoint
func (*TimeDataPoint[V]) String ¶ added in v1.2.35
func (tf *TimeDataPoint[V]) String(format string) string
String convert Epoch milliseconds timestamp to readable string
type TimeFrame ¶ added in v1.2.26
type TimeFrame struct { From Timestamp `json:"from"` // From Timestamp To Timestamp `json:"to"` // To Timestamp }
TimeFrame represents a slot in time
func GetTimeFrame ¶ added in v1.2.26
GetTimeFrame return new time slot using start and duration
func NewTimeFrame ¶ added in v1.2.26
NewTimeFrame return new time slot using start and end time
type Timestamp ¶
type Timestamp int64
Timestamp represents Epoch milliseconds timestamp
func EpochNowMillis ¶
EpochNowMillis return current time as Epoch time milliseconds with delta in millis
func Now ¶
func Now() Timestamp
Now return current time as Epoch time milliseconds with delta in millis
func (*Timestamp) LocalString ¶ added in v1.2.15
LocalString convert Epoch milliseconds timestamp with timezone (IANA) to readable string