simedkom/app/Models/CooperationProposal.php
Yoga Pangestu 2b49688f8f feat: Enhance cooperation proposal management with media handling and improved infolist display
- Removed debug statement from CreateCooperation.php.
- Updated CooperationProposalRelationManager to include a detailed infolist schema with media and status information.
- Improved proposal creation logic in CooperationsTable to handle proposal attachments and store them in the media library.
- Implemented media handling in CooperationProposal model for better integration with file uploads.
2026-01-12 10:33:47 +07:00

43 lines
1.0 KiB
PHP

<?php
namespace App\Models;
use App\Enums\ApprovalStatus;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class CooperationProposal extends Model implements HasMedia
{
use HasFactory, InteractsWithMedia;
protected $guarded = ['id'];
protected function casts(): array
{
return [
'status' => ApprovalStatus::class,
'proposed_start_date' => 'date',
'proposed_end_date' => 'date',
];
}
public function cooperation(): BelongsTo
{
return $this->belongsTo(Cooperation::class);
}
public function partnerMedia(): BelongsTo
{
return $this->belongsTo(PartnerMedia::class);
}
public function rejectionReasons(): MorphMany
{
return $this->morphMany(RejectionReason::class, 'rejectable');
}
}