# frozen_string_literal: true module RailwayIpc class PublishedMessage < ActiveRecord::Base self.table_name = 'railway_ipc_published_messages' self.primary_key = 'uuid' validates :uuid, :status, presence: true def self.store_message(exchange_name, message) encoded_message = RailwayIpc::Rabbitmq::Payload.encode(message) create!( uuid: message.uuid, message_type: message.class.to_s, user_uuid: message.user_uuid, correlation_id: message.correlation_id, encoded_message: encoded_message, status: 'sent', exchange: exchange_name ) end private def timestamp_attributes_for_create super << :inserted_at end end end