migrate to gtea from bistbucket

This commit is contained in:
2026-03-15 17:08:23 +07:00
commit 129ca2260c
3716 changed files with 566316 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
class Attendance extends Model
{
protected $fillable = [
'restaurant_id',
'employee_id',
'date',
'first_clock_in',
'last_clock_out',
'hours_worked',
'status',
'breaks',
'notes',
];
protected $casts = [
'breaks' => 'array',
'notes' => 'array',
'date' => 'date',
'first_clock_in' => 'datetime:H:i:s',
'last_clock_out' => 'datetime:H:i:s',
];
public const TABLE_NAME = 'attendances';
protected $table = self::TABLE_NAME;
public function employee(): HasOne
{
return $this->hasOne(Employee::class, 'id', 'employee_id')
->select('id', 'first_name', 'last_name', 'department_id', 'designation_id')
->with('department', 'designation');
}
public function logs(): HasMany
{
return $this->hasMany(AttendanceLog::class, 'attendance_id');
}
}

View File

@@ -0,0 +1,38 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class AttendanceLog extends Model
{
protected $fillable = [
'restaurant_id',
'attendance_id',
'employee_id',
'restaurant_id',
'type',
'punch_time',
'device_id',
'latitude',
'longitude',
'ip_address',
];
protected $dates = ['punch_time', 'created_at', 'updated_at'];
public const TABLE_NAME = 'attendance_logs';
protected $table = self::TABLE_NAME;
public function attendance(): BelongsTo
{
return $this->belongsTo(Attendance::class);
}
public function employee(): BelongsTo
{
return $this->belongsTo(Employee::class);
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Award extends Model
{
protected $fillable = [
'restaurant_id',
'employee_id',
'title',
'description',
'date_awarded',
'amount',
'award_type',
'status',
];
public const TABLE_NAME = 'awards';
protected $table = self::TABLE_NAME;
public function employee(): BelongsTo
{
return $this->belongsTo(Employee::class);
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Candidate extends Model
{
protected $fillable = [
'restaurant_id',
'recruitment_id',
'first_name',
'last_name',
'email',
'phone',
'resume',
'cover_letter',
'status',
'notes',
];
public const TABLE_NAME = 'candidates';
protected $table = self::TABLE_NAME;
public function interviews(): HasMany
{
return $this->hasMany(Interview::class);
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Department extends Model
{
protected $fillable = [
'restaurant_id',
'parent_id',
'name',
'description',
'status',
'meta',
];
public const TABLE_NAME = 'departments';
protected $table = self::TABLE_NAME;
public function users(): HasMany
{
return $this->hasMany(Employee::class);
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Designation extends Model
{
protected $fillable = [
'restaurant_id',
'department_id',
'title',
'description',
'status',
'meta',
];
public const TABLE_NAME = 'designations';
protected $table = self::TABLE_NAME;
public function department(): BelongsTo
{
return $this->belongsTo(Department::class)->select('id', 'parent_id', 'name');
}
public function users(): HasMany
{
return $this->hasMany(Employee::class);
}
}

View File

@@ -0,0 +1,99 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Modules\HRM\Database\Factories\EmployeeFactory;
class Employee extends Model
{
use HasFactory;
protected $fillable = [
'restaurant_id',
'first_name',
'last_name',
'username',
'email',
'phone',
'password',
'otp_code',
'isVerified',
'email_verified_at',
'address',
'avatar',
'role_id',
'user_type',
'facebook',
'twitter',
'linkedin',
'google_plus',
'nid',
'platform',
'device_info',
'last_active_time',
'status',
'department_id',
'designation_id',
'salary_type_id',
'address',
'gender',
'date_of_birth',
'joining_date',
'basic_salary',
'created_by',
'deleted_at',
];
public const TABLE_NAME = 'users';
protected $table = self::TABLE_NAME;
public function attendances(): HasMany
{
return $this->hasMany(Attendance::class);
}
public function attendanceLogs(): HasMany
{
return $this->hasMany(AttendanceLog::class);
}
public function department(): BelongsTo
{
return $this->belongsTo(Department::class)->select('id', 'parent_id', 'name');
}
public function designation(): BelongsTo
{
return $this->belongsTo(Designation::class)->select('id', 'department_id', 'title')->with('department');
}
public function salaryType(): BelongsTo
{
return $this->belongsTo(SalaryType::class);
}
public function loans(): HasMany
{
return $this->hasMany(Loan::class);
}
public function awards(): HasMany
{
return $this->hasMany(Award::class);
}
public function leaves(): HasMany
{
return $this->hasMany(LeaveApplication::class);
}
protected static function newFactory(): EmployeeFactory
{
return EmployeeFactory::new();
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
class EmployeeSalary extends Model
{
protected $fillable = [
'restaurant_id',
'employee_id',
'salary_month',
'basic_salary',
'allowances',
'deductions',
'overtime_hours',
'overtime_rate',
'bonus',
'net_salary',
'payment_date',
'remarks',
'status',
'salary_breakdown',
];
public const TABLE_NAME = 'employee_salaries';
protected $table = self::TABLE_NAME;
protected $casts = [
'salary_breakdown' => 'array',
];
}

View File

@@ -0,0 +1,34 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Modules\Authentication\Models\User;
class EmployeeShiftAssignment extends Model
{
protected $fillable = [
'restaurant_id',
'employee_id',
'shift_id',
'status',
'created_at',
'updated_at',
'deleted_at',
];
public const TABLE_NAME = 'employee_shift_assignments';
protected $table = self::TABLE_NAME;
public function employee(): BelongsTo
{
return $this->belongsTo(User::class, 'employee_id');
}
public function shift(): BelongsTo
{
return $this->belongsTo(Shift::class, 'shift_id');
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Interview extends Model
{
protected $fillable = [
'restaurant_id',
'candidate_id',
'department_id',
'interview_date',
'interviewer_name',
'feedback',
'rating',
'status',
];
public const TABLE_NAME = 'interviews';
protected $table = self::TABLE_NAME;
public function candidate(): BelongsTo
{
return $this->belongsTo(Candidate::class);
}
public function department(): BelongsTo
{
return $this->belongsTo(Department::class);
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class LeaveApplication extends Model
{
protected $fillable = [
'restaurant_id',
'employee_id',
'leave_type_id',
'start_date',
'end_date',
'reason',
'admin_note',
'status',
'approved_by',
'leave_duration_type',
];
public const TABLE_NAME = 'leave_applications';
protected $table = self::TABLE_NAME;
public function employee(): BelongsTo
{
return $this->belongsTo(Employee::class);
}
public function leaveType(): BelongsTo
{
return $this->belongsTo(LeaveType::class);
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class LeaveType extends Model
{
protected $fillable = [
'restaurant_id',
'name',
'max_days',
'carry_forward',
'is_paid',
'status',
'description',
];
public const TABLE_NAME = 'leave_types';
protected $table = self::TABLE_NAME;
public function leaves(): HasMany
{
return $this->hasMany(LeaveApplication::class);
}
}

View File

@@ -0,0 +1,40 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Loan extends Model
{
protected $fillable = [
'restaurant_id',
'employee_id',
'amount',
'schedule_type',
'fine_rate',
'installments',
'paid_amount',
'remaining_amount',
'status',
'loan_type',
'remarks',
'start_date',
'end_date',
];
public const TABLE_NAME = 'loans';
protected $table = self::TABLE_NAME;
public function employee(): BelongsTo
{
return $this->belongsTo(Employee::class, 'user_id');
}
public function installments(): HasMany
{
return $this->hasMany(LoanInstallment::class);
}
}

View File

@@ -0,0 +1,32 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class LoanInstallment extends Model
{
protected $fillable = [
'restaurant_id',
'loan_id',
'amount',
'due_date',
'paid_date',
'is_paid',
'is_overdue',
'fine_amount',
'total_due',
'status',
'remarks',
];
public const TABLE_NAME = 'loan_installments';
protected $table = self::TABLE_NAME;
public function loan(): BelongsTo
{
return $this->belongsTo(Loan::class);
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
class Recruitment extends Model
{
protected $fillable = [
'restaurant_id',
'title',
'description',
'requirements',
'vacancy_count',
'department_id',
'designation_id',
'start_date',
'end_date',
'job_type',
'recruiter_id',
'status',
];
public const TABLE_NAME = 'recruitments';
protected $table = self::TABLE_NAME;
}

View File

@@ -0,0 +1,38 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class SalaryGenerate extends Model
{
protected $fillable = [
'restaurant_id',
'employee_id',
'month',
'basic_salary',
'total_earnings',
'total_deductions',
'overtime_hours',
'overtime_amount',
'net_salary',
'generated_date',
'generated_by',
'status',
'salary_breakdown',
];
protected $casts = [
'salary_breakdown' => 'array',
];
public const TABLE_NAME = 'salary_generates';
protected $table = self::TABLE_NAME;
public function employee(): BelongsTo
{
return $this->belongsTo(Employee::class, 'user_id');
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class SalarySetup extends Model
{
protected $fillable = [
'restaurant_id',
'employee_id',
'salary_type_id',
'amount',
'calculation_type',
'notes',
'status',
];
public const TABLE_NAME = 'salary_setups';
protected $table = self::TABLE_NAME;
public function employee(): BelongsTo
{
return $this->belongsTo(Employee::class, 'user_id');
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class SalaryType extends Model
{
protected $fillable = [
'restaurant_id',
'name',
'type',
'default_amount',
'calculation_method',
'is_taxable',
'is_visible_in_payslip',
'status',
];
public const TABLE_NAME = 'salary_types';
protected $table = self::TABLE_NAME;
public function users(): HasMany
{
return $this->hasMany(Employee::class);
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
class Shift extends Model
{
protected $fillable = [
'restaurant_id',
'name',
'start_time',
'end_time',
'description',
'status',
'created_at',
'updated_at',
'deleted_at',
];
public const TABLE_NAME = 'shifts';
protected $table = self::TABLE_NAME;
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Modules\HRM\Models;
use Illuminate\Database\Eloquent\Model;
class WeeklyHoliday extends Model
{
protected $fillable = [
'restaurant_id',
'day',
'description',
'status',
];
public const TABLE_NAME = 'weekly_holidays';
protected $table = self::TABLE_NAME;
}