class PullRequests::SendJournalService < ApplicationService

    def initialize(project, pull_request,current_user)
        @project       = project
        @pull_request  = pull_request
        @issue  = pull_request.issue
        @current_user = current_user
        @org = project.owner
    end

    def call
        if @org.enabling_cla && @org.cla.present? && @org.cla.pr_need && !@org.is_member?(@current_user&.id) && !@org.cla.valid_sign(@current_user&.id)
            ActiveRecord::Base.transaction do
                sender_id = if Rails.env.development?
                    User.last.id
                else
                    87461
                end
                journal_params = {
                    journalized_id: @issue.id ,
                    journalized_type: "Issue",
                    user_id: sender_id ,
                    notes: "<b>#{@current_user.nickname}</b>您好！欢迎参与 #{@project.name} 的贡献。首次进行贡献请完成《<a href='/#{@project.owner.login}/cla/#{@project.owner.cla.key}' target='_blank'>#{@project.owner.cla.name}</a>》的签署，签署完成后，项目成员才可查看到您的合并请求",
                }
                journal = Journal.new journal_params
                if journal.save
                    @pull_request.update_attributes(status: 3)
                    TouchWebhookJob.set(wait: 5.seconds).perform_later('PullRequestComment', @issue&.id, sender_id, journal.id, 'created', {})
                    push_activity_2_blockchain("issue_comment_create", journal) if Site.has_blockchain? && @project.use_blockchain
                end
            end
        end
    end
end
