package models

import "time"

// RepoDefaultReviewer: users auto-added as reviewers when a PR is opened.
type RepoDefaultReviewer struct {
	ID        int64     `xorm:"'id' pk autoincr"`
	RepoID    int64     `xorm:"'repo_id' notnull index"`
	UserID    int64     `xorm:"'user_id' notnull"`
	CreatedAt time.Time `xorm:"'created_at' created"`
}

// PrReviewer: a user assigned to review a specific pull request.
type PrReviewer struct {
	ID      int64     `xorm:"'id' pk autoincr"`
	PRID    int64     `xorm:"'pr_id' notnull index"`
	UserID  int64     `xorm:"'user_id' notnull"`
	AddedAt time.Time `xorm:"'added_at' created"`
}

// RepoDefaultDescription: template pre-filled into new PR bodies.
type RepoDefaultDescription struct {
	ID       int64  `xorm:"'id' pk autoincr"`
	RepoID   int64  `xorm:"'repo_id' notnull unique"`
	Template string `xorm:"'template' text"`
}

// RepoExcludedFiles: newline-separated glob patterns for files omitted from PR diffs.
type RepoExcludedFiles struct {
	ID       int64  `xorm:"'id' pk autoincr"`
	RepoID   int64  `xorm:"'repo_id' notnull unique"`
	Patterns string `xorm:"'patterns' text"`
}
