Entity - Entity builder This function creates and returns a new instance of EntityDefinition. It takes in the name of the entity, an array of relations, and an array of actions. It then initializes the EntityDefinition with the provided values and returns it. The EntityDefinition contains informatio
(name string, relations []*base.RelationDefinition, attributes []*base.AttributeDefinition, permissions []*base.PermissionDefinition)
| 42 | // It then initializes the EntityDefinition with the provided values and returns it. |
| 43 | // The EntityDefinition contains information about the entity's name, its relations, actions, and references. |
| 44 | func Entity(name string, relations []*base.RelationDefinition, attributes []*base.AttributeDefinition, permissions []*base.PermissionDefinition) *base.EntityDefinition { |
| 45 | def := &base.EntityDefinition{ |
| 46 | Name: name, |
| 47 | Relations: map[string]*base.RelationDefinition{}, |
| 48 | Attributes: map[string]*base.AttributeDefinition{}, |
| 49 | Permissions: map[string]*base.PermissionDefinition{}, |
| 50 | References: map[string]base.EntityDefinition_Reference{}, |
| 51 | } |
| 52 | |
| 53 | for _, relation := range relations { |
| 54 | def.Relations[relation.Name] = relation |
| 55 | def.References[relation.Name] = base.EntityDefinition_REFERENCE_RELATION |
| 56 | } |
| 57 | |
| 58 | for _, attribute := range attributes { |
| 59 | def.Attributes[attribute.Name] = attribute |
| 60 | def.References[attribute.Name] = base.EntityDefinition_REFERENCE_ATTRIBUTE |
| 61 | } |
| 62 | |
| 63 | for _, permission := range permissions { |
| 64 | def.Permissions[permission.Name] = permission |
| 65 | def.References[permission.Name] = base.EntityDefinition_REFERENCE_PERMISSION |
| 66 | } |
| 67 | |
| 68 | return def |
| 69 | } |
| 70 | |
| 71 | // Entities - Entities builder |
| 72 | func Entities(defs ...*base.EntityDefinition) []*base.EntityDefinition { |