Created
June 23, 2020 14:23
-
-
Save romshark/f9ca4e3ce3a96e2da124e3fe5adcba6d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Events | |
event UserCreated { | |
id *User | |
name String | |
passwordHash String | |
} | |
event UserDeactivated { | |
user *User | |
deactivatedBy *User | |
} | |
event UserNameChanged { | |
user *User | |
newName String | |
changedBy *User | |
} | |
event UserPasswordChanged { | |
user *User | |
newPasswordHash String | |
} | |
event BoardCreated { | |
id *Board | |
name String | |
createdBy *User | |
} | |
event BoardNameChanged { | |
board *Board | |
newName String | |
changedBy *User | |
} | |
event BoardArchived { | |
board *Board | |
archivedBy *User | |
} | |
event UserAddedToBoard { | |
user *User | |
board *Board | |
addedBy *User | |
} | |
event UserRemovedFromBoard { | |
user *User | |
board *Board | |
removedBy *User | |
} | |
event ColumnCreated { | |
id *Column | |
board *Board | |
name String | |
index Uint | |
createdBy *User | |
} | |
event ColumnMoved { | |
column *Column | |
newIndex Uint | |
movedBy *User | |
} | |
event ColumnTitleChanged { | |
column *Column | |
newName String | |
changedBy *User | |
} | |
event CardCreated { | |
id *Card | |
column *Column | |
title String? | |
createdBy *User | |
} | |
event CardTitleChanged { | |
id *Card | |
newTitle String | |
changedBy *User | |
} | |
event CardDescriptionChanged { | |
id *Card | |
newDescription String | |
changedBy *User | |
} | |
event CardMovedToColumn { | |
id *Card | |
column *Column | |
movedBy *User | |
} | |
event CardMovedWithinColumn { | |
id *Card | |
index Uint | |
movedBy *User | |
} | |
event CardArchived { | |
id *Card | |
archivedBy *User | |
} | |
event UserAssignedToCard { | |
user *User | |
card *Card | |
assignedBy *User | |
} | |
event UserUnassignedFromCard { | |
user *User | |
card *Card | |
unassignedBy *User | |
} | |
// Entities | |
entity User { | |
properties: | |
name String | |
passwordHash String | |
adminOf []*Board | |
memberOf []*Board | |
creation Time | |
states: | |
existing | |
deactivated | |
transitions: | |
|-> UserCreated => existing (name, passwordHash, creation) | |
existing -> UserNameChanged => existing (name) | |
existing -> UserPasswordChanged => existing (passwordHash) | |
existing -> BoardCreated => existing (adminOf) | |
existing -> UserAddedToBoard => existing (memberOf) | |
existing -> UserRemovedFromBoard => existing (memberOf) | |
existing -> UserDeactivated => deactivated | |
} | |
entity Board { | |
properties: | |
name String | |
admin *User | |
columns []*Column | |
members []*User | |
creation Time | |
states: | |
existing | |
archived | |
transitions: | |
|-> BoardCreated => existing (name, admin, creation) | |
existing -> BoardNameChanged => existing (name) | |
existing -> ColumnCreated => existing (columns) | |
existing -> ColumnMoved => existing (columns) | |
existing -> UserAddedToBoard => existing (members) | |
existing -> UserRemovedFromBoard => existing (members) | |
existing -> BoardArchived => archived | |
} | |
entity Column { | |
properties: | |
title String | |
board *Board | |
cards []*Card | |
creation Time | |
states: | |
existing | |
transitions: | |
|-> ColumnCreated => existing (title, board, creation) | |
existing -> ColumnTitleChanged => existing (title) | |
existing -> CardCreated => existing (cards) | |
existing -> CardMovedToColumn => existing (cards) | |
existing -> CardMovedWithinColumn => existing (cards) | |
} | |
entity Card { | |
properties: | |
title String? | |
description String? | |
author *User | |
assignees []*User | |
column *Column | |
creation Time | |
states: | |
existing | |
archived | |
transitions: | |
|-> CardCreated => existing (author, title, creation) | |
existing -> CardTitleChanged => existing (title) | |
existing -> CardDescriptionChanged => existing (description) | |
existing -> CardMovedToColumn => existing (column) | |
existing -> UserAssignedToCard => existing (assignees) | |
existing -> UserUnassignedFromCard => existing (assignees) | |
existing -> CardArchived => archived | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment