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"` }