feat: Add company association to projects with role management

- Created Company model and migration with fields: name, tax_id, address, phone, email, website, type, notes
- Created company_project pivot table with role_in_project field
- Added relationships: Project.companies() and Company.projects()
- Created Livewire component ProjectCompanies for managing company assignments
- Added 'Companies' tab to project edit interface alongside Phases and Users tabs
- Implemented assign/remove company functionality with role selection
- Applied same permissions logic as user assignment (assign users permission or Admin role)
This commit is contained in:
2026-05-13 11:20:33 +02:00
parent 69e6c7889a
commit a9000d453e
11 changed files with 964 additions and 0 deletions
+7
View File
@@ -34,6 +34,13 @@ class Project extends Model
return $this->belongsToMany(User::class)->withPivot('role_in_project');
}
public function companies()
{
return $this->belongsToMany(Company::class, 'company_project')
->withPivot('role_in_project')
->withTimestamps();
}
public function creator()
{
return $this->belongsTo(User::class, 'created_by');