name: user_star
label: 收藏
icon: apps
fields:
  user:
    label: 用户
    type: lookup
    reference_to: users
    index: true
    name: user
    filterable: true
  related_to:
    type: lookup
    label: 记录
    omit: true
    is_name: true
    reference_to: !<tag:yaml.org,2002:js/function> |-
      function () {
              return _.keys(Creator.Objects);
            }
    name: related_to
    filterable: true
    searchable: true
list_views:
  all:
    label: 全部
    columns:
      - user
      - star_space
      - star_post
    filter_scope: space
triggers:
  after.insert.server.user_star:
    'on': server
    when: after.insert
    todo: !<tag:yaml.org,2002:js/function> |-
      function (userId, doc) {
              var _id, object_name, ref, ref1;

              object_name = (ref = doc.related_to) != null ? ref.o : void 0;
              _id = (ref1 = doc.related_to) != null ? ref1.ids[0] : void 0;

              if (object_name && _id) {
                return Creator.getCollection(object_name).direct.update({
                  _id: _id
                }, {
                  $inc: {
                    star_count: 1
                  }
                });
              }
            }
  after.remove.server.user_star:
    'on': server
    when: after.remove
    todo: !<tag:yaml.org,2002:js/function> |-
      function (userId, doc) {
              var _id, object_name, ref, ref1;

              object_name = (ref = doc.related_to) != null ? ref.o : void 0;
              _id = (ref1 = doc.related_to) != null ? ref1.ids[0] : void 0;

              if (object_name && _id) {
                return Creator.getCollection(object_name).direct.update({
                  _id: _id
                }, {
                  $inc: {
                    star_count: -1
                  }
                });
              }
            }
permission_set:
  user:
    allowCreate: true
    allowDelete: true
    allowEdit: false
    allowRead: true
    modifyAllRecords: false
    viewAllRecords: false
    name: user
  admin:
    allowCreate: true
    allowDelete: true
    allowEdit: false
    allowRead: true
    modifyAllRecords: false
    viewAllRecords: false
    name: admin
  member:
    allowCreate: true
    allowDelete: true
    allowEdit: false
    allowRead: true
    modifyAllRecords: false
    viewAllRecords: false
    name: member
  guest:
    allowCreate: true
    allowDelete: true
    allowEdit: false
    allowRead: true
    modifyAllRecords: false
    viewAllRecords: false
    name: guest
