diff --git a/.gitignore b/.gitignore
index ec3d49b..6ad85eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,8 @@
HELP.md
.gradle
build/
+gradle
+.idea
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
diff --git a/.gradle/9.2.1/fileHashes/fileHashes.bin b/.gradle/9.2.1/fileHashes/fileHashes.bin
new file mode 100644
index 0000000..3ff371c
Binary files /dev/null and b/.gradle/9.2.1/fileHashes/fileHashes.bin differ
diff --git a/.gradle/9.2.1/fileHashes/fileHashes.lock b/.gradle/9.2.1/fileHashes/fileHashes.lock
new file mode 100644
index 0000000..35fdc5e
Binary files /dev/null and b/.gradle/9.2.1/fileHashes/fileHashes.lock differ
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index ba9ca2f..e954152 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -7,9 +7,16 @@
-
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/ssurent/ssurentbe/domain/assists/dto/request/AdminAssistCreateRequest.java b/src/main/java/ssurent/ssurentbe/domain/assists/dto/request/AdminAssistCreateRequest.java
new file mode 100644
index 0000000..3fccee8
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/assists/dto/request/AdminAssistCreateRequest.java
@@ -0,0 +1,6 @@
+package ssurent.ssurentbe.domain.assists.dto.request;
+
+public record AdminAssistCreateRequest(
+ String assistName
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/assists/dto/response/AdminAssistResponse.java b/src/main/java/ssurent/ssurentbe/domain/assists/dto/response/AdminAssistResponse.java
new file mode 100644
index 0000000..c73672a
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/assists/dto/response/AdminAssistResponse.java
@@ -0,0 +1,7 @@
+package ssurent.ssurentbe.domain.assists.dto.response;
+
+public record AdminAssistResponse(
+ Long assistId,
+ String assistName
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/dto/request/AdminCategoryCreateRequest.java b/src/main/java/ssurent/ssurentbe/domain/item/dto/request/AdminCategoryCreateRequest.java
new file mode 100644
index 0000000..d8c5a0a
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/item/dto/request/AdminCategoryCreateRequest.java
@@ -0,0 +1,6 @@
+package ssurent.ssurentbe.domain.item.dto.request;
+
+public record AdminCategoryCreateRequest(
+ String categoryName
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/dto/request/AdminItemCreateRequest.java b/src/main/java/ssurent/ssurentbe/domain/item/dto/request/AdminItemCreateRequest.java
new file mode 100644
index 0000000..6445e6c
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/item/dto/request/AdminItemCreateRequest.java
@@ -0,0 +1,7 @@
+package ssurent.ssurentbe.domain.item.dto.request;
+
+public record AdminItemCreateRequest(
+ String categoryName,
+ String itemNum
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/dto/request/AdminItemUpdateRequest.java b/src/main/java/ssurent/ssurentbe/domain/item/dto/request/AdminItemUpdateRequest.java
new file mode 100644
index 0000000..2e4af05
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/item/dto/request/AdminItemUpdateRequest.java
@@ -0,0 +1,13 @@
+package ssurent.ssurentbe.domain.item.dto.request;
+
+import java.util.List;
+
+public record AdminItemUpdateRequest(
+ List itemUpdates
+) {
+ public record ItemUpdate(
+ Long itemId,
+ String status
+ ){
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/dto/response/AdminItemNameSearchResponse.java b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/AdminItemNameSearchResponse.java
new file mode 100644
index 0000000..f3f450b
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/AdminItemNameSearchResponse.java
@@ -0,0 +1,7 @@
+package ssurent.ssurentbe.domain.item.dto.response;
+
+public record AdminItemNameSearchResponse(
+ Long itemId,
+ String itemName
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/dto/response/AdminItemResponse.java b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/AdminItemResponse.java
new file mode 100644
index 0000000..f04fea2
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/AdminItemResponse.java
@@ -0,0 +1,10 @@
+package ssurent.ssurentbe.domain.item.dto.response;
+
+import java.util.List;
+
+public record AdminItemResponse(
+ Long categoryId,
+ String categoryName,
+ List items
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/dto/response/AdminItemSearchResponse.java b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/AdminItemSearchResponse.java
new file mode 100644
index 0000000..bf0b6cb
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/AdminItemSearchResponse.java
@@ -0,0 +1,10 @@
+package ssurent.ssurentbe.domain.item.dto.response;
+
+import ssurent.ssurentbe.domain.item.enums.Condition;
+
+public record AdminItemSearchResponse(
+ Long itemId,
+ String itemName,
+ Condition condition
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/dto/response/CategoryResponse.java b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/CategoryResponse.java
new file mode 100644
index 0000000..5aa00c0
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/CategoryResponse.java
@@ -0,0 +1,15 @@
+package ssurent.ssurentbe.domain.item.dto.response;
+
+import ssurent.ssurentbe.domain.item.entity.Category;
+
+public record CategoryResponse(
+ Long categoryId,
+ String categoryName
+) {
+ public static CategoryResponse from(Category category) {
+ return new CategoryResponse(
+ category.getId(),
+ category.getName()
+ );
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/dto/response/ItemResponse.java b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/ItemResponse.java
new file mode 100644
index 0000000..4afcc17
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/item/dto/response/ItemResponse.java
@@ -0,0 +1,24 @@
+package ssurent.ssurentbe.domain.item.dto.response;
+
+import ssurent.ssurentbe.domain.item.entity.Items;
+import ssurent.ssurentbe.domain.item.enums.Condition;
+import ssurent.ssurentbe.domain.item.enums.Status;
+
+public record ItemResponse(
+ Long itemId,
+ String itemName,
+ String itemDescription,
+ Status status,
+ Condition condition
+) {
+ public static ItemResponse from(Items item) {
+ String ItemName = item.getName() + "(" + item.getItemNum() + ")";
+ return new ItemResponse(
+ item.getId(),
+ item.getName(),
+ ItemName,
+ item.getStatus(),
+ item.getCondition()
+ );
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/entity/Category.java b/src/main/java/ssurent/ssurentbe/domain/item/entity/Category.java
index ac0180c..5e0c9e1 100644
--- a/src/main/java/ssurent/ssurentbe/domain/item/entity/Category.java
+++ b/src/main/java/ssurent/ssurentbe/domain/item/entity/Category.java
@@ -23,6 +23,9 @@ public class Category extends BaseEntity {
@Column(name = "is_deleted")
private boolean isDelelted;
+ @Column(name = "description")
+ private String description;
+
@Column(name = "deleted_at")
private LocalDateTime deletedAt;
}
\ No newline at end of file
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/entity/Items.java b/src/main/java/ssurent/ssurentbe/domain/item/entity/Items.java
index 9db6874..b91cc38 100644
--- a/src/main/java/ssurent/ssurentbe/domain/item/entity/Items.java
+++ b/src/main/java/ssurent/ssurentbe/domain/item/entity/Items.java
@@ -3,6 +3,7 @@
import jakarta.persistence.*;
import lombok.*;
import ssurent.ssurentbe.common.base.BaseEntity;
+import ssurent.ssurentbe.domain.item.enums.Condition;
import ssurent.ssurentbe.domain.item.enums.Status;
import java.time.LocalDateTime;
@@ -32,6 +33,10 @@ public class Items extends BaseEntity {
@Column(name = "status")
private Status status;
+ @Enumerated(EnumType.STRING)
+ @Column(name = "condition")
+ private Condition condition;
+
@Column(name = "is_deleted")
private boolean deleted;
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/enums/Condition.java b/src/main/java/ssurent/ssurentbe/domain/item/enums/Condition.java
new file mode 100644
index 0000000..60e3104
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/item/enums/Condition.java
@@ -0,0 +1,15 @@
+package ssurent.ssurentbe.domain.item.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+
+@Getter
+@AllArgsConstructor
+public enum Condition {
+ RENT("대여 중"),
+ KEEP("보관 중"),
+ OVERDUE("연체 중");
+
+ private String description;
+}
\ No newline at end of file
diff --git a/src/main/java/ssurent/ssurentbe/domain/item/enums/Status.java b/src/main/java/ssurent/ssurentbe/domain/item/enums/Status.java
index 137f5e3..2039e53 100644
--- a/src/main/java/ssurent/ssurentbe/domain/item/enums/Status.java
+++ b/src/main/java/ssurent/ssurentbe/domain/item/enums/Status.java
@@ -1,7 +1,13 @@
package ssurent.ssurentbe.domain.item.enums;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
public enum Status {
- ACTIVE,
- FIXING,
- INACTIVE
+ ACTIVE("대여 가능"),
+ INACTIVE("대여 불가");
+
+ private String description;
}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/AdminRentalUpdateRequest.java b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/AdminRentalUpdateRequest.java
new file mode 100644
index 0000000..305eb25
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/AdminRentalUpdateRequest.java
@@ -0,0 +1,14 @@
+package ssurent.ssurentbe.domain.rental.dto.request;
+
+import java.util.List;
+
+public record AdminRentalUpdateRequest(
+ List rentalUpdates
+) {
+ public record RentalUpdate(
+ Long rentalId,
+ boolean returned
+ ){
+
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalExtendRequest.java b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalExtendRequest.java
new file mode 100644
index 0000000..a00075a
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalExtendRequest.java
@@ -0,0 +1,9 @@
+package ssurent.ssurentbe.domain.rental.dto.request;
+
+import java.time.LocalDateTime;
+
+public record RentalExtendRequest(
+ Long rentalId,
+ LocalDateTime dueDate
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalReportRequest.java b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalReportRequest.java
new file mode 100644
index 0000000..45ef8ca
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalReportRequest.java
@@ -0,0 +1,7 @@
+package ssurent.ssurentbe.domain.rental.dto.request;
+
+public record RentalReportRequest(
+ Long rentalId,
+ String problem
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalRequest.java b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalRequest.java
new file mode 100644
index 0000000..56f0fd9
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalRequest.java
@@ -0,0 +1,7 @@
+package ssurent.ssurentbe.domain.rental.dto.request;
+
+public record RentalRequest(
+ Long itemId,
+ String assistName
+){
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalReturnRequest.java b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalReturnRequest.java
new file mode 100644
index 0000000..4bae9ba
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/dto/request/RentalReturnRequest.java
@@ -0,0 +1,8 @@
+package ssurent.ssurentbe.domain.rental.dto.request;
+
+public record RentalReturnRequest(
+ Long itemId,
+ Long rentalId,
+ String assistName
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/dto/response/AdminRentalHistoryResponse.java b/src/main/java/ssurent/ssurentbe/domain/rental/dto/response/AdminRentalHistoryResponse.java
new file mode 100644
index 0000000..ab8e49a
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/dto/response/AdminRentalHistoryResponse.java
@@ -0,0 +1,22 @@
+package ssurent.ssurentbe.domain.rental.dto.response;
+
+import ssurent.ssurentbe.domain.rental.entity.RentalHistory;
+import ssurent.ssurentbe.domain.rental.enums.Status;
+
+import java.time.LocalDateTime;
+
+// 서비스 로직 단에서 Status = 에 따라서 List 내부에 구성.
+// Status = 대여 -> timeStamp = created_At 인 데이터 1개 제공
+// Status = 반납 -> timeStamp = created_At(대여) , timeStamp = updated_At(반납)인 데이터 2개 제공
+public record AdminRentalHistoryResponse(
+ Long rentalId,
+ LocalDateTime timeStamp,
+ String name,
+ String studentNum,
+ String phNum,
+ Status status,
+ String itemName,
+ String itemNum,
+ boolean isOverdue
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/dto/response/AdminUserRentalItemResponse.java b/src/main/java/ssurent/ssurentbe/domain/rental/dto/response/AdminUserRentalItemResponse.java
new file mode 100644
index 0000000..7371561
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/dto/response/AdminUserRentalItemResponse.java
@@ -0,0 +1,24 @@
+package ssurent.ssurentbe.domain.rental.dto.response;
+
+import ssurent.ssurentbe.domain.item.entity.Items;
+import ssurent.ssurentbe.domain.rental.entity.RentalHistory;
+
+import java.time.LocalDateTime;
+
+public record AdminUserRentalItemResponse(
+ Long rentalId,
+ LocalDateTime rentalDate,
+ LocalDateTime returnDate,
+ String itemName
+) {
+ public static AdminUserRentalItemResponse from(RentalHistory rentalHistory) {
+ Items items = rentalHistory.getItemId();
+ String itemName = items.getName() + "(" + items.getItemNum() + ")";
+ return new AdminUserRentalItemResponse(
+ rentalHistory.getId(),
+ rentalHistory.getRentalDate(),
+ rentalHistory.getReturnDate(),
+ itemName
+ );
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/dto/response/RentalItemResponse.java b/src/main/java/ssurent/ssurentbe/domain/rental/dto/response/RentalItemResponse.java
new file mode 100644
index 0000000..79cafc1
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/dto/response/RentalItemResponse.java
@@ -0,0 +1,24 @@
+package ssurent.ssurentbe.domain.rental.dto.response;
+
+import ssurent.ssurentbe.domain.item.entity.Items;
+import ssurent.ssurentbe.domain.rental.entity.RentalHistory;
+
+import java.time.LocalDateTime;
+
+public record RentalItemResponse(
+ Long rentalId,
+ Long itemId,
+ String itemName,
+ LocalDateTime dueDate
+) {
+ public static RentalItemResponse from(RentalHistory rentalHistory) {
+ Items items = rentalHistory.getItemId();
+ String itemName = items.getName() + "(" + items.getItemNum() + ")";
+ return new RentalItemResponse(
+ rentalHistory.getId(),
+ rentalHistory.getItemId().getId(),
+ itemName,
+ rentalHistory.getDueDate()
+ );
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/entity/RentalHistory.java b/src/main/java/ssurent/ssurentbe/domain/rental/entity/RentalHistory.java
index 0a7f237..cfd4baf 100644
--- a/src/main/java/ssurent/ssurentbe/domain/rental/entity/RentalHistory.java
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/entity/RentalHistory.java
@@ -44,4 +44,7 @@ public class RentalHistory extends BaseEntity {
@Column(name = "status")
private Status status;
+
+ @Column(name = "is_overdue")
+ private boolean overdue;
}
diff --git a/src/main/java/ssurent/ssurentbe/domain/rental/enums/Status.java b/src/main/java/ssurent/ssurentbe/domain/rental/enums/Status.java
index bdf07ce..4be92d1 100644
--- a/src/main/java/ssurent/ssurentbe/domain/rental/enums/Status.java
+++ b/src/main/java/ssurent/ssurentbe/domain/rental/enums/Status.java
@@ -1,7 +1,6 @@
package ssurent.ssurentbe.domain.rental.enums;
public enum Status {
- ACTIVE,
- OVERDUE,
- INACTIVE
+ RENT,
+ RETURN
}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/dto/request/AdminUserPenaltyCreateRequest.java b/src/main/java/ssurent/ssurentbe/domain/users/dto/request/AdminUserPenaltyCreateRequest.java
new file mode 100644
index 0000000..abdde1a
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/users/dto/request/AdminUserPenaltyCreateRequest.java
@@ -0,0 +1,10 @@
+package ssurent.ssurentbe.domain.users.dto.request;
+
+
+import java.time.LocalDateTime;
+
+public record AdminUserPenaltyCreateRequest (
+ String itemName,
+ String penaltyType
+){
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/dto/request/AdminUserRoleUpdateRequest.java b/src/main/java/ssurent/ssurentbe/domain/users/dto/request/AdminUserRoleUpdateRequest.java
new file mode 100644
index 0000000..8c400d1
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/users/dto/request/AdminUserRoleUpdateRequest.java
@@ -0,0 +1,9 @@
+package ssurent.ssurentbe.domain.users.dto.request;
+
+import ssurent.ssurentbe.domain.users.enums.Role;
+
+public record AdminUserRoleUpdateRequest(
+ Long userId,
+ Role role
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/dto/request/AdminUserStatusUpdateRequest.java b/src/main/java/ssurent/ssurentbe/domain/users/dto/request/AdminUserStatusUpdateRequest.java
new file mode 100644
index 0000000..6b19b57
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/users/dto/request/AdminUserStatusUpdateRequest.java
@@ -0,0 +1,8 @@
+package ssurent.ssurentbe.domain.users.dto.request;
+
+import ssurent.ssurentbe.domain.users.enums.Status;
+
+public record AdminUserStatusUpdateRequest(
+ Status status
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/dto/request/UserPhoneNumberRequest.java b/src/main/java/ssurent/ssurentbe/domain/users/dto/request/UserPhoneNumberRequest.java
new file mode 100644
index 0000000..d8ecba1
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/users/dto/request/UserPhoneNumberRequest.java
@@ -0,0 +1,6 @@
+package ssurent.ssurentbe.domain.users.dto.request;
+
+public record UserPhoneNumberRequest(
+ String phoneNum
+) {
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/dto/response/AdminUserDetailResponse.java b/src/main/java/ssurent/ssurentbe/domain/users/dto/response/AdminUserDetailResponse.java
new file mode 100644
index 0000000..c2d226d
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/users/dto/response/AdminUserDetailResponse.java
@@ -0,0 +1,33 @@
+package ssurent.ssurentbe.domain.users.dto.response;
+
+import ssurent.ssurentbe.domain.users.entity.UserPenaltyLog;
+import ssurent.ssurentbe.domain.users.entity.Users;
+import ssurent.ssurentbe.domain.users.enums.Role;
+import ssurent.ssurentbe.domain.users.enums.Status;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public record AdminUserDetailResponse(
+ Long userId,
+ String userName,
+ String studentNum,
+ Role role,
+ Status status,
+ String phoneNum,
+ List penalties
+) {
+ public static AdminUserDetailResponse from(Users user, List penalties) {
+ return new AdminUserDetailResponse(
+ user.getId(),
+ user.getName(),
+ user.getStudentNum(),
+ user.getRole(),
+ user.getStatus(),
+ user.getPhoneNum(),
+ penalties.stream()
+ .map(UserPenaltyResponse::from)
+ .toList()
+ );
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/dto/response/AdminUserResponse.java b/src/main/java/ssurent/ssurentbe/domain/users/dto/response/AdminUserResponse.java
new file mode 100644
index 0000000..7838010
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/users/dto/response/AdminUserResponse.java
@@ -0,0 +1,20 @@
+package ssurent.ssurentbe.domain.users.dto.response;
+
+import ssurent.ssurentbe.domain.users.entity.Users;
+import ssurent.ssurentbe.domain.users.enums.Role;
+
+public record AdminUserResponse(
+ Long userId,
+ String userName,
+ String studentNum,
+ Role role
+) {
+ public static AdminUserResponse from(Users user) {
+ return new AdminUserResponse(
+ user.getId(),
+ user.getName(),
+ user.getStudentNum(),
+ user.getRole()
+ );
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/dto/response/UserPenaltyResponse.java b/src/main/java/ssurent/ssurentbe/domain/users/dto/response/UserPenaltyResponse.java
new file mode 100644
index 0000000..ded7f15
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/users/dto/response/UserPenaltyResponse.java
@@ -0,0 +1,25 @@
+package ssurent.ssurentbe.domain.users.dto.response;
+
+import ssurent.ssurentbe.domain.item.entity.Items;
+import ssurent.ssurentbe.domain.users.entity.UserPenaltyLog;
+
+import java.time.LocalDateTime;
+
+public record UserPenaltyResponse(
+ Long userPenaltyId,
+ LocalDateTime createdAt,
+ String itemName,
+ String penaltyType
+) {
+ public static UserPenaltyResponse from(UserPenaltyLog userPenaltyLog) {
+ Items item = userPenaltyLog.getItemsId();
+ String itemInfo = item.getName() + " (" + item.getItemNum() + ")";
+
+ return new UserPenaltyResponse(
+ userPenaltyLog.getId(),
+ userPenaltyLog.getCreatedAt(),
+ itemInfo,
+ userPenaltyLog.getPenaltyType().getDescription()
+ );
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/dto/response/UserResponse.java b/src/main/java/ssurent/ssurentbe/domain/users/dto/response/UserResponse.java
new file mode 100644
index 0000000..c7d8388
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/users/dto/response/UserResponse.java
@@ -0,0 +1,25 @@
+package ssurent.ssurentbe.domain.users.dto.response;
+
+import ssurent.ssurentbe.domain.users.entity.Users;
+import ssurent.ssurentbe.domain.users.enums.Role;
+import ssurent.ssurentbe.domain.users.enums.Status;
+
+public record UserResponse(
+ Long userId,
+ String studentNum,
+ String name,
+ Role role,
+ Status status,
+ String phoneNum
+) {
+ public static UserResponse from(Users user) {
+ return new UserResponse(
+ user.getId(),
+ user.getStudentNum(),
+ user.getName(),
+ user.getRole(),
+ user.getStatus(),
+ user.getPhoneNum()
+ );
+ }
+}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/entity/UserPanaltyLog.java b/src/main/java/ssurent/ssurentbe/domain/users/entity/UserPenaltyLog.java
similarity index 85%
rename from src/main/java/ssurent/ssurentbe/domain/users/entity/UserPanaltyLog.java
rename to src/main/java/ssurent/ssurentbe/domain/users/entity/UserPenaltyLog.java
index f327564..2e784d1 100644
--- a/src/main/java/ssurent/ssurentbe/domain/users/entity/UserPanaltyLog.java
+++ b/src/main/java/ssurent/ssurentbe/domain/users/entity/UserPenaltyLog.java
@@ -5,7 +5,7 @@
import ssurent.ssurentbe.common.base.BaseEntity;
import ssurent.ssurentbe.domain.item.entity.Items;
import ssurent.ssurentbe.domain.rental.entity.RentalHistory;
-import ssurent.ssurentbe.domain.users.enums.PanaltyTypes;
+import ssurent.ssurentbe.domain.users.enums.PenaltyTypes;
@Entity
@Getter
@@ -13,7 +13,7 @@
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Table(name = "user_panalty_log")
-public class UserPanaltyLog extends BaseEntity {
+public class UserPenaltyLog extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@@ -32,6 +32,6 @@ public class UserPanaltyLog extends BaseEntity {
@Enumerated(EnumType.STRING)
@Column(name = "panalty_type")
- private PanaltyTypes panaltyType;
+ private PenaltyTypes penaltyType;
}
\ No newline at end of file
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/enums/PanaltyTypes.java b/src/main/java/ssurent/ssurentbe/domain/users/enums/PanaltyTypes.java
deleted file mode 100644
index c1d4e7b..0000000
--- a/src/main/java/ssurent/ssurentbe/domain/users/enums/PanaltyTypes.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package ssurent.ssurentbe.domain.users.enums;
-
-public enum PanaltyTypes {
- OVERDUE,
- UNAUTHORIZED_USE
-}
diff --git a/src/main/java/ssurent/ssurentbe/domain/users/enums/PenaltyTypes.java b/src/main/java/ssurent/ssurentbe/domain/users/enums/PenaltyTypes.java
new file mode 100644
index 0000000..e0b513e
--- /dev/null
+++ b/src/main/java/ssurent/ssurentbe/domain/users/enums/PenaltyTypes.java
@@ -0,0 +1,13 @@
+package ssurent.ssurentbe.domain.users.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum PenaltyTypes {
+ OVERDUE("반납기한 경과"),
+ UNAUTHORIZED_USE("무단 사용");
+
+ private final String description;
+}