Skip to content

Instantly share code, notes, and snippets.

@alexpyoung
Last active August 29, 2015 14:22
Show Gist options
  • Save alexpyoung/645db64084b64d0df6ab to your computer and use it in GitHub Desktop.
Save alexpyoung/645db64084b64d0df6ab to your computer and use it in GitHub Desktop.

#Modeling#

##Table of Contents##

###1. JSON Objects###

###2. Aggregates###

###3. Entities###

###4. Collections###

###5. Custom Elements Inheritance Tree###


##1. JSON Objects##

^ top

###Play

  • Integer id
  • Integer gameId
  • Float startTime
  • Float endTime
  • Video clip
  • Array<Event> events

###Tag

  • Integer id
  • String name
  • String description
  • String keyboardShortcut (previously shortcutKey)
  • Array<Field> fields (previously tagVariables)
  • Integer pointsAssigned
  • Boolean assignThisTeam
  • Boolean isPeriodTag
  • Integer summaryPriority
  • Integer buffer
  • String indexerScript
  • String summaryScript
  • String userScript
  • Boolean isStart
  • Boolean isEnd
  • Integer tagSetId
  • Array<Integer> children

###Event

  • Integer id
  • String name
  • String description
  • String keyboardShortcut (previously shortcutKey)
  • Array<Field> fields (previously tagVariables)
  • Integer pointsAssigned
  • Boolean assignThisTeam
  • Boolean isPeriodTag
  • Integer summaryPriority
  • Integer buffer
  • String indexerScript
  • String summaryScript
  • String userScript
  • Boolean isStart
  • Boolean isEnd
  • Integer tagSetId
  • Integer tagId

###Field

  • Integer id
  • Integer type
  • String name
  • Boolean isRequired
  • Object value
  • Array<Object> availableValues (null for ArenaField, TextField)

###PlayerField.value

  • String name
  • Integer playerId

###TeamField.value

  • String name
  • Integer teamId

###TeamPlayerField.value

  • String name
  • Integer playerId
  • Integer teamId

###DropdownField.value

  • String name
  • String string

###GapField.value

  • String name
  • Integer gapId
  • String keyboardShortcut

###PassingZoneField.value

  • String name
  • Integer zoneId
  • String keyboardShortcut

###FormationField.value

  • String name
  • Integer formationId
  • Integer numberOfPlayers

###TextField.value

  • String name
  • String string

###YardField.value

  • String name
  • Integer yard

###ArenaField.value

  • String name
  • Integer region
  • Object coordinates

##2. Aggregates##

^ top

###Play

  • get id()

  • get gameId()

  • get startTime()

  • set startTime(startTime)

  • get endTime()

  • set endTime(endTime)

  • get clip()

  • get events()

  • set events(events)

  • get isValid()

  • summaryScripts()

    get summaryScripts() {
    
        return this.events.map(event => event.summaryScript);
    }
    
  • get hasVisibleEvents()

    hasVisibleEvents() {
    
        return this.events.some(event => event.userScript);
    }
    
  • get possessionTeamId()

  • get teamIndexedScore()

  • get opposingTeamIndexedScore()


##3. Entities##

^ top

###Event

  • get id()
  • get name()
  • get description()
  • get keyboardShortcut()
  • get fields()
  • set fields(fields)
  • get isPeriodTag()
  • get summaryPriority()
  • get buffer()
  • get indexerScript()
  • get summaryScript()
  • get userScript()
  • get isStart()
  • get isEnd()
  • get tagSetId()
  • get tagId()
  • get possessionTeamId()
  • set possessionTeamId()
  • get teamIndexedScore()
  • set teamIndexedScore()
  • get opposingTeamIndexedScore()
  • set opposingTeamIndexedScore()
  • get isVisible()
  • In addition to the existing Event entity

###Field

  • get id()
  • get type()
  • get name()
  • get isRequired()
  • get value()
  • set value(value)
  • get availableValues()
  • set availableValues(availableValues)
  • get isValid()

###FieldManager

  • clear()
  • reset()
  • set previousValue(<Field.value>)
  • get current()
  • set current(<Field>)

##4. Collections##

###SortedList###

  • constructor(sortProperty)

###LinkedList###

  • get next()
  • get previous()
  • get current()

##5. Custom Elements Inheritance Tree##

HTMLButtonElement   
│
│── BaseFieldElement
    │
    │── BaseTextFieldElement
    │   │
    │   │── TextFieldElement
    │   │
    │   │── BaseTypeaheadFieldElement
    │       │
    │       │── PlayerFieldElement
    │       │
    │       │── TeamFieldElement
    │       │
    │       │── TeamPlayerFieldElement
    │       │
    │       │── OptionsFieldElement
    │       │
    │       │── GapFieldElement
    │       │
    │       │── PassingZoneFieldElement
    │       │
    │       │── FormationFieldElement
    │       │
    │       │── YardFieldElement
    │
    │── ArenaFieldElement

Bold indicates abstract element

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment