docxTemplater/dal/model/workerTask.go

79 lines
2.5 KiB
Go

package model
import (
"time"
)
type WorkerTask struct {
/* Идентификатор задачи */
ID string `json:"id" bson:"_id,omitempty"`
/* Пользователь пены */
PenaID string `json:"pena_id" bson:"pena_id"`
/* Амо аккаунт вызвавший генерацию */
AmoID string `json:"amo_id" bson:"amo_id"`
/* Пользователь амо вызвавший генерацию */
AmoUserID int64 `json:"amo_user_id" bson:"amo_user_id"`
/* Статус генерации */
Status WorkerTaskStatus `json:"status" bson:"status"`
/* Сделка по которой происходит генерация */
LeadID int64 `json:"lead_id" bson:"lead_id"`
/* Шаблон для генерации */
TemplateID string `json:"template_id" bson:"template_id"`
/* Исходный файл-шаблон */
Source WorkerSource `json:"source" bson:"source"`
/* Куда отправить результат */
Target WorkerTarget `json:"target" bson:"target"`
/* Ссылка для скачивания результата */
DownloadURL string `json:"download_url" bson:"download_url"`
/* Публичная ссылка для просмотра\редактирования\скачивания */
PublicURL string `json:"public_url" bson:"public_url"`
/* Время последнего обновления */
UpdatedAt time.Time `json:"updated_at" bson:"updated_at"`
/* Время создания */
CreatedAt time.Time `json:"created_at" bson:"created_at"`
}
type WorkerTaskStatus string
func (s WorkerTaskStatus) String() string {
return string(s)
}
const (
WorkerTaskStatusNew = "new"
WorkerTaskStatusDone = "done"
WorkerTaskStatusFailed = "failed"
WorkerTaskStatusPending = "pending"
WorkerTaskStatusTimeout = "timeout"
WorkerTaskStatusProcessing = "processing"
)
func (s WorkerTaskStatus) Valid() bool {
return s == WorkerTaskStatusDone || s == WorkerTaskStatusFailed || s == WorkerTaskStatusPending ||
s == WorkerTaskStatusTimeout || s == WorkerTaskStatusProcessing || s == WorkerTaskStatusNew
}
type WorkerSource struct {
File string `bson:"file" json:"file"`
StorageID string `bson:"storage_id" json:"storage_id"`
StorageType string `bson:"storage_type" json:"storage_type"`
}
type WorkerTarget struct {
File string `bson:"file" json:"file"`
StorageID string `bson:"storage_id" json:"storage_id"`
StorageType string `bson:"storage_type" json:"storage_type"`
}