diff --git a/CasosDeUsos.drawio.pdf b/CasosDeUsos.drawio.pdf deleted file mode 100644 index cbd98cc724dbd7bcc912d8a41faf830d6a784b23..0000000000000000000000000000000000000000 Binary files a/CasosDeUsos.drawio.pdf and /dev/null differ diff --git a/app/Models/Movie.php b/app/Models/Movie.php new file mode 100644 index 0000000000000000000000000000000000000000..2bb7d1f9ec53e08a065f8c23f316e52f55fdeb6a --- /dev/null +++ b/app/Models/Movie.php @@ -0,0 +1,12 @@ +<?php + +namespace App\Models; + +use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Model; + +class Movie extends Model +{ + use HasFactory; + protected $fillable = ['title', 'description', 'year', 'genre', 'image', 'video_url']; +} \ No newline at end of file diff --git a/database/factories/MovieFactory.php b/database/factories/MovieFactory.php new file mode 100644 index 0000000000000000000000000000000000000000..02ade0de8519a74abdf99100c239cd36869a2c73 --- /dev/null +++ b/database/factories/MovieFactory.php @@ -0,0 +1,29 @@ +<?php + +namespace Database\Factories; + +use Illuminate\Database\Eloquent\Factories\Factory; + +/** + * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Movie> + */ +class MovieFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array<string, mixed> + */ + public function definition() + { + return [ + // + 'title' => $this->faker->sentence(3), + 'description' => $this->faker->paragraph(), + 'year' => $this->faker->year(), + 'genre' => $this->faker->randomElement(['Action', 'Comedy', 'Drama', 'Horror', 'Sci-Fi']), + 'image' => $this->faker->imageUrl(300, 450, 'movies'), + 'video_url' => 'https://example.com/video.mp4' + ]; + } +} diff --git a/database/migrations/2025_03_05_172555_create_movies_table.php b/database/migrations/2025_03_05_172555_create_movies_table.php new file mode 100644 index 0000000000000000000000000000000000000000..ec584404c9592c708d1e15148a193dcadc043b9b --- /dev/null +++ b/database/migrations/2025_03_05_172555_create_movies_table.php @@ -0,0 +1,37 @@ +<?php + +use Illuminate\Database\Migrations\Migration; +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\Schema; + +return new class extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::create('movies', function (Blueprint $table) { + $table->id(); + $table->string('title'); + $table->text('description')->nullable(); + $table->year('year'); + $table->string('genre'); + $table->string('image'); // URL o nombre del archivo + $table->string('video_url'); // URL del video + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('movies'); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 76d96dc7f5bf749bc0e35a99fb36371e82a709c1..d8a7ef6b5248339fbe1fbc7e685ff0a5154a7578 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -14,11 +14,9 @@ class DatabaseSeeder extends Seeder */ public function run() { - // \App\Models\User::factory(10)->create(); - - // \App\Models\User::factory()->create([ - // 'name' => 'Test User', - // 'email' => 'test@example.com', - // ]); + + $this->call([ + MovieSeeder::class, + ]); } } diff --git a/database/seeders/MovieSeeder.php b/database/seeders/MovieSeeder.php new file mode 100644 index 0000000000000000000000000000000000000000..88c6ee7eeb4a4c4bfd341e5a34e5aa67c3c1f855 --- /dev/null +++ b/database/seeders/MovieSeeder.php @@ -0,0 +1,21 @@ +<?php + +namespace Database\Seeders; + +use Illuminate\Database\Console\Seeds\WithoutModelEvents; +use Illuminate\Database\Seeder; +use App\Models\Movie; + +class MovieSeeder extends Seeder +{ + /** + * Run the database seeds. + * + * @return void + */ + public function run() + { + // + Movie::factory()->count(10)->create(); // Crea 10 películas de prueba + } +} diff --git a/diagram_bd.drawio.pdf b/diagram_bd.drawio.pdf deleted file mode 100644 index 734d4bc9a35ad16a55d8940cc46d525bd5ca3547..0000000000000000000000000000000000000000 Binary files a/diagram_bd.drawio.pdf and /dev/null differ diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..7492ad112019c0f91eedf42ac3d2fd360b5ec8a5 --- /dev/null +++ b/resources/views/home.blade.php @@ -0,0 +1,25 @@ +@extends('layouts.disenyo') + +@section('content') + +<div class="container"> + <h1 class="mb-4">Películas Destacadas</h1> + <div class="row"> + @foreach($movies as $movie) + <div class="col-md-4"> + <div class="card mb-3"> + <img src="{{ $movie->image }}" class="card-img-top" alt="{{ $movie->title }}"> + <div class="card-body"> + <h5 class="card-title">{{ $movie->title }}</h5> + <p class="card-text">{{ Str::limit($movie->description, 100) }}</p> + <p><strong>Género:</strong> {{ $movie->genre }}</p> + <p><strong>Año:</strong> {{ $movie->year }}</p> + <a href="#" class="btn btn-primary">Ver Película</a> + </div> + </div> + </div> + @endforeach + </div> +</div> + +@endsection diff --git a/resources/views/layouts/disenyo.blade.php b/resources/views/layouts/disenyo.blade.php index 3e91037131971337a10473f345e7925f3808dc62..32b752b595214ff554f885db24022bc7abfadb5d 100644 --- a/resources/views/layouts/disenyo.blade.php +++ b/resources/views/layouts/disenyo.blade.php @@ -54,4 +54,4 @@ </main> </body> -</html> \ No newline at end of file +</html> diff --git a/routes/web.php b/routes/web.php index 26d24a10acb22c4488a7c43347106e6d58dae0aa..b6b379d08a53daf233688c2f70f2b9f62a9d68f5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,8 @@ <?php use Illuminate\Support\Facades\Route; -use App\Http\Controllers\SeriesListController; +use App\Models\Movie; + /* |-------------------------------------------------------------------------- @@ -21,7 +22,8 @@ // after logging the user will go to the home page of app // this is main page containing all info e:g films, series etc Route::get('/home', function () { - return view('home'); + $movies = Movie::all(); + return view('home', compact('movies')); }); // this route will only display latest films only