Package io.extact.rms.application
Interface RentalReservationApplication
- All Known Implementing Classes:
RentalReservationApplicationImpl
public interface RentalReservationApplication
レンタル予約アプリケーションインターフェース.
-
Method Summary
Modifier and TypeMethodDescriptionaddRentalItem(RentalItem addRentalItem) レンタル品を登録する。addReservation(Reservation addReservation) レンタル品を予約する。addUserAccount(UserAccount addUserAccount) ユーザアカウントを登録する。authenticate(String loginId, String password) ユーザをパスワードで認証する。voidcancelReservation(int reservationId) 予約をキャンセルする。booleancanRentedItemAtTerm(int rentalItemId, LocalDateTime from, LocalDateTime to) レンタル品が該当期間に予約可能かを返すvoiddeleteRentalItem(int rentalItemId) レンタル品を削除する。 対象のレンタル品を参照する予約が存在する場合は削除は行わずエラーにする。voiddeleteReservation(int reservationId) 予約を削除する。voiddeleteUserAccount(int userAccountId) ユーザを削除する。 対象のユーザを参照する予約が存在する場合は削除は行わずエラーにする。該当期間に予約可能なレンタル品を返す。findReservationByRentalItemAndStartDate(Integer rentalItemId, LocalDate startDate) 指定されたレンタル品と利用開始日に対する予約を取得する。findReservationByRentalItemId(int rentalItemId) 指定されたレンタル品に対する予約を取得する。findReservationByReserverId(int reserverId) 指定されたユーザが予約者の予約を取得する。<T> T指定されたIDのエンティティを取得する。レンタル品の全件取得。予約の全件取得。ユーザの全件取得。自分のプロファイル情報を取得する。updateRentalItem(RentalItem updateRentalItem) レンタル品を更新する。updateReservation(Reservation updateReservation) 予約を更新する。updateUserAccount(UserAccount updateUserAccount) ユーザアカウントを更新する。updateUserProfile(UserAccount updateUserAccount) 自分のプロファイル情報を更新する。 自分以外の情報を更新しようとした場合は禁止操作として403を返す。
-
Method Details
-
authenticate
ユーザをパスワードで認証する。- Parameters:
loginId- 認証するユーザのログインIDpassword- 認証パスワード- Returns:
- 認証ユーザ。認証できなかった場合はnull
- Throws:
BusinessFlowException- ユーザIDまたはパスワードに一致するユーザがいない
-
get
指定されたIDのエンティティを取得する。- Type Parameters:
T- エンティティクラス- Parameters:
entityClass- 取得するエンティティクラスid- ID- Returns:
- エンティティ
-
findReservationByRentalItemAndStartDate
List<Reservation> findReservationByRentalItemAndStartDate(Integer rentalItemId, LocalDate startDate) throws BusinessFlowException 指定されたレンタル品と利用開始日に対する予約を取得する。- Parameters:
rentalItemId- 予約のレンタル品IDstartDate- 予約の利用開始日- Returns:
- 予約リスト(該当なしは例外を送出)
- Throws:
BusinessFlowException- 該当なし
-
findReservationByReserverId
指定されたユーザが予約者の予約を取得する。- Parameters:
reserverId- 予約者のユーザID- Returns:
- 該当のリスト。該当なしは空リスト
-
findReservationByRentalItemId
指定されたレンタル品に対する予約を取得する。- Parameters:
rentalItemId- レンタル品ID- Returns:
- 該当のリスト。該当なしは空リスト
-
findCanRentedItemAtTerm
該当期間に予約可能なレンタル品を返す。- Parameters:
from- 利用開始日時to- 利用終了日時- Returns:
- 該当のリスト。該当なしは空リスト
-
canRentedItemAtTerm
レンタル品が該当期間に予約可能かを返す- Parameters:
rentalItemId- レンタル品IDfrom- 利用開始日時to- 利用終了日時- Returns:
- 可能な場合はtrue
-
getAllReservations
List<Reservation> getAllReservations()予約の全件取得。- Returns:
- 予約の全件。該当なしは空リスト
-
getAllRentalItems
List<RentalItem> getAllRentalItems()レンタル品の全件取得。- Returns:
- レンタル品の全件。該当なしは空リスト
-
getAllUserAccounts
List<UserAccount> getAllUserAccounts()ユーザの全件取得。- Returns:
- ユーザの全件。該当なしは空リスト
-
addReservation
レンタル品を予約する。- Parameters:
addReservation- 登録する予約(idはnull)- Returns:
- 登録された予約(idが設定されている)
- Throws:
BusinessFlowException- 該当するレンタル品が存在しない場合、または期間が重複する予約が既に登録されている場合
-
addRentalItem
レンタル品を登録する。- Parameters:
addRentalItem- 登録レンタル品(idはnull)- Returns:
- 登録されたレンタル品(idが設定されている)
- Throws:
BusinessFlowException- 同一シリアル番号のレンタル品が既に登録されている場合
-
addUserAccount
ユーザアカウントを登録する。- Parameters:
addUserAccount- 登録ユーザ(idはnull)- Returns:
- 登録されたユーザアカウント(idが設定されている)
- Throws:
BusinessFlowException- 同一ログインIDのユーザが既に登録されている場合
-
updateReservation
予約を更新する。- Parameters:
updateReservation- 更新する予約- Returns:
- 更新された予約。更新対象がない場合はnull
-
updateRentalItem
レンタル品を更新する。- Parameters:
updateRentalItem- 更新するレンタル品- Returns:
- 更新されたレンタル品。更新対象がない場合はnull
-
updateUserAccount
ユーザアカウントを更新する。- Parameters:
updateUserAccount- 更新ユーザ- Returns:
- 更新されたユーザアカウント。更新対象がない場合はnull
-
deleteReservation
予約を削除する。- Parameters:
reservationId- 予約ID- Throws:
BusinessFlowException- 該当の予約が存在しない場合
-
deleteRentalItem
レンタル品を削除する。 対象のレンタル品を参照する予約が存在する場合は削除は行わずエラーにする。- Parameters:
rentalItemId- レンタル品ID- Throws:
BusinessFlowException- 該当のレンタル品が存在しない場合。対象のレンタル品を参照する予約が存在する場合
-
deleteUserAccount
ユーザを削除する。 対象のユーザを参照する予約が存在する場合は削除は行わずエラーにする。- Parameters:
userAccountId- ユーザアカウントID- Throws:
BusinessFlowException- 該当のユーザアカウントが存在しない場合。対象のユーザを参照する予約が存在する場合
-
cancelReservation
予約をキャンセルする。- Parameters:
reservationId- 予約ID- Throws:
BusinessFlowException- 該当の予約が存在しない場合。予約者以外が取消を行っている場合
-
getOwnUserProfile
自分のプロファイル情報を取得する。- Throws:
BusinessFlowException- 該当のユーザアカウントが存在しない場合
-
updateUserProfile
自分のプロファイル情報を更新する。 自分以外の情報を更新しようとした場合は禁止操作として403を返す。- Parameters:
updateUserAccount- 更新情報- Returns:
- 更新されたユーザアカウント。更新対象がない場合はnull
-