79 lines
2.5 KiB
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"`
|
|
}
|