[#: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 #}} #: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 #}}]