neoscontentrepository/model/node.go
Frederik Löffert 21e9ffeee8 initial commit
2019-01-07 13:52:53 +01:00

86 lines
4.2 KiB
Go

package model
import (
"strings"
"time"
)
/*
+-------------------------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------------------+---------------+------+-----+---------+-------+
| persistence_object_identifier | varchar(40) | NO | PRI | NULL | |
| workspace | varchar(255) | YES | MUL | NULL | |
| contentobjectproxy | varchar(40) | YES | MUL | NULL | |
| movedto | varchar(40) | YES | UNI | NULL | |
| version | int(11) | NO | | 1 | |
| pathhash | varchar(32) | NO | MUL | NULL | |
| path | varchar(4000) | NO | | NULL | |
| parentpathhash | varchar(32) | NO | MUL | NULL | |
| parentpath | varchar(4000) | NO | MUL | NULL | |
| identifier | varchar(255) | NO | MUL | NULL | |
| sortingindex | int(11) | YES | | NULL | |
| removed | tinyint(1) | NO | | NULL | |
| dimensionshash | varchar(32) | NO | | NULL | |
| lastmodificationdatetime | datetime | NO | | NULL | |
| lastpublicationdatetime | datetime | YES | | NULL | |
| hiddenbeforedatetime | datetime | YES | | NULL | |
| hiddenafterdatetime | datetime | YES | | NULL | |
| dimensionvalues | longtext | NO | | NULL | |
| properties | longtext | NO | | NULL | |
| nodetype | varchar(255) | NO | MUL | NULL | |
| creationdatetime | datetime | NO | | NULL | |
| hidden | tinyint(1) | NO | | NULL | |
| hiddeninindex | tinyint(1) | NO | | NULL | |
| accessroles | longtext | NO | | NULL | |
+-------------------------------+---------------+------+-----+---------+-------+
*/
type NodeData struct {
PersistenceObjectIdentifier string `json:"persistence_object_identifier"`
Identifier string `json:"identifier"`
Version uint `json:"version"`
Workspace *string `json:"workspace"`
ContentObjectProxy *string `json:"contentobjectproxy"`
MovedTo *string `json:"movedto"`
PathHash string `json:"pathhash"`
Path string `json:"path"`
ParentPathHash string `json:"parentpathhash"`
ParentPath string `json:"parentpath"`
SortingIndex *uint `json:"sortingindex"`
Removed bool `json:"removed"`
DimensionsHash string `json:"dimensionshash"`
CreationDatetime time.Time `json:"creationdatetime"`
LastModificationDatetime time.Time `json:"lastmodificationdatetime"`
LastPublicationDatetime *time.Time `json:"lastpublicationdatetime"`
HiddenBeforeDatetime *time.Time `json:"hiddenbeforedatetime"`
HiddenAfterDatetime *time.Time `json:"hiddenafterdatetime"`
DimensionValues string `json:"dimensionvalues"`
Properties string `json:"properties"`
NodeType string `json:"nodetype"`
Hidden bool `json:"hidden"`
HiddenInIndex bool `json:"hiddeninindex"`
AccessRoles string `json:"accessroles"`
}
type NodeProperties struct {
Title string `json:"title,omitempty"`
URIPathSegment string `json:"uriPathSegment"`
Layout string `json:"layout,omitempty"`
SubPageLayout string `json:"subpageLayout,omitempty"`
}
func (node *NodeData) IsVisible() bool {
// @todo @implementme
return false
}
func (node *NodeData) GetHash() string {
return strings.Join([]string{
node.Identifier,
*node.Workspace,
node.DimensionsHash,
}, "___")
}