package com.example.equipment.service;

import com.example.equipment.model.Equipment;
import java.util.List;

/**
 * 備品サービスのインターフェース
 */
public interface EquipmentService {

    /** 全備品の一覧を取得する */
    List<Equipment> findAll();

    /** IDで備品を1件取得する */
    Equipment findById(Long id);

    /** 備品名の部分一致で検索する */
    List<Equipment> searchByName(String keyword);

    /** 在庫が少ない備品かどうかを判定する（在庫5個以下で要補充） */
    boolean isLowStock(Equipment equipment);

    /** 一覧表示用に購入日を整形する */
    String formatPurchaseDateForList(Equipment equipment);

    /** 詳細表示用に購入日を整形する */
    String formatPurchaseDateForDetail(Equipment equipment);

    /** 備考の先頭20文字の要約を返す */
    String buildNoteSummary(Equipment equipment);

    /** 備品を指定数だけ貸し出し、在庫を減らす */
    Equipment lend(Long id, int quantity);
}
