first commit

This commit is contained in:
2026-03-09 22:09:10 +01:00
commit 7b6b294b0f
269 changed files with 10338 additions and 0 deletions

15
BookHive/Models/Author.cs Normal file
View File

@@ -0,0 +1,15 @@
using System.ComponentModel.DataAnnotations;
namespace BookHive.Models;
public class Author
{
[Key]public int Id { get; set; }
[Required, MaxLength(100)] public string? FirstName { get; set; }
[Required, MaxLength(100)] public string? LastName { get; set; }
[MaxLength(2000)] public string? Biography { get; set; }
[Required] public DateOnly BirthDate { get; set; }
[Required, MaxLength(60)] public string? Nationality { get; set; }
public List<Book>? Books { get; set; }
}

20
BookHive/Models/Book.cs Normal file
View File

@@ -0,0 +1,20 @@
using System.ComponentModel.DataAnnotations;
namespace BookHive.Models;
public class Book
{
[Key] public int Id { get; set; }
[Required, MaxLength(200)] public string? Title { get; set; }
[Required] public string? Isbn { get; set; }
[MaxLength(3000)] public string? Summary { get; set; }
[Required] public int PageCount { get; set; }
[Required] public DateOnly PublishedDate { get; set; }
[Required, MaxLength(50)] public string? Genre { get; set; }
public Author? Author { get; set; }
[Required] public int AuthorId { get; set; }
public List<Loan>? Loans { get; set; }
public List<Review>? Reviews { get; set; }
}

18
BookHive/Models/Loan.cs Normal file
View File

@@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace BookHive.Models;
public class Loan
{
[Key] public int Id { get; set; }
public Book? Book { get; set; }
[Required] public int BookId { get; set; }
public Member? Member { get; set; }
[Required] public int MemberId { get; set; }
[Required] public DateOnly LoanDate { get; set; }
[Required] public DateOnly DueDate { get; set; }
public DateOnly? ReturnDate { get; set; }
}

16
BookHive/Models/Member.cs Normal file
View File

@@ -0,0 +1,16 @@
using System.ComponentModel.DataAnnotations;
namespace BookHive.Models;
public class Member
{
[Key] public int Id { get; set; }
[Required, EmailAddress] public string? Email { get; set; }
[Required, MaxLength(100)] public string? FirstName { get; set; }
[Required, MaxLength(100)] public string? LastName { get; set; }
[Required] public DateOnly MembershipDate { get; set; }
[Required] public bool IsActive { get; set; } = true;
public List<Loan>? Loans { get; set; }
public List<Review>? Reviews { get; set; }
}

18
BookHive/Models/Review.cs Normal file
View File

@@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace BookHive.Models;
public class Review
{
[Key] public int Id { get; set; }
public Book? Book { get; set; }
[Required] public int BookId { get; set; }
public Member? Member { get; set; }
[Required] public int MemberId { get; set; }
[Required] public int Rating { get; set; }
[MaxLength(1000)] public string? Comment { get; set; }
[Required] public DateTime? CreatedAt { get; set; } = DateTime.Now;
}