package domain

import (
	"time"
)

// JobProvider represents different job board providers
type JobProvider int

type JobStatus int

const (
	LinkedIn JobProvider = iota
	Indeed
	Glassdoor
	Bayt
	TokyoDev
	JapanDev
	Google
	HiringCafe
)

const (
	JobStatusCreated JobStatus = iota
	JobStatusAnalyzed
	JobStatusError
)

type Job struct {
	ID          int64
	Title       string
	Company     string
	CompanyLink string
	Location    string
	JobLink     string
	Provider    JobProvider
	JobPostTime *time.Time
	Status      JobStatus
}

type JobAnalysisResult struct {
	ID              int64
	JobID           int64
	AnalysisResult  string
	MatchScore      *int
	KeySkills       []string
	MissingSkills   []string
	Recommendations *string
	AnalyzedAt      time.Time
}

type SearchQuery struct {
	Keywords string `json:"keywords"`
	Location string `json:"location"`
	NumPages int    `json:"numPages"`
	FWT      string `json:"f_WT"` // Work type filter (1=onsite, 2=remote, 3=hybrid)
}
