| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- class Import extends Model
- {
- use HasFactory;
- const DEFAULT_SORT_BY = 'created_at';
- const STATUS_PENDING = 'pending';
- const STATUS_COMPLETED = 'completed';
- const STATUS_FAILED = 'failed';
- const TYPE_LABELS = [
- 'orders' => 'Площадки',
- 'reclamations' => 'Рекламации',
- 'mafs' => 'МАФы',
- 'catalog' => 'Каталог',
- 'spare_part_orders' => 'Заказы запчастей',
- 'maf_orders' => 'Заказы МАФ',
- ];
- const STATUS_LABELS = [
- 'new' => 'Новый',
- 'pending' => 'В ожидании',
- 'in_progress' => 'В процессе',
- 'completed' => 'Завершён',
- 'failed' => 'Ошибка',
- 'DONE' => 'Завершён',
- 'ERROR' => 'Ошибка',
- ];
- protected $fillable = [
- 'type',
- 'year',
- 'filename',
- 'status',
- 'result',
- 'user_id',
- 'file_path',
- 'original_filename',
- ];
- public function log(string $message, string $level = 'INFO'): string
- {
- $d = date('Y-m-d H:i:s', strtotime('now'));
- $string = "$d\t$level:\t$message\n";
- $this->result = $this->result . $string;
- return $string;
- }
- public function getTypeLabelAttribute(): string
- {
- return self::TYPE_LABELS[$this->type] ?? $this->type;
- }
- public function getStatusLabelAttribute(): string
- {
- return self::STATUS_LABELS[$this->status] ?? $this->status;
- }
- }
|