package repository;

import model.Book;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class BookRepository {
    private final List<Book> books = new ArrayList<>();

    public void add(Book book) { books.add(book); }

    public Optional<Book> findById(String id) {
        return books.stream().filter(b -> b.getId().equals(id)).findFirst();
    }

    public List<Book> findAll() { return new ArrayList<>(books); }

    public List<Book> findAvailable() {
        return books.stream().filter(Book::isAvailable).toList();
    }

    public List<Book> searchByTitle(String keyword) {
        return books.stream()
            .filter(b -> b.getTitle().toLowerCase().contains(keyword.toLowerCase()))
            .toList();
    }
}
