'int', 'fiscal_start_month' => 'int', 'fiscal_start_day' => 'int', 'default_annual_leave' => 'int', 'additional_leave_per_year' => 'int', 'max_annual_leave' => 'int', 'carry_over_enabled' => 'boolean', 'carry_over_max_days' => 'int', 'carry_over_expiry_months' => 'int', ]; public const STANDARD_TYPE_MAP = [ 'fiscal' => '회계연도', 'hire' => '입사일', ]; // ========================================================================= // 관계 // ========================================================================= public function tenant(): BelongsTo { return $this->belongsTo(Tenant::class); } // ========================================================================= // Accessor // ========================================================================= public function getStandardTypeLabelAttribute(): string { return self::STANDARD_TYPE_MAP[$this->standard_type] ?? $this->standard_type; } // ========================================================================= // 스코프 // ========================================================================= public function scopeForTenant($query, ?int $tenantId = null) { $tenantId = $tenantId ?? session('selected_tenant_id'); if ($tenantId) { return $query->where($this->table.'.tenant_id', $tenantId); } return $query; } }