Preset tables, latest workspace view, state logic improved

Signed-off-by: Danny Kopping <danny@coder.com>
This commit is contained in:
Danny Kopping
2025-01-23 14:09:58 +00:00
parent 281a76aad9
commit 4b5555e918
12 changed files with 191 additions and 64 deletions

View File

@ -2968,6 +2968,21 @@ type TemplateVersionPresetParameter struct {
Value string `db:"value" json:"value"`
}
type TemplateVersionPresetPrebuild struct {
ID uuid.UUID `db:"id" json:"id"`
PresetID uuid.UUID `db:"preset_id" json:"preset_id"`
DesiredInstances int32 `db:"desired_instances" json:"desired_instances"`
InvalidateAfterSecs sql.NullInt32 `db:"invalidate_after_secs" json:"invalidate_after_secs"`
}
type TemplateVersionPresetPrebuildSchedule struct {
ID uuid.UUID `db:"id" json:"id"`
PresetPrebuildID uuid.UUID `db:"preset_prebuild_id" json:"preset_prebuild_id"`
Timezone string `db:"timezone" json:"timezone"`
CronSchedule string `db:"cron_schedule" json:"cron_schedule"`
DesiredInstances int32 `db:"desired_instances" json:"desired_instances"`
}
type TemplateVersionTable struct {
ID uuid.UUID `db:"id" json:"id"`
TemplateID uuid.NullUUID `db:"template_id" json:"template_id"`
@ -3344,6 +3359,24 @@ type WorkspaceBuildTable struct {
TemplateVersionPresetID uuid.NullUUID `db:"template_version_preset_id" json:"template_version_preset_id"`
}
type WorkspaceLatestBuild struct {
ID uuid.UUID `db:"id" json:"id"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
UpdatedAt time.Time `db:"updated_at" json:"updated_at"`
WorkspaceID uuid.UUID `db:"workspace_id" json:"workspace_id"`
TemplateVersionID uuid.UUID `db:"template_version_id" json:"template_version_id"`
BuildNumber int32 `db:"build_number" json:"build_number"`
Transition WorkspaceTransition `db:"transition" json:"transition"`
InitiatorID uuid.UUID `db:"initiator_id" json:"initiator_id"`
ProvisionerState []byte `db:"provisioner_state" json:"provisioner_state"`
JobID uuid.UUID `db:"job_id" json:"job_id"`
Deadline time.Time `db:"deadline" json:"deadline"`
Reason BuildReason `db:"reason" json:"reason"`
DailyCost int32 `db:"daily_cost" json:"daily_cost"`
MaxDeadline time.Time `db:"max_deadline" json:"max_deadline"`
TemplateVersionPresetID uuid.NullUUID `db:"template_version_preset_id" json:"template_version_preset_id"`
}
type WorkspaceModule struct {
ID uuid.UUID `db:"id" json:"id"`
JobID uuid.UUID `db:"job_id" json:"job_id"`