Initial commit: Animexe Laravel platform

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 00:01:48 +03:00
co-authored by Claude Opus 4.8
commit a63515cfc6
366 changed files with 74773 additions and 0 deletions
@@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
public function up(): void
{
Schema::create('ads', function (Blueprint $table) {
$table->id();
$table->string('name', 120); // Admin içi tanımlayıcı isim
$table->enum('type', ['video', 'banner'])->default('video');
$table->string('placement', 30)->default('preroll'); // preroll | home_mid | home_bottom
$table->string('file_path')->nullable(); // Yüklenen dosya (storage/public)
$table->text('external_url')->nullable(); // Dış URL (mp4 veya görsel)
$table->text('click_url')->nullable(); // Tıklama hedefi
$table->unsignedSmallInteger('skip_after')->default(5); // Video: kaç sn sonra geçilebilir
$table->unsignedSmallInteger('weight')->default(10); // Rotasyon ağırlığı (yüksek = sık)
$table->boolean('is_active')->default(true);
$table->timestamp('starts_at')->nullable(); // Zamanlama (opsiyonel)
$table->timestamp('ends_at')->nullable();
$table->unsignedBigInteger('impressions')->default(0);
$table->unsignedBigInteger('clicks')->default(0);
$table->timestamps();
$table->index(['type', 'is_active']);
$table->index('placement');
});
}
public function down(): void
{
Schema::dropIfExists('ads');
}
};