-- This file is part of Vervis.
--
-- Written in 2016 by fr33domlover <fr33domlover@riseup.net>.
--
-- ♡ Copying is an act of love. Please copy, reuse and share.
--
-- The author(s) have dedicated all copyright and related and neighboring
-- rights to this software to the public domain worldwide. This software is
-- distributed without any warranty.
--
-- You should have received a copy of the CC0 Public Domain Dedication along
-- with this software. If not, see
-- <http://creativecommons.org/publicdomain/zero/1.0/>.

Sharer
    ident Text       --CI
    name  Text Maybe

    UniqueSharerIdent ident

Person
    ident SharerId
    login Text
    hash  Text     Maybe
    email Text     Maybe

    UniquePersonIdent ident
    UniquePersonLogin login

SshKey
    person  PersonId
    name    Text
    algo    ByteString
    content ByteString

    UniqueSshKey person name

Group
    ident SharerId

    UniqueGroupIdent ident

Project
    ident      Text       --CI
    sharer     SharerId
    name       Text     Maybe
    desc       Text     Maybe
    nextTicket Int            default='1'

    UniqueProject ident sharer

Repo
    ident      Text       --CI
    sharer     SharerId
    vcs        VersionControlSystem       default='VCSGit'
    project    ProjectId            Maybe
    desc       Text                 Maybe
    mainBranch Text                       default='master'

    UniqueRepo ident sharer

PersonInGroup
    person PersonId
    group  GroupId

    UniquePersonInGroup person group

Ticket
    project ProjectId
    number  Int
    created UTCTime
    creator PersonId
    title   Text
    desc    Text -- Assume this is Pandoc Markdown
    done    Bool
    closed  UTCTime
    closer  PersonId

    UniqueTicket project number

Discussion

Message
    author  PersonId
    created UTCTime
    content Text               -- Assume this is Pandoc Markdown
    parent  MessageId    Maybe
    root    DiscussionId