NASER add task functions

This commit is contained in:
mobinesaghi
2026-04-23 14:49:46 +03:30
parent 2419808175
commit 2bcf9f1b7e
47 changed files with 5793 additions and 1029 deletions
+31
View File
@@ -0,0 +1,31 @@
<?php
namespace App\Models;
use Illuminate\Console\View\Components\Task;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class App extends Model
{
use HasFactory;
protected $table = 'apps';
protected $fillable = [
'name',
'created_at',
'updated_at',
'deleted_at',
'name_fa',
'type',
];
protected $TYPE = [
1=>'خانگی',
2=>'همکار'
];
}
+35
View File
@@ -0,0 +1,35 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TaskComment extends Model
{
use HasFactory;
protected $table = 'task_comments';
protected $fillable = [
'task_id',
'user_id',
'body',
'mentioned_user_ids',
];
protected $casts = [
'mentioned_user_ids' => 'array',
];
public function task()
{
return $this->belongsTo(Tasks::class, 'task_id');
}
public function user()
{
return $this->belongsTo(User::class, 'user_id');
}
}
+33
View File
@@ -0,0 +1,33 @@
<?php
namespace App\Models;
use Illuminate\Console\View\Components\Task;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class TaskDuration extends Model
{
use HasFactory;
protected $table = 'tasks_duration';
public $timestamps = false;
protected $fillable = [
'task_id',
'duration',
'start',
'end',
'user_id',
];
public function task(){
return $this->belongsTo(Tasks::class, 'task_id', 'id');
}
public function user()
{
return $this->belongsTo(User::class, 'user_id', 'id');
}
}
+19 -3
View File
@@ -6,15 +6,16 @@ use Illuminate\Console\View\Components\Task;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\SoftDeletes;
class Tasks extends Model
{
use HasFactory;
use HasFactory,SoftDeletes;
protected $table = 'tasks';
protected $fillable = [
'task_id',
'title',
@@ -65,6 +66,21 @@ class Tasks extends Model
return $this->belogsTo(App::class);
}
public function duration(){
return $this->hasMany(TaskDuration::class, 'task_id', 'id');
}
public function comments()
{
return $this->hasMany(TaskComment::class, 'task_id', 'id')->orderBy('id', 'desc');
}
public function userDurations($userId = null)
{
$userId = $userId ?: User::where('user_name', $_COOKIE['user_identity'])->first()->id; // پیش‌فرض: کاربر جاری
return $this->taskDurations()->where('user_id', $userId);
}
public function filterByState($tasks){
$backlog = [];
$todo = [];
@@ -86,7 +102,7 @@ class Tasks extends Model
'todo' => $todo,
'inprogress' => $inprogress,
'done' => $done,
'count' => count($tasks),
// 'count' => count($tasks),
];
return $tasks;
}
+2 -1
View File
@@ -6,6 +6,7 @@ namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\DB;
@@ -15,7 +16,7 @@ use Morilog\Jalali\Jalalian;
class User extends Authenticatable
{
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasFactory, Notifiable;
use HasFactory, Notifiable, softDeletes;
/**