package domain

import "time"

// ImportJob tracks a gateway import request for idempotency.
type ImportJob struct {
	ImportJobID  string          `bson:"import_job_id" json:"import_job_id"`
	OrgID        string          `bson:"org_id" json:"org_id"`
	ConnectionID string          `bson:"connection_id" json:"connection_id"`
	Provider     string          `bson:"provider" json:"provider"`
	Status       string          `bson:"status" json:"status"`
	RepoJobs     []ImportRepoJob `bson:"repo_jobs" json:"repo_jobs"`
	CreatedAt    time.Time       `bson:"created_at" json:"created_at"`
}

// ImportRepoJob links an import to a sync job for one repository.
type ImportRepoJob struct {
	JobID          string `bson:"job_id" json:"job_id"`
	ProviderRepoID string `bson:"provider_repo_id" json:"provider_repo_id"`
	FullName       string `bson:"full_name" json:"full_name"`
	RepoID         string `bson:"repo_id" json:"repo_id"`
	Status         string `bson:"status" json:"status"`
}
