80c76a0cba
Extracts the five domain types out of src/core/model.go into a new src/domain package (job.go, record.go, config.go). The unexported nextDue field is promoted to NextDue so it is accessible from core. All references across src/core, src/gui, and cmd/gosentry are updated to use domain.TypeName. src/core/model.go is reduced to a bare package declaration. Windows and Linux cross-compilation both pass; all tests remain green. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
26 lines
1.0 KiB
Go
26 lines
1.0 KiB
Go
package domain
|
|
|
|
// StartInTrayArgument is written to the Windows Startup shortcut so autostart
|
|
// can keep the scheduler running without flashing the main window. Manual
|
|
// launches omit this flag and open the normal window.
|
|
const StartInTrayArgument = "--start-in-tray"
|
|
|
|
// Config is stored in gosentry.yaml next to the program. It contains only
|
|
// application-level choices: where to read jobs from, where to write logs, and
|
|
// how the desktop shell should behave.
|
|
type Config struct {
|
|
JobsDir string `yaml:"jobs_dir"`
|
|
LogsDir string `yaml:"logs_dir"`
|
|
MaxLogFiles int `yaml:"max_log_files"`
|
|
MaxLogAgeDays int `yaml:"max_log_age_days"`
|
|
StartOnLogin bool `yaml:"start_on_login"`
|
|
KeepRunningInTray bool `yaml:"keep_running_in_tray"`
|
|
NotifyOnFailure bool `yaml:"notify_on_failure"`
|
|
}
|
|
|
|
// JobsFile is the on-disk shape of jobs.yaml. Wrapping the slice in a top-level
|
|
// object leaves room for future metadata without breaking the basic file format.
|
|
type JobsFile struct {
|
|
Jobs []Job `yaml:"jobs"`
|
|
}
|