Basic foundation for public collections

This commit is contained in:
Jorge Manrubia
2025-06-09 12:38:10 +02:00
parent 7d027f6699
commit 38e3582689
6 changed files with 98 additions and 3 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
class Collection < ApplicationRecord
include AutoClosing, Accessible, Broadcastable, Entropic, Filterable, Workflowing
include AutoClosing, Accessible, Broadcastable, Entropic, Filterable, Publishable, Workflowing
belongs_to :creator, class_name: "User", default: -> { Current.user }
+5
View File
@@ -0,0 +1,5 @@
class Collection::Publication < ApplicationRecord
belongs_to :collection
has_secure_token :key
end
+20
View File
@@ -0,0 +1,20 @@
module Collection::Publishable
extend ActiveSupport::Concern
included do
has_one :publication, class_name: "Collection::Publication", dependent: :destroy
scope :published, ->{ joins(:publication) }
end
def published?
publication.present?
end
def publish
create_publication! unless published?
end
def unpublish
publication&.destroy
end
end