Class: Dscf::Marketplace::Supplier
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Dscf::Marketplace::Supplier
- Includes:
- Core::ReviewableModel, AttachmentUrls
- Defined in:
- app/models/dscf/marketplace/supplier.rb
Class Method Summary collapse
- .ransackable_associations(_auth_object = nil) ⇒ Object
- .ransackable_attributes(_auth_object = nil) ⇒ Object
Instance Method Summary collapse
- #approve!(reviewer, reason = nil) ⇒ Object
- #document_urls ⇒ Object
- #modify!(reviewer, reason) ⇒ Object
- #reject!(reviewer, reason) ⇒ Object
-
#resubmit! ⇒ Object
Owner resubmission after a modification request: records a fresh pending review (no reviewer — this is a submission, not an admin review), which moves current_status_for back to "pending" for re-review.
- #review_status(context = :default) ⇒ Object
Class Method Details
.ransackable_associations(_auth_object = nil) ⇒ Object
36 37 38 |
# File 'app/models/dscf/marketplace/supplier.rb', line 36 def self.ransackable_associations(_auth_object = nil) %w[business supplier_products addresses reviews] end |
.ransackable_attributes(_auth_object = nil) ⇒ Object
32 33 34 |
# File 'app/models/dscf/marketplace/supplier.rb', line 32 def self.ransackable_attributes(_auth_object = nil) %w[id name code address contact_phone business_type business_id created_at updated_at] end |
Instance Method Details
#approve!(reviewer, reason = nil) ⇒ Object
40 41 42 43 44 45 46 47 48 49 |
# File 'app/models/dscf/marketplace/supplier.rb', line 40 def approve!(reviewer, reason = nil) Dscf::Core::Review.create!( reviewable: self, context: :default, status: "approved", reviewed_by: reviewer, reviewed_at: Time.current, feedback: reason.present? ? {reason: reason} : nil ) end |
#document_urls ⇒ Object
93 94 95 96 97 |
# File 'app/models/dscf/marketplace/supplier.rb', line 93 def document_urls return [] unless documents.attached? documents.map { |doc| (doc) } end |
#modify!(reviewer, reason) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'app/models/dscf/marketplace/supplier.rb', line 64 def modify!(reviewer, reason) raise ArgumentError, "Reason is required for modification request" if reason.blank? Dscf::Core::Review.create!( reviewable: self, context: :default, status: "modify", reviewed_by: reviewer, reviewed_at: Time.current, feedback: {reason: reason} ) end |
#reject!(reviewer, reason) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/models/dscf/marketplace/supplier.rb', line 51 def reject!(reviewer, reason) raise ArgumentError, "Reason is required for rejection" if reason.blank? Dscf::Core::Review.create!( reviewable: self, context: :default, status: "rejected", reviewed_by: reviewer, reviewed_at: Time.current, feedback: {reason: reason} ) end |
#resubmit! ⇒ Object
Owner resubmission after a modification request: records a fresh pending review (no reviewer — this is a submission, not an admin review), which moves current_status_for back to "pending" for re-review.
80 81 82 83 84 85 86 87 |
# File 'app/models/dscf/marketplace/supplier.rb', line 80 def resubmit! Dscf::Core::Review.create!( reviewable: self, context: :default, status: "pending", reviewed_at: Time.current ) end |
#review_status(context = :default) ⇒ Object
89 90 91 |
# File 'app/models/dscf/marketplace/supplier.rb', line 89 def review_status(context = :default) current_status_for(context) end |