@extends('layouts.app') @section('title', $product->name) @section('actions') @can('update', $product) Düzenle @endcan @endsection @section('content')
Tür
{{ $product->type->label() }}
Ürün kodu
{{ $product->product_code ?? '—' }}
Fiyat
{{ $product->currency->format($product->price) }} · {{ $product->pricing_model->label() }}
Durum
{{ $product->is_active ? 'Aktif' : 'Pasif' }}
@if ($product->isSoftware())
Min. desteklenen sürüm
{{ $product->min_supported_version ?? '—' }}
@endif
@if ($product->description)

{{ $product->description }}

@endif
@if ($product->isSoftware())
{{-- Özellikler --}}

Özellikler (feature flag)

@forelse ($product->features as $feature) @empty @endforelse
AnahtarAd
{{ $feature->key }} {{ $feature->name }} @can('update', $product)
@csrf @method('DELETE')
@endcan
Özellik tanımlı değil.
@can('update', $product) @endcan
{{-- Sürümler --}}

Sürümler

@forelse ($product->versions as $version) @empty @endforelse
SürümYayınNot
{{ $version->version }} {{ $version->released_at?->format('d.m.Y') ?? '—' }} {{ \Illuminate\Support\Str::limit($version->notes, 60) }} @can('update', $product)
@csrf @method('DELETE')
@endcan
Sürüm kaydı yok.
@can('update', $product) @endcan
{{-- İmzalama anahtarları --}}

İmzalama anahtarları (Ed25519)

Lisans yanıtları ürünün aktif anahtarıyla imzalanır. İstemciye aşağıdaki public key gömülür; private key sunucuda şifreli dosyada durur ve hiçbir ekranda gösterilmez. Rotasyonda eski anahtar "emekliye ayrılıyor" durumuna geçer ve istemciler güncellenene kadar yayınlanmaya devam eder.

@forelse ($product->signingKeys as $key) @empty @endforelse
kidPublic key (base64)DurumOluşturma
{{ $key->kid }} {{ $key->public_key }} {{ $key->status->label() }} {{ $key->created_at->timezone(config('app.display_timezone'))->format('d.m.Y') }} · {{ $key->creator?->name ?? 'Sistem' }} @if ($key->status === \App\Enums\SigningKeyStatus::Retiring) @can('manageKeys', $product)
@csrf
@endcan @endif
Henüz anahtar üretilmedi. Lisans doğrulama için bir anahtar gerekir.
@can('manageKeys', $product) @endcan
@endif @can('delete', $product)
@csrf @method('DELETE')
@endcan @endsection