feat: nullable projectId, new ticket categories, improved create form

This commit is contained in:
pray4skylark
2026-06-08 16:53:01 +09:00
parent ca444a3b4f
commit 0e141e16af
8 changed files with 299 additions and 40 deletions
@@ -59,21 +59,22 @@ public class TicketService {
Employee requester = employeeRepository.findById(requesterId)
.orElseThrow(() -> new BusinessException(ErrorCode.EMPLOYEE_NOT_FOUND));
Project project = projectRepository.findById(request.projectId())
.orElseThrow(() -> new BusinessException(ErrorCode.PROJECT_NOT_FOUND));
Ticket ticket = Ticket.builder()
.project(project)
Ticket.TicketBuilder builder = Ticket.builder()
.requester(requester)
.category(request.category())
.priority(request.priority())
.title(request.title())
.description(request.description())
.status(TicketStatus.OPEN)
.slaWarnFlag('N')
.build();
.slaWarnFlag('N');
Ticket saved = ticketRepository.save(ticket);
if (request.projectId() != null) {
Project project = projectRepository.findById(request.projectId())
.orElseThrow(() -> new BusinessException(ErrorCode.PROJECT_NOT_FOUND));
builder.project(project);
}
Ticket saved = ticketRepository.save(builder.build());
return toIssueTicket(saved);
}