summaryrefslogtreecommitdiff
path: root/src/schema.edn
diff options
context:
space:
mode:
Diffstat (limited to 'src/schema.edn')
-rw-r--r--src/schema.edn402
1 files changed, 402 insertions, 0 deletions
diff --git a/src/schema.edn b/src/schema.edn
new file mode 100644
index 0000000..61cf5fd
--- /dev/null
+++ b/src/schema.edn
@@ -0,0 +1,402 @@
+[#:db{:ident :papod.network/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ {:db/ident :papod.network/name,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db/unique :db.unique/value,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.network/description,
+ :valueType :db.type/string,
+ :cardinality :db.cardinality/one}
+ {:db/ident :papod.network/type,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db/index true,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.network/created-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.member/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.member/network,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ {:db/ident :papod.member/nick,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db/index true,
+ :db.attr/preds papod/non-empty?}
+ {:db/ident :papod.member/status,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.member/joined-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.member/network+nick,
+ :valueType :db.type/tuple,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/value,
+ :tupleAttrs [:papod.member/network :papod.member/nick]}
+ #:db{:ident :papod.member-role/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.member-role/member,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ {:db/ident :papod.member-role/role,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.member-role/member+role,
+ :valueType :db.type/tuple,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/value,
+ :tupleAttrs [:papod.member-role/member :papod.member-role/role]}
+ #:db{:ident :papod.channel/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.channel/network,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ #:db{:ident :papod.channel/name,
+ :valueType :db.type/string,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/value}
+ #:db{:ident :papod.channel.type/public}
+ #:db{:ident :papod.channel.type/private}
+ #:db{:ident :papod.channel.type/unlisted}
+ #:db{:ident :papod.channel/type,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ #:db{:ident :papod.channel/label,
+ :valueType :db.type/string,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.channel/description,
+ :valueType :db.type/string,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.channel/created-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ {:db/ident :papod.channel/owner,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.channel/topic,
+ :valueType :db.type/string,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.channel/last-event-seq,
+ :valueType :db.type/long,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.access/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.access/channel,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ {:db/ident :papod.access/nick,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db/index true,
+ :db.attr/preds papod/non-empty?}
+ {:db/ident :papod.access/level,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.access/channel+nick+level,
+ :valueType :db.type/tuple,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/value,
+ :tupleAttrs
+ [:papod.access/channel :papod.access/nick :papod.access/level]}
+ #:db{:ident :papod.memo/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ {:db/ident :papod.memo/from,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ {:db/ident :papod.memo/to,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db/index true,
+ :db.attr/preds papod/non-empty?}
+ {:db/ident :papod.memo/content,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.memo/created-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.memo/read?,
+ :valueType :db.type/boolean,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.membership/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.membership/channel,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ {:db/ident :papod.membership/nick,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db/index true,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.membership/joined-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.membership/channel+nick,
+ :valueType :db.type/tuple,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/value,
+ :tupleAttrs [:papod.membership/channel :papod.membership/nick]}
+ #:db{:ident :papod.session/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ {:db/ident :papod.session/nick,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.session/created-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.session/finished-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.connection/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.connection/process,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ #:db{:ident :papod.connection/created-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.connection/finished-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.logon/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.logon/session,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ #:db{:ident :papod.logon/connection,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ #:db{:ident :papod.logon/session+connection,
+ :valueType :db.type/tuple,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/value,
+ :tupleAttrs [:papod.logon/session :papod.logon/connection]}
+ #:db{:ident :papod.process/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.process/pid,
+ :valueType :db.type/long,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.process/hostname,
+ :valueType :db.type/string,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.process/started-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.event/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.event/channel,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ {:db/ident :papod.event/target-nick,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db/index true,
+ :db.attr/preds papod/non-empty?}
+ {:db/ident :papod.event/type,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db/index true,
+ :db.attr/preds papod/non-empty?}
+ {:db/ident :papod.event/source-nick,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.event/payload,
+ :valueType :db.type/string,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.event/created-at,
+ :valueType :db.type/instant,
+ :cardinality :db.cardinality/one}
+ #:db{:ident :papod.event/seq,
+ :valueType :db.type/long,
+ :cardinality :db.cardinality/one,
+ :index true}
+ #:db{:ident :papod.event/reply-to,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ #:db{:ident :papod.event/edit-of,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ #:db{:ident :papod.event/delete-of,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ #:db{:ident :papod.reaction/id,
+ :valueType :db.type/uuid,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity}
+ #:db{:ident :papod.reaction/event,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ {:db/ident :papod.reaction/nick,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ {:db/ident :papod.reaction/emoji,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.reaction/event+nick+emoji,
+ :valueType :db.type/tuple,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/value,
+ :tupleAttrs
+ [:papod.reaction/event
+ :papod.reaction/nick
+ :papod.reaction/emoji]}
+ #:db{:ident :papod.read-marker/channel,
+ :valueType :db.type/ref,
+ :cardinality :db.cardinality/one,
+ :index true}
+ {:db/ident :papod.read-marker/nick,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db/index true,
+ :db.attr/preds papod/non-empty?}
+ {:db/ident :papod.read-marker/timestamp,
+ :db/valueType :db.type/string,
+ :db/cardinality :db.cardinality/one,
+ :db.attr/preds papod/non-empty?}
+ #:db{:ident :papod.read-marker/channel+nick,
+ :valueType :db.type/tuple,
+ :cardinality :db.cardinality/one,
+ :unique :db.unique/identity,
+ :tupleAttrs [:papod.read-marker/channel :papod.read-marker/nick]}
+ {:db/ident :papod.network/attrs,
+ :db.entity/attrs
+ #{:papod.network/id
+ :papod.network/type
+ :papod.network/created-at
+ :papod.network/name}}
+ {:db/ident :papod.member/attrs,
+ :db.entity/attrs
+ #{:papod.member/id
+ :papod.member/network
+ :papod.member/joined-at
+ :papod.member/status
+ :papod.member/nick}}
+ {:db/ident :papod.member-role/attrs,
+ :db.entity/attrs
+ #{:papod.member-role/id
+ :papod.member-role/role
+ :papod.member-role/member}}
+ {:db/ident :papod.channel/attrs,
+ :db.entity/attrs
+ #{:papod.channel/type
+ :papod.channel/id
+ :papod.channel/network
+ :papod.channel/created-at}}
+ {:db/ident :papod.access/attrs,
+ :db.entity/attrs
+ #{:papod.access/nick
+ :papod.access/channel
+ :papod.access/level
+ :papod.access/id}}
+ {:db/ident :papod.memo/attrs,
+ :db.entity/attrs
+ #{:papod.memo/id
+ :papod.memo/created-at
+ :papod.memo/from
+ :papod.memo/content
+ :papod.memo/to
+ :papod.memo/read?}}
+ {:db/ident :papod.membership/attrs,
+ :db.entity/attrs
+ #{:papod.membership/id
+ :papod.membership/nick
+ :papod.membership/joined-at
+ :papod.membership/channel}}
+ {:db/ident :papod.session/attrs,
+ :db.entity/attrs
+ #{:papod.session/created-at :papod.session/id :papod.session/nick}}
+ {:db/ident :papod.process/attrs,
+ :db.entity/attrs
+ #{:papod.process/started-at
+ :papod.process/hostname
+ :papod.process/pid
+ :papod.process/id}}
+ {:db/ident :papod.connection/attrs,
+ :db.entity/attrs
+ #{:papod.connection/process
+ :papod.connection/created-at
+ :papod.connection/id}}
+ {:db/ident :papod.logon/attrs,
+ :db.entity/attrs
+ #{:papod.logon/connection :papod.logon/session :papod.logon/id}}
+ {:db/ident :papod.event/attrs,
+ :db.entity/attrs
+ #{:papod.event/type
+ :papod.event/source-nick
+ :papod.event/id
+ :papod.event/created-at}}
+ {:db/ident :papod.reaction/attrs,
+ :db.entity/attrs
+ #{:papod.reaction/emoji
+ :papod.reaction/nick
+ :papod.reaction/id
+ :papod.reaction/event}}
+ #:db{:ident :papod.event/add-seq,
+ :fn
+ {:lang :clojure,
+ :imports [],
+ :requires [],
+ :params [db event-eid channel-uuid],
+ :code
+ "^{:line 38, :column 6} (let [channel-eid ^{:line 38, :column 24} (or ^{:line 38, :column 28} (ffirst ^{:line 39, :column 29} (d/q (quote {:find [?e], :in [$ ?id], :where [[?e :papod.channel/id ?id]]}) db channel-uuid)) ^{:line 43, :column 28} (d/tempid :db.part/user)) last-seq ^{:line 44, :column 24} (or ^{:line 44, :column 28} (:papod.channel/last-event-seq ^{:line 45, :column 29} (d/entity db channel-eid)) 0) new-seq ^{:line 46, :column 24} (inc last-seq)] [[:db/add channel-eid :papod.channel/id channel-uuid] [:db/add channel-eid :papod.channel/last-event-seq new-seq] [:db/add event-eid :papod.event/seq new-seq]])",
+ :fnref #<Delay@65b5b5ed: :not-delivered>}}
+ #:db{:ident :papod.access/ensure-unique,
+ :fn
+ {:lang :clojure,
+ :imports [],
+ :requires [],
+ :params [db channel nick level],
+ :code
+ "^{:line 56, :column 6} (when ^{:line 56, :column 12} (seq ^{:line 57, :column 13} (d/q (quote {:find [?a], :in [$ ?ch ?n ?l], :where [[?a :papod.access/channel ?ch] [?a :papod.access/nick ?n] [?a :papod.access/level ?l]]}) db channel nick level)) ^{:line 63, :column 8} (d/cancel #:cognitect.anomalies{:category :cognitect.anomalies/conflict, :message \"Duplicate access entry\"}))",
+ :fnref #<Delay@df432ec: :not-delivered>}}]