package model // SubmitJobRequest is the API request for submitting a job. type SubmitJobRequest struct { Script string `json:"script"` Partition string `json:"partition,omitempty"` QOS string `json:"qos,omitempty"` CPUs int32 `json:"cpus,omitempty"` Memory string `json:"memory,omitempty"` TimeLimit string `json:"time_limit,omitempty"` JobName string `json:"job_name,omitempty"` Environment map[string]string `json:"environment,omitempty"` } // JobResponse is the simplified API response for a job. type JobResponse struct { JobID int32 `json:"job_id"` Name string `json:"name"` State []string `json:"job_state"` Partition string `json:"partition"` SubmitTime *int64 `json:"submit_time,omitempty"` StartTime *int64 `json:"start_time,omitempty"` EndTime *int64 `json:"end_time,omitempty"` ExitCode *int32 `json:"exit_code,omitempty"` Nodes string `json:"nodes,omitempty"` } // JobListResponse is the paginated response for job listings. type JobListResponse struct { Jobs []JobResponse `json:"jobs"` Total int `json:"total"` Page int `json:"page"` PageSize int `json:"page_size"` } // JobHistoryQuery contains query parameters for job history. type JobHistoryQuery struct { Users string `form:"users" json:"users,omitempty"` StartTime string `form:"start_time" json:"start_time,omitempty"` EndTime string `form:"end_time" json:"end_time,omitempty"` Account string `form:"account" json:"account,omitempty"` Partition string `form:"partition" json:"partition,omitempty"` State string `form:"state" json:"state,omitempty"` JobName string `form:"job_name" json:"job_name,omitempty"` Page int `form:"page,default=1" json:"page,omitempty"` PageSize int `form:"page_size,default=20" json:"page_size,omitempty"` }