Add event duplication feature with ticket types cloning

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
kbe
2025-09-15 21:17:24 +02:00
parent c1dde7914c
commit aa68885b84
6 changed files with 119 additions and 1 deletions

View File

@@ -102,6 +102,33 @@ class Event < ApplicationRecord
!!allow_booking_during_event
end
# Duplicate an event with all its ticket types
def duplicate
# Duplicate the event
new_event = self.dup
new_event.name = "Copie de #{name}"
new_event.slug = "#{slug}-copy-#{Time.current.to_i}"
new_event.state = :draft
new_event.created_at = Time.current
new_event.updated_at = Time.current
Event.transaction do
if new_event.save
# Duplicate all ticket types
ticket_types.each do |ticket_type|
new_ticket_type = ticket_type.dup
new_ticket_type.event = new_event
new_ticket_type.save!
end
new_event
else
nil
end
end
rescue
nil
end
private
# Determine if we should perform server-side geocoding