package service;

import model.Book;
import model.Member;
import repository.BookRepository;
import repository.MemberRepository;
import java.util.List;
import java.util.UUID;

public class LibraryService {
    private final BookRepository bookRepo;
    private final MemberRepository memberRepo;

    public LibraryService(BookRepository bookRepo, MemberRepository memberRepo) {
        this.bookRepo = bookRepo;
        this.memberRepo = memberRepo;
    }

    public Book addBook(String title, String author, String isbn) {
        String id = "B" + UUID.randomUUID().toString().substring(0, 6).toUpperCase();
        Book book = new Book(id, title, author, isbn);
        bookRepo.add(book);
        return book;
    }

    public Member registerMember(String name, String email) {
        String id = "M" + UUID.randomUUID().toString().substring(0, 6).toUpperCase();
        Member member = new Member(id, name, email);
        memberRepo.add(member);
        return member;
    }

    public List<Book> listAllBooks() { return bookRepo.findAll(); }
    public List<Book> listAvailableBooks() { return bookRepo.findAvailable(); }
    public List<Book> searchBooks(String keyword) { return bookRepo.searchByTitle(keyword); }
    public List<Member> listAllMembers() { return memberRepo.findAll(); }
}
