feat: ticket form reorder, attachment, conditional project

This commit is contained in:
pray4skylark
2026-06-08 17:07:31 +09:00
parent 0e141e16af
commit a9ba081144
8 changed files with 116 additions and 54 deletions
@@ -11,6 +11,8 @@ public record CreateTicketRequest(
@NotNull TicketCategory category,
@NotNull TicketPriority priority,
@NotBlank String title,
@NotBlank String description
@NotBlank String description,
@Nullable String attachmentUrl,
@Nullable String attachmentName
) {
}
@@ -20,6 +20,8 @@ public record IssueTicket(
LocalDateTime resolvedAt,
String resolutionNote,
boolean slaWarnFlag,
LocalDateTime createdAt
LocalDateTime createdAt,
String attachmentUrl,
String attachmentName
) {
}
@@ -66,6 +66,12 @@ public class Ticket extends BaseEntity {
@Column(name = "resolution_note", columnDefinition = "TEXT")
private String resolutionNote;
@Column(name = "attachment_url", length = 500)
private String attachmentUrl;
@Column(name = "attachment_name", length = 255)
private String attachmentName;
@Column(name = "sla_warn_flag", nullable = false, length = 1)
private char slaWarnFlag = 'N';
}
@@ -66,7 +66,9 @@ public class TicketService {
.title(request.title())
.description(request.description())
.status(TicketStatus.OPEN)
.slaWarnFlag('N');
.slaWarnFlag('N')
.attachmentUrl(request.attachmentUrl())
.attachmentName(request.attachmentName());
if (request.projectId() != null) {
Project project = projectRepository.findById(request.projectId())
@@ -186,7 +188,7 @@ public class TicketService {
private IssueTicket toIssueTicket(Ticket ticket) {
return new IssueTicket(
ticket.getTicketId(),
ticket.getProject().getProjectName(),
ticket.getProject() != null ? ticket.getProject().getProjectName() : null,
ticket.getRequester().getName(),
ticket.getAssignee() != null ? ticket.getAssignee().getName() : null,
ticket.getCategory(),
@@ -198,7 +200,9 @@ public class TicketService {
ticket.getResolvedAt(),
ticket.getResolutionNote(),
ticket.getSlaWarnFlag() == 'Y',
ticket.getCreatedAt()
ticket.getCreatedAt(),
ticket.getAttachmentUrl(),
ticket.getAttachmentName()
);
}
}
@@ -0,0 +1,2 @@
ALTER TABLE tb_ticket ADD COLUMN IF NOT EXISTS attachment_url VARCHAR(500);
ALTER TABLE tb_ticket ADD COLUMN IF NOT EXISTS attachment_name VARCHAR(255);