Create a new subresource on a talk, like /talk_comments/12345/reported. To report a comment as spam, a logged in user makes a POST request with no body data to this endpoint.
We will need exactly the same for event comments i.e. /event_comments/12345/reported.
When we receive this request, add a row to the relevant table (reported_talk_comments or reported_event_comments) indicating which comment was reported, when and by whom. Update the event_comment or talk_comment row itself to set active = 0.
Now check that inactive comments aren't returned by the API - they shouldn't be but just check!