package models

import (
	

	
	
)

type CronJob struct {
	ID        *uuid.UUID `json:"id" gorm:"primary_key,type:uuid"`
	CreatedAt time.Time  `json:"created_at"`
	UpdatedAt time.Time  `json:"updated_at"`

	ExtensionID *uuid.UUID `json:"extension_id"`
	UserID      *uuid.UUID `json:"user_id"`
	ServerID    *uuid.UUID `json:"server_id"`
	BaseURL     string     `json:"base_url"`

	Payload string `json:"payload"`
	Day     int    `json:"day"`
	Time    string `json:"time"`
	Target  string `json:"target"`

	Message string `json:"message"` // Last run message
	Status  Status `json:"status"`  // Last run status
	Output  string `json:"output"`  // Last run output
}

func (CronJob) () string {
	return "cronjobs"
}

func () *CronJob {
	 := uuid.New()

	return &CronJob{
		ID:      &,
		Message: "Pending.",
		Status:  StatusPending,
	}
}

func ( *CronJob) () {
	.Status = StatusProcessing
	.Message = "Cronjob processing."
	.Output = "-"

	database.Connection().Model().Save()
}

func ( *CronJob) ( string) {
	.Status = StatusFailed
	.Message = 

	database.Connection().Model().Save()
}

func ( *CronJob) ( string) {
	.Status = StatusDone
	.Output = 
	.Message = "CronJob completed successfully. Waiting for next run."

	database.Connection().Model().Save()
}