module NostrManager class CreateZapReceipt < NostrManagerService def initialize(zap:, paid_at:, preimage:) @zap, @paid_at, @preimage = zap, paid_at, preimage end def call request_tags = parse_tags(@zap.request_event.tags) site_user.create_event( kind: 9735, created_at: @paid_at, content: "", tags: [ ["p", request_tags[:p].first], ["e", request_tags[:e]&.first], ["a", request_tags[:a]&.first], ["bolt11", @zap.payment_request], ["preimage", @preimage], ["description", @zap.request_event.to_json] ].reject { |t| t[1].nil? } ) end end end