Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
e151141
feat: 공고 도메인 Command 타입 추가
ysw789 Jul 29, 2026
e1bf564
feat: 매니저 스코프 업장 조회 메서드 추가
ysw789 Jul 29, 2026
3cc06bd
refactor: 공고 등록·수정 UseCase를 Command 입력으로 전환
ysw789 Jul 29, 2026
71d33df
fix: 삭제된 근무일정을 공고 응답에서 제외
ysw789 Jul 29, 2026
4b20c0d
fix: 삭제된 근무일정에 지원할 수 없도록 조회 조건 추가
ysw789 Jul 29, 2026
62cd4f0
fix: 공고 조회 쿼리의 삭제 상태 누락 보완
ysw789 Jul 29, 2026
7903d67
feat: 매니저 공고 목록 응답에 공고 상태 추가
ysw789 Jul 29, 2026
a05bf5e
docs: 공고 API 스웨거 예시에서 키워드 잔재 제거
ysw789 Jul 29, 2026
7104cd6
test: 공고 등록·수정 및 근무일정 필터링 테스트 추가
ysw789 Jul 29, 2026
ede2c0c
fix: 삭제된 근무일정을 수정·삭제 대상에서 제외
ysw789 Jul 31, 2026
ad0d656
fix: 스케줄 수정 요청의 요일·시각을 타입 바인딩으로 검증
ysw789 Jul 31, 2026
ca6fa40
fix: 활성 상태 업장만 공고를 등록할 수 있도록 조회 조건 추가
ysw789 Jul 31, 2026
e5c6cbd
docs: 공고 수정 API 스펙에 409 응답 케이스 추가
ysw789 Jul 31, 2026
f28c8db
test: 삭제된 근무일정 수정·삭제 차단 테스트 추가
ysw789 Jul 31, 2026
51416ac
test: 공고 미수정 검증 매처를 any로 보정
ysw789 Jul 31, 2026
5d011b7
fix: 채팅 마이그레이션 버전 번호 중복 해소
ysw789 Aug 3, 2026
59a1bb0
fix: 요청 본문 역직렬화 실패를 프로젝트 오류 포맷으로 응답
ysw789 Aug 3, 2026
6537d58
refactor: 삭제된 공고 변경 차단을 도메인으로 이동
ysw789 Aug 3, 2026
ee15e43
fix: 활성 근무일정이 없는 공고를 모집 완료로 전환
ysw789 Aug 3, 2026
294451b
fix: 공고 수정 요청의 삭제 일정 ID 목록 정규화
ysw789 Aug 3, 2026
a370007
docs: 공고 지원 API 스펙에 누락된 응답 케이스 추가
ysw789 Aug 3, 2026
5020087
fix: 공고 생성 스케줄 원소 검증 강화
ysw789 Aug 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,36 @@ ResponseEntity<CursorPaginatedApiResponse<PostingListResponseDto>> getPostingsWi
mediaType = "application/json",
schema = @Schema(implementation = ErrorResponse.class),
examples = {
@ExampleObject(
name = "존재하지 않는 공고",
value = "{\"code\" : \"B007\"}"
),
@ExampleObject(
name = "지원하고자 하는 공고 일정 찾을 수 없음",
value = "{\"code\" : \"B010\"}"
),
@ExampleObject(
name = "이미 근무중인 사용자입니다.",
value = "{\"code\" : \"B018\"}"
),
@ExampleObject(
name = "모집이 종료된 공고 (OPEN 이 아닌 상태)",
value = "{\"code\" : \"B001\", \"message\" : \"모집이 종료된 공고입니다.\"}"
),
@ExampleObject(
name = "이미 지원한 공고 (같은 공고의 다른 근무일정 포함)",
value = "{\"code\" : \"B001\", \"message\" : \"이미 지원한 공고입니다.\"}"
)
})),
@ApiResponse(responseCode = "429", description = "429 Error 실패 케이스",
content = @Content(
mediaType = "application/json",
schema = @Schema(implementation = ErrorResponse.class),
examples = {
@ExampleObject(
name = "동시 지원 요청이 몰려 잠금 획득에 실패",
value = "{\"code\" : \"E001\"}"
),
}))
})
ResponseEntity<CommonApiResponse<Void>> applyIntoPosting(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package com.dreamteam.alter.adapter.inbound.general.posting.dto;

import com.dreamteam.alter.domain.posting.command.CreatePostingCommand;
import com.dreamteam.alter.domain.posting.type.PaymentType;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
import lombok.*;

import java.util.List;

import javax.validation.constraints.NotNull;

@Getter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
Expand Down Expand Up @@ -47,6 +48,18 @@ public class CreatePostingRequestDto {
"}" +
"]")
@Valid
private List<CreatePostingScheduleRequestDto> schedules;
@NotEmpty

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[중간] 실질적으로 파괴적인 검증 변경 — 릴리스 노트에 남겨주세요

이 PR 에서 javax.validation.constraints.NotNull import 를 jakarta.validation.constraints.NotNull 로 교체하셨는데, 이게 생각보다 영향이 큽니다.

Jakarta EE 9+ 검증기는 javax.validation 어노테이션을 인식하지 않습니다. 즉 지금까지 workspaceIdpaymentType@NotNull 은 아무 일도 하지 않았고, workspaceId: null 로 요청하면 그대로 통과해 NPE 나 엉뚱한 조회로 이어졌을 겁니다. 좋은 수정입니다.

다만 결과적으로 아래 세 가지가 동시에 클라이언트에 400 을 새로 발생시킵니다.

  • workspaceId 누락 (기존엔 통과)
  • paymentType 누락 (기존엔 통과)
  • schedules 빈 배열 · 누락 (@NotEmpty 신규)

PR 설명의 "필수값 검증 보강" 만으로는 앱 팀이 영향 범위를 알기 어렵습니다. 어떤 필드가 새로 400 을 내는지 목록으로 적어두시면 좋겠습니다.

private List<@NotNull @Valid CreatePostingScheduleRequestDto> schedules;

public CreatePostingCommand toCommand() {
return new CreatePostingCommand(
workspaceId,
title,
description,
payAmount,
paymentType,
schedules.stream().map(CreatePostingScheduleRequestDto::toCommand).toList()
);
}
Comment thread
ysw789 marked this conversation as resolved.

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.dreamteam.alter.adapter.inbound.general.posting.dto;

import com.dreamteam.alter.domain.posting.command.PostingScheduleCommand;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
Expand Down Expand Up @@ -38,4 +39,8 @@ public class CreatePostingScheduleRequestDto {
@NotBlank
private String position;

public PostingScheduleCommand toCommand() {
return new PostingScheduleCommand(workingDays, startTime, endTime, positionsNeeded, position);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@ public class ManagerPostingController implements ManagerPostingControllerSpec {
public ResponseEntity<CommonApiResponse<Void>> createPosting(
@Valid CreatePostingRequestDto request
) {
createPosting.execute(request);
ManagerActor actor = ManagerActionContext.getInstance().getActor();

createPosting.execute(request.toCommand(), actor);
return ResponseEntity.ok(CommonApiResponse.empty());
}

Expand Down Expand Up @@ -155,7 +157,7 @@ public ResponseEntity<CommonApiResponse<Void>> updatePosting(
) {
ManagerActor actor = ManagerActionContext.getInstance().getActor();

managerUpdatePosting.execute(postingId, request, actor);
managerUpdatePosting.execute(postingId, request.toCommand(), actor);
return ResponseEntity.ok(CommonApiResponse.empty());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ public interface ManagerPostingControllerSpec {
mediaType = "application/json",
schema = @Schema(implementation = ErrorResponse.class),
examples = {
@ExampleObject(
name = "존재하지 않거나, 자신이 관리하지 않거나, 활성화되지 않은 업장",
value = "{\"code\" : \"B008\"}"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[사소] 이 400 블록에 C001 이 섞여 있습니다 (기존 문제)

B008 을 400 블록에 넣으신 건 정확합니다. WORKSPACE_NOT_FOUND 가 400 이니까요.

다만 바로 아래 "서버 내부 오류 C001" 예시가 같은 400 블록에 들어 있는데, C001 은 500 입니다. 이 PR 이 만든 문제는 아니지만 바로 옆 줄을 건드리신 김에 500 블록으로 옮기시면 어떨까요.

),
@ExampleObject(
name = "서버 내부 오류",
value = "{\"code\" : \"C001\"}"
Expand Down Expand Up @@ -155,7 +159,10 @@ ResponseEntity<CommonApiResponse<Void>> updatePostingStatus(
@Valid @RequestBody UpdatePostingStatusRequestDto request
);

@Operation(summary = "매니저 - 내가 등록한 공고 내용 수정", description = "")
@Operation(
summary = "매니저 - 내가 등록한 공고 내용 수정",
description = "수정을 마친 뒤 남은 근무일정이 하나도 없으면 공고가 모집 완료(CLOSED)로 바뀌며 더 이상 지원을 받지 않습니다."
)
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "공고 내용 수정 성공"),
@ApiResponse(responseCode = "400", description = "실패 케이스",
Expand All @@ -167,14 +174,6 @@ ResponseEntity<CommonApiResponse<Void>> updatePostingStatus(
name = "존재하지 않는 공고",
value = "{\"code\" : \"B007\"}"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[하] 이번에 추가된 409 케이스가 스펙에 빠졌습니다.

공고 등록 쪽에는 B008 예시를 추가하셨는데, 이 PR에서 새로 생긴 "삭제된 공고 수정 차단"(ErrorCode.CONFLICT / B020 / 409)은 수정 엔드포인트 문서에 반영되지 않았습니다. 409 @ApiResponse 블록을 하나 추가해주시면 좋겠습니다.

),
@ExampleObject(
name = "등록되지 않은 키워드로 요청",
value = "{\"code\" : \"B006\"}"
),
@ExampleObject(
name = "요청에 키워드가 포함되지 않은 경우",
value = "{\"code\" : \"B001\"}"
),
})),
@ApiResponse(responseCode = "404", description = "404 Error 실패 케이스",
content = @Content(
Expand All @@ -190,6 +189,16 @@ ResponseEntity<CommonApiResponse<Void>> updatePostingStatus(
value = "{\"code\" : \"B019\"}"
),
})),
@ApiResponse(responseCode = "409", description = "409 Error 실패 케이스",
content = @Content(
mediaType = "application/json",
schema = @Schema(implementation = ErrorResponse.class),
examples = {
@ExampleObject(
name = "DELETED 상태의 공고는 내용 수정 불가",
value = "{\"code\" : \"B020\"}"
),
})),
})
ResponseEntity<CommonApiResponse<Void>> updatePosting(
@PathVariable Long postingId,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.dreamteam.alter.adapter.inbound.manager.posting.dto;

import com.dreamteam.alter.adapter.inbound.common.dto.DescribedEnumDto;
import com.dreamteam.alter.adapter.inbound.general.posting.dto.ManagerPostingListWorkspaceResponseDto;
import com.dreamteam.alter.adapter.inbound.general.posting.dto.PostingScheduleResponseDto;
import com.dreamteam.alter.adapter.outbound.posting.persistence.readonly.ManagerPostingListResponse;
import com.dreamteam.alter.domain.posting.type.PaymentType;
import com.dreamteam.alter.domain.posting.type.PostingStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
Expand Down Expand Up @@ -35,6 +37,10 @@ public class ManagerPostingListResponseDto {
@Schema(description = "급여 타입", example = "HOURLY")
private PaymentType paymentType;

@NotNull
@Schema(description = "공고 상태")
private DescribedEnumDto<PostingStatus> status;

@NotNull
@Schema(description = "생성일", example = "2023-10-01T12:00:00")
private LocalDateTime createdAt;
Expand All @@ -60,6 +66,7 @@ public static ManagerPostingListResponseDto from(ManagerPostingListResponse resp
.title(response.getTitle())
.payAmount(response.getPayAmount())
.paymentType(response.getPaymentType())
.status(DescribedEnumDto.of(response.getStatus(), PostingStatus.describe()))
.createdAt(response.getCreatedAt())
.schedules(response.getSchedules().stream()
.map(PostingScheduleResponseDto::from)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package com.dreamteam.alter.adapter.inbound.manager.posting.dto;

import java.util.List;
import java.util.function.Function;

import org.apache.commons.lang3.ObjectUtils;

import com.dreamteam.alter.adapter.inbound.general.posting.dto.CreatePostingScheduleRequestDto;
import com.dreamteam.alter.domain.posting.command.UpdatePostingCommand;
import com.dreamteam.alter.domain.posting.type.PaymentType;

import io.swagger.v3.oas.annotations.media.Schema;
Expand All @@ -27,6 +31,7 @@ public class UpdatePostingRequestDto {
@Schema(description = "공고 제목", example = "홀서빙 구합니다")
private String title;

@NotBlank
@Schema(description = "공고 설명", example = "홀서빙 구합니다. 주말 근무 가능하신 분 우대합니다.")
private String description;

Expand All @@ -48,4 +53,20 @@ public class UpdatePostingRequestDto {

@Schema(description = "삭제할 스케줄 ID", example = "[2, 3]")
private List<Long> deleteScheduleIds;

public UpdatePostingCommand toCommand() {
return new UpdatePostingCommand(
title,
description,
payAmount,
paymentType,
toCommands(createSchedules, CreatePostingScheduleRequestDto::toCommand),
toCommands(updateSchedules, UpdatePostingScheduleDto::toCommand),
ObjectUtils.isEmpty(deleteScheduleIds) ? List.of() : deleteScheduleIds
);
}

private static <T, R> List<R> toCommands(List<T> source, Function<T, R> mapper) {
Comment on lines +63 to +69

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[낮음] deleteScheduleIds 만 정규화에서 빠졌습니다

createSchedules · updateSchedulestoCommandsnullList.of() 정규화가 되는데, deleteScheduleIds 는 raw 로 넘어가 Command 안에서 null 일 수 있습니다.

updateContentObjectUtils.isNotEmpty 로 방어하고 있어 지금 당장 깨지지는 않습니다. 다만 Command 를 받는 쪽에서 "세 리스트 중 두 개만 non-null 보장" 이라는 규칙을 알아야 하는 건 불필요한 부담입니다.

ObjectUtils.isEmpty(deleteScheduleIds) ? List.of() : deleteScheduleIds

한 줄이면 셋 다 동일해집니다.

return ObjectUtils.isEmpty(source) ? List.of() : source.stream().map(mapper).toList();
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package com.dreamteam.alter.adapter.inbound.manager.posting.dto;

import com.dreamteam.alter.domain.posting.command.UpdatePostingScheduleCommand;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
import lombok.*;

import java.time.DayOfWeek;
import java.time.LocalTime;
import java.util.List;

@Getter
Expand All @@ -18,23 +23,27 @@ public class UpdatePostingScheduleDto {
@Schema(description = "스케줄 ID", example = "1")
private Long id;

@NotNull
@NotEmpty
@Schema(description = "근무일", example = "[\"MONDAY\", \"WEDNESDAY\"]")
private List<String> workingDays;
private List<DayOfWeek> workingDays;

@NotNull
@Schema(description = "시작 시간", example = "09:00")
private String startTime;
private LocalTime startTime;
Comment on lines +26 to +32

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

타입 정리 좋습니다 — 응답 코드 변화만 확인 부탁드립니다

List<String>List<DayOfWeek>, StringLocalTime 전환으로 Posting.updateSchedules 안에 있던 DayOfWeek.valueOf · LocalTime.parse 파싱이 사라졌습니다. 도메인이 파싱 책임을 지지 않게 된 점, CreatePostingScheduleRequestDto 와 타입이 통일된 점 모두 좋습니다.

와이어 포맷("09:00", "MONDAY")은 Jackson JavaTimeModule 이 동일하게 처리하므로 정상 요청은 호환됩니다.

다만 잘못된 값이 올 때 응답이 달라집니다. 기존에는 도메인까지 들어와 LocalTime.parseDateTimeParseException 을 던졌고, 이제는 역직렬화 단계에서 HttpMessageNotReadableException 이 납니다. 프로젝트의 GlobalExceptionHandler 가 이걸 어떤 ErrorCode 로 내보내는지 한 번 확인해 주세요.

참고로 @NotNull@Positive (positionsNeeded) 도 함께 고치셨는데, primitive int@NotNull 은 항상 통과하므로 이것도 그동안 무의미했던 검증입니다. 좋은 수정입니다.


@NotNull
@Schema(description = "종료 시간", example = "18:00")
private String endTime;
private LocalTime endTime;

@NotNull
@Positive
@Schema(description = "필요 인원", example = "3")
private int positionsNeeded;

@NotBlank
@Schema(description = "포지션", example = "홀서빙")
private String position;

public UpdatePostingScheduleCommand toCommand() {
return new UpdatePostingScheduleCommand(id, workingDays, startTime, endTime, positionsNeeded, position);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public long getCountOfPostings(PostingListFilterDto filter) {
.select(qPosting.countDistinct())
.from(qPosting)
.leftJoin(qPosting.schedules, qPostingSchedule)
.on(qPostingSchedule.status.ne(PostingStatus.DELETED))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[중간] 활성 근무일정이 0개인 공고가 목록에 남습니다

.on() 으로 DELETED 일정을 조인에서 걸러낸 방향은 정확합니다. 이전에는 삭제된 일정의 시간대로도 공고가 검색됐으니 실제 결함 수정입니다.

다만 leftJoin 이라 매칭되는 활성 일정이 하나도 없으면 NULL 행이 남습니다. 그리고 아래 WHERE 의 시간 필터는

gteStartTime(qPostingSchedule, filter.getStartTime()),
lteEndTime(qPostingSchedule, filter.getEndTime())

필터가 null 이면 조건 자체를 만들지 않으므로 NULL 행이 걸러지지 않습니다. 결과적으로 시간 필터 없이 목록을 조회하면, 근무일정이 전부 삭제된 OPEN 공고가 schedules: [] 로 응답에 포함됩니다.

"삭제된 근무일정을 공고 응답에서 제외" 라는 이 PR 의 목적을 생각하면 이런 공고는 목록에서 빠지는 게 자연스러워 보입니다. leftJoinjoin (inner) 으로 바꾸거나 WHERE 에 활성 일정 exists 조건을 추가하는 방향을 검토해 주세요.

의도적으로 남기신 거라면 그대로 두셔도 됩니다. 다만 98번 라인의 getPostingsWithCursor 도 동일 패턴이라 count 와 list 는 서로 일관되게 동작합니다.

.leftJoin(qPosting.workspace, qWorkspace)
.where(
qPosting.status.eq(PostingStatus.OPEN),
Expand Down Expand Up @@ -103,6 +104,7 @@ public List<PostingListResponse> getPostingsWithCursor(CursorPageRequest<CursorD
.select(qPosting.id)
.from(qPosting)
.leftJoin(qPosting.schedules, qPostingSchedule)
.on(qPostingSchedule.status.ne(PostingStatus.DELETED))
.leftJoin(qPosting.workspace, qWorkspace)
.where(
qPosting.status.eq(PostingStatus.OPEN),
Expand Down Expand Up @@ -603,7 +605,8 @@ public Optional<ManagerPostingDetailResponse> getManagerPostingDetail(Long posti
.leftJoin(qWorkspace.businessType, QBusinessType.businessType).fetchJoin()
.where(
qPosting.id.eq(postingId),
qWorkspace.managerUser.eq(managerUser)
qWorkspace.managerUser.eq(managerUser),
qPosting.status.ne(PostingStatus.DELETED)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[사소] 매니저 목록 2차 쿼리와 필터링 방식이 다릅니다

상세 조회에 DELETED 제외를 넣으신 건 맞습니다.

다만 전체적으로 보면 삭제 필터링이 세 가지 방식으로 섞여 있습니다.

  • 일반 목록: 조인 .on() 으로 SQL 에서 제외 (50 · 98 라인)
  • 매니저 목록: 387 라인 에서 DELETED 일정까지 fetch join 한 뒤 getActiveSchedules() 로 애플리케이션에서 제외
  • 상세: 여기처럼 WHERE 조건

최종 응답은 어느 경로든 getActiveSchedules() 를 거치므로 결과는 동일합니다. 급한 문제는 아니지만, 나중에 일정 필터 조건이 하나 더 생기면 세 곳을 각각 고쳐야 합니다.

)
.fetchOne();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.dreamteam.alter.domain.posting.entity.PostingSchedule;
import com.dreamteam.alter.domain.posting.entity.QPostingSchedule;
import com.dreamteam.alter.domain.posting.port.outbound.PostingScheduleQueryRepository;
import com.dreamteam.alter.domain.posting.type.PostingStatus;
import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
Expand All @@ -24,7 +25,8 @@ public Optional<PostingSchedule> findByIdAndPostingId(Long postingId, Long posti
.from(qPostingSchedule)
.where(
qPostingSchedule.posting.id.eq(postingId),
qPostingSchedule.id.eq(postingScheduleId)
qPostingSchedule.id.eq(postingScheduleId),
qPostingSchedule.status.ne(PostingStatus.DELETED)
)
.fetchOne();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public static ManagerPostingDetailResponse of(
posting.getStatus(),
posting.getCreatedAt(),
posting.getUpdatedAt(),
posting.getSchedules()
posting.getActiveSchedules()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.dreamteam.alter.domain.posting.entity.Posting;
import com.dreamteam.alter.domain.posting.entity.PostingSchedule;
import com.dreamteam.alter.domain.posting.type.PaymentType;
import com.dreamteam.alter.domain.posting.type.PostingStatus;
import com.dreamteam.alter.domain.workspace.entity.Workspace;
import lombok.*;

Expand All @@ -23,6 +24,8 @@ public class ManagerPostingListResponse {

private PaymentType paymentType;

private PostingStatus status;

private LocalDateTime createdAt;

private List<PostingSchedule> schedules;
Expand All @@ -35,8 +38,9 @@ public static ManagerPostingListResponse of(Posting posting) {
.title(posting.getTitle())
.payAmount(posting.getPayAmount())
.paymentType(posting.getPaymentType())
.status(posting.getStatus())
.createdAt(posting.getCreatedAt())
.schedules(posting.getSchedules())
.schedules(posting.getActiveSchedules())
.workspace(posting.getWorkspace())
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public static PostingDetailResponse of(
posting.getPayAmount(),
posting.getPaymentType(),
posting.getCreatedAt(),
posting.getSchedules(),
posting.getActiveSchedules(),
scrapped
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static PostingListResponse of(Posting posting, boolean scrapped) {
.payAmount(posting.getPayAmount())
.paymentType(posting.getPaymentType())
.createdAt(posting.getCreatedAt())
.schedules(posting.getSchedules())
.schedules(posting.getActiveSchedules())
.workspace(posting.getWorkspace())
.scrapped(scrapped)
.build();
Expand Down
Loading
Loading