# == Schema Information
#
# Table name: sync_repositories
#
#  id                    :integer          not null, primary key
#  project_id            :integer
#  type                  :string(255)
#  repo_name             :string(255)
#  external_repo_address :string(255)
#  sync_granularity      :integer
#  sync_direction        :integer
#  created_at            :datetime         not null
#  updated_at            :datetime         not null
#  external_token        :string(255)
#  webhook_gid           :integer
#
# Indexes
#
#  index_sync_repositories_on_project_id  (project_id)
#

class SyncRepository < ApplicationRecord

  belongs_to :project 
  has_many :sync_repository_branches, dependent: :destroy

  before_destroy :unbind_reposyncer

  validates :repo_name, uniqueness: { message: "已存在" }

  def unbind_reposyncer
    Reposync::DeleteRepoService.call(self.repo_name) rescue nil
  end
  
end
