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) self.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