Add models and migrations for Anggota, Buku, Kategori, and Peminjaman

This commit is contained in:
2026-03-17 19:16:26 +07:00
parent 1aff175819
commit e8e28349fc
8 changed files with 242 additions and 0 deletions

30
app/Models/Anggota.php Normal file
View File

@@ -0,0 +1,30 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Anggota extends Model
{
use HasFactory, SoftDeletes;
protected $fillable = [
'nama',
'email',
'no_telepon',
'alamat',
'tanggal_bergabung',
'status',
];
protected $casts = [
'tanggal_bergabung' => 'date',
];
public function peminjamans()
{
return $this->hasMany(Peminjaman::class);
}
}

35
app/Models/Buku.php Normal file
View File

@@ -0,0 +1,35 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Buku extends Model
{
use HasFactory, SoftDeletes;
protected $fillable = [
'kategori_id',
'judul',
'pengarang',
'penerbit',
'tahun_terbit',
'isbn',
'stok',
'stok_tersedia',
'sinopsis',
'cover',
];
public function kategori()
{
return $this->belongsTo(Kategori::class);
}
public function peminjamans()
{
return $this->hasMany(Peminjaman::class);
}
}

21
app/Models/Kategori.php Normal file
View File

@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Kategori extends Model
{
use HasFactory;
protected $fillable = [
'nama_kategori',
'deskripsi',
];
public function bukus()
{
return $this->hasMany(Buku::class);
}
}

38
app/Models/Peminjaman.php Normal file
View File

@@ -0,0 +1,38 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Peminjaman extends Model
{
use HasFactory;
protected $fillable = [
'anggota_id',
'buku_id',
'tanggal_pinjam',
'tanggal_kembali_rencana',
'tanggal_kembali_aktual',
'status',
'denda',
'catatan',
];
protected $casts = [
'tanggal_pinjam' => 'date',
'tanggal_kembali_rencana' => 'date',
'tanggal_kembali_aktual' => 'date',
];
public function anggota()
{
return $this->belongsTo(Anggota::class);
}
public function buku()
{
return $this->belongsTo(Buku::class);
}
}