diff --git a/app/Http/Requests/StoreBookRequest.php b/app/Http/Requests/StoreBookRequest.php new file mode 100644 index 0000000..20a99ad --- /dev/null +++ b/app/Http/Requests/StoreBookRequest.php @@ -0,0 +1,28 @@ +|string> + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/UpdateBookRequest.php b/app/Http/Requests/UpdateBookRequest.php new file mode 100644 index 0000000..bbf1d19 --- /dev/null +++ b/app/Http/Requests/UpdateBookRequest.php @@ -0,0 +1,28 @@ +|string> + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Models/Book.php b/app/Models/Book.php new file mode 100644 index 0000000..ed0b954 --- /dev/null +++ b/app/Models/Book.php @@ -0,0 +1,24 @@ + 'book'], + denormalizationContext: ['groups' => 'book'], +)] +#[ApiProperty(property: 'title', serialize: new Groups(['book']))] +#[ApiProperty(property: 'isbn', serialize: new Groups(['book']))] +#[ApiProperty(property: 'isbn', serialize: new Groups(['book']))] +#[ApiProperty(property: 'description', serialize: new Groups(['book']))] +class Book extends Model +{ + /** @use HasFactory<\Database\Factories\BookFactory> */ + use HasFactory; +} diff --git a/database/factories/BookFactory.php b/database/factories/BookFactory.php new file mode 100644 index 0000000..43cd7b4 --- /dev/null +++ b/database/factories/BookFactory.php @@ -0,0 +1,27 @@ + + */ +class BookFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'title' => mb_convert_case(fake()->words(4, true), MB_CASE_TITLE), + 'isbn' => fake()->isbn13(), + 'description' => fake()->text(), + 'author' => fake()->name(), + 'publication_date' => fake()->date(), + ]; + } +} diff --git a/database/migrations/2025_02_05_213536_create_books_table.php b/database/migrations/2025_02_05_213536_create_books_table.php new file mode 100644 index 0000000..09db08e --- /dev/null +++ b/database/migrations/2025_02_05_213536_create_books_table.php @@ -0,0 +1,34 @@ +id(); + + $table->string('isbn')->nullable(); + $table->string('title'); + $table->text('description'); + $table->string('author'); + $table->date('publication_date')->nullable(); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('books'); + } +}; diff --git a/database/seeders/BookSeeder.php b/database/seeders/BookSeeder.php new file mode 100644 index 0000000..451ca2b --- /dev/null +++ b/database/seeders/BookSeeder.php @@ -0,0 +1,17 @@ +create(); + } +}