scope :to_send, ->(feed) { select(%{ telegram_subscriptions.telegram_chat_id, feed_items.id, feed_items.title, feed_items.url }).joins( 'INNER JOIN feeds ON feed_items.feed_id = feeds.id' ).joins( 'INNER JOIN telegram_subscriptions ON telegram_subscriptions.feed_id = feeds.id' ).joins( 'INNER JOIN telegram_chats ON telegram_chats.id = telegram_subscriptions.telegram_chat_id' ).joins( 'LEFT JOIN sended_feed_items ON sended_feed_items.telegram_chat_id = telegram_chats.id AND sended_feed_items.feed_item_id = feed_items.id' ).where( feed_id: feed.id ).where( # TODO: should I remove this? created_during_first_update: false ).where( 'feed_items.created_at > telegram_subscriptions.reported_about_first_update_at' ).where( 'sended_feed_items.telegram_chat_id IS NULL' ).where( # just to speedup this shit "feed_items.created_at > now() - interval '1 day'" ).where( 'feed_items.created_at > telegram_subscriptions.created_at' ).order( 'telegram_chats.id ASC, remote_created_at ASC' ) }