Spaces:
Build error
Build error
| package com.dalab.policyengine.dto; | |
| import java.time.Instant; | |
| import java.util.List; | |
| import java.util.Map; | |
| import java.util.UUID; | |
| /** | |
| * DTO for returning policy draft information including workflow status and audit trail. | |
| * Contains comprehensive information for UI display and workflow management. | |
| */ | |
| public class PolicyDraftOutputDTO { | |
| private UUID id; | |
| private String name; | |
| private String description; | |
| private String status; | |
| private Integer version; | |
| private UUID basePolicyId; | |
| private String conditionLogic; | |
| private List<Map<String, Object>> rulesDefinition; | |
| private Map<String, Object> actions; | |
| private String changeSummary; | |
| private String justification; | |
| private String expectedImpact; | |
| private Instant targetImplementationDate; | |
| private String priority; | |
| private String category; | |
| private List<String> tags; | |
| private List<UUID> stakeholders; | |
| private Map<String, Object> approvalMetadata; | |
| private List<Map<String, Object>> reviewComments; | |
| // Audit trail information | |
| private Instant createdAt; | |
| private Instant updatedAt; | |
| private UUID createdByUserId; | |
| private UUID updatedByUserId; | |
| private Instant submittedAt; | |
| private UUID submittedByUserId; | |
| private Instant approvedAt; | |
| private UUID approvedByUserId; | |
| private Instant rejectedAt; | |
| private UUID rejectedByUserId; | |
| private Instant publishedAt; | |
| private UUID publishedByUserId; | |
| // Enhanced workflow information | |
| private WorkflowStatusDTO workflowStatus; | |
| private List<WorkflowActionDTO> availableActions; | |
| // Constructors | |
| public PolicyDraftOutputDTO() {} | |
| public PolicyDraftOutputDTO(UUID id, String name, String status) { | |
| this.id = id; | |
| this.name = name; | |
| this.status = status; | |
| } | |
| // Getters and Setters | |
| public UUID getId() { | |
| return id; | |
| } | |
| public void setId(UUID id) { | |
| this.id = id; | |
| } | |
| public String getName() { | |
| return name; | |
| } | |
| public void setName(String name) { | |
| this.name = name; | |
| } | |
| public String getDescription() { | |
| return description; | |
| } | |
| public void setDescription(String description) { | |
| this.description = description; | |
| } | |
| public String getStatus() { | |
| return status; | |
| } | |
| public void setStatus(String status) { | |
| this.status = status; | |
| } | |
| public Integer getVersion() { | |
| return version; | |
| } | |
| public void setVersion(Integer version) { | |
| this.version = version; | |
| } | |
| public UUID getBasePolicyId() { | |
| return basePolicyId; | |
| } | |
| public void setBasePolicyId(UUID basePolicyId) { | |
| this.basePolicyId = basePolicyId; | |
| } | |
| public String getConditionLogic() { | |
| return conditionLogic; | |
| } | |
| public void setConditionLogic(String conditionLogic) { | |
| this.conditionLogic = conditionLogic; | |
| } | |
| public List<Map<String, Object>> getRulesDefinition() { | |
| return rulesDefinition; | |
| } | |
| public void setRulesDefinition(List<Map<String, Object>> rulesDefinition) { | |
| this.rulesDefinition = rulesDefinition; | |
| } | |
| public Map<String, Object> getActions() { | |
| return actions; | |
| } | |
| public void setActions(Map<String, Object> actions) { | |
| this.actions = actions; | |
| } | |
| public String getChangeSummary() { | |
| return changeSummary; | |
| } | |
| public void setChangeSummary(String changeSummary) { | |
| this.changeSummary = changeSummary; | |
| } | |
| public String getJustification() { | |
| return justification; | |
| } | |
| public void setJustification(String justification) { | |
| this.justification = justification; | |
| } | |
| public String getExpectedImpact() { | |
| return expectedImpact; | |
| } | |
| public void setExpectedImpact(String expectedImpact) { | |
| this.expectedImpact = expectedImpact; | |
| } | |
| public Instant getTargetImplementationDate() { | |
| return targetImplementationDate; | |
| } | |
| public void setTargetImplementationDate(Instant targetImplementationDate) { | |
| this.targetImplementationDate = targetImplementationDate; | |
| } | |
| public String getPriority() { | |
| return priority; | |
| } | |
| public void setPriority(String priority) { | |
| this.priority = priority; | |
| } | |
| public String getCategory() { | |
| return category; | |
| } | |
| public void setCategory(String category) { | |
| this.category = category; | |
| } | |
| public List<String> getTags() { | |
| return tags; | |
| } | |
| public void setTags(List<String> tags) { | |
| this.tags = tags; | |
| } | |
| public List<UUID> getStakeholders() { | |
| return stakeholders; | |
| } | |
| public void setStakeholders(List<UUID> stakeholders) { | |
| this.stakeholders = stakeholders; | |
| } | |
| public Map<String, Object> getApprovalMetadata() { | |
| return approvalMetadata; | |
| } | |
| public void setApprovalMetadata(Map<String, Object> approvalMetadata) { | |
| this.approvalMetadata = approvalMetadata; | |
| } | |
| public List<Map<String, Object>> getReviewComments() { | |
| return reviewComments; | |
| } | |
| public void setReviewComments(List<Map<String, Object>> reviewComments) { | |
| this.reviewComments = reviewComments; | |
| } | |
| public Instant getCreatedAt() { | |
| return createdAt; | |
| } | |
| public void setCreatedAt(Instant createdAt) { | |
| this.createdAt = createdAt; | |
| } | |
| public Instant getUpdatedAt() { | |
| return updatedAt; | |
| } | |
| public void setUpdatedAt(Instant updatedAt) { | |
| this.updatedAt = updatedAt; | |
| } | |
| public UUID getCreatedByUserId() { | |
| return createdByUserId; | |
| } | |
| public void setCreatedByUserId(UUID createdByUserId) { | |
| this.createdByUserId = createdByUserId; | |
| } | |
| public UUID getUpdatedByUserId() { | |
| return updatedByUserId; | |
| } | |
| public void setUpdatedByUserId(UUID updatedByUserId) { | |
| this.updatedByUserId = updatedByUserId; | |
| } | |
| public Instant getSubmittedAt() { | |
| return submittedAt; | |
| } | |
| public void setSubmittedAt(Instant submittedAt) { | |
| this.submittedAt = submittedAt; | |
| } | |
| public UUID getSubmittedByUserId() { | |
| return submittedByUserId; | |
| } | |
| public void setSubmittedByUserId(UUID submittedByUserId) { | |
| this.submittedByUserId = submittedByUserId; | |
| } | |
| public Instant getApprovedAt() { | |
| return approvedAt; | |
| } | |
| public void setApprovedAt(Instant approvedAt) { | |
| this.approvedAt = approvedAt; | |
| } | |
| public UUID getApprovedByUserId() { | |
| return approvedByUserId; | |
| } | |
| public void setApprovedByUserId(UUID approvedByUserId) { | |
| this.approvedByUserId = approvedByUserId; | |
| } | |
| public Instant getRejectedAt() { | |
| return rejectedAt; | |
| } | |
| public void setRejectedAt(Instant rejectedAt) { | |
| this.rejectedAt = rejectedAt; | |
| } | |
| public UUID getRejectedByUserId() { | |
| return rejectedByUserId; | |
| } | |
| public void setRejectedByUserId(UUID rejectedByUserId) { | |
| this.rejectedByUserId = rejectedByUserId; | |
| } | |
| public Instant getPublishedAt() { | |
| return publishedAt; | |
| } | |
| public void setPublishedAt(Instant publishedAt) { | |
| this.publishedAt = publishedAt; | |
| } | |
| public UUID getPublishedByUserId() { | |
| return publishedByUserId; | |
| } | |
| public void setPublishedByUserId(UUID publishedByUserId) { | |
| this.publishedByUserId = publishedByUserId; | |
| } | |
| public WorkflowStatusDTO getWorkflowStatus() { | |
| return workflowStatus; | |
| } | |
| public void setWorkflowStatus(WorkflowStatusDTO workflowStatus) { | |
| this.workflowStatus = workflowStatus; | |
| } | |
| public List<WorkflowActionDTO> getAvailableActions() { | |
| return availableActions; | |
| } | |
| public void setAvailableActions(List<WorkflowActionDTO> availableActions) { | |
| this.availableActions = availableActions; | |
| } | |
| /** | |
| * Nested DTO for workflow status information. | |
| */ | |
| public static class WorkflowStatusDTO { | |
| private String currentStage; | |
| private String statusDescription; | |
| private List<String> nextPossibleStates; | |
| private boolean canEdit; | |
| private boolean canSubmit; | |
| private boolean canApprove; | |
| private boolean canReject; | |
| private boolean canPublish; | |
| private String stageColor; // For UI status indicators | |
| private Integer daysInCurrentStatus; | |
| // Constructors, getters, and setters | |
| public WorkflowStatusDTO() {} | |
| public String getCurrentStage() { return currentStage; } | |
| public void setCurrentStage(String currentStage) { this.currentStage = currentStage; } | |
| public String getStatusDescription() { return statusDescription; } | |
| public void setStatusDescription(String statusDescription) { this.statusDescription = statusDescription; } | |
| public List<String> getNextPossibleStates() { return nextPossibleStates; } | |
| public void setNextPossibleStates(List<String> nextPossibleStates) { this.nextPossibleStates = nextPossibleStates; } | |
| public boolean isCanEdit() { return canEdit; } | |
| public void setCanEdit(boolean canEdit) { this.canEdit = canEdit; } | |
| public boolean isCanSubmit() { return canSubmit; } | |
| public void setCanSubmit(boolean canSubmit) { this.canSubmit = canSubmit; } | |
| public boolean isCanApprove() { return canApprove; } | |
| public void setCanApprove(boolean canApprove) { this.canApprove = canApprove; } | |
| public boolean isCanReject() { return canReject; } | |
| public void setCanReject(boolean canReject) { this.canReject = canReject; } | |
| public boolean isCanPublish() { return canPublish; } | |
| public void setCanPublish(boolean canPublish) { this.canPublish = canPublish; } | |
| public String getStageColor() { return stageColor; } | |
| public void setStageColor(String stageColor) { this.stageColor = stageColor; } | |
| public Integer getDaysInCurrentStatus() { return daysInCurrentStatus; } | |
| public void setDaysInCurrentStatus(Integer daysInCurrentStatus) { this.daysInCurrentStatus = daysInCurrentStatus; } | |
| } | |
| /** | |
| * Nested DTO for available workflow actions. | |
| */ | |
| public static class WorkflowActionDTO { | |
| private String actionType; | |
| private String actionLabel; | |
| private String actionDescription; | |
| private boolean requiresComment; | |
| private String confirmationMessage; | |
| private String buttonStyle; // For UI styling | |
| // Constructors, getters, and setters | |
| public WorkflowActionDTO() {} | |
| public WorkflowActionDTO(String actionType, String actionLabel) { | |
| this.actionType = actionType; | |
| this.actionLabel = actionLabel; | |
| } | |
| public String getActionType() { return actionType; } | |
| public void setActionType(String actionType) { this.actionType = actionType; } | |
| public String getActionLabel() { return actionLabel; } | |
| public void setActionLabel(String actionLabel) { this.actionLabel = actionLabel; } | |
| public String getActionDescription() { return actionDescription; } | |
| public void setActionDescription(String actionDescription) { this.actionDescription = actionDescription; } | |
| public boolean isRequiresComment() { return requiresComment; } | |
| public void setRequiresComment(boolean requiresComment) { this.requiresComment = requiresComment; } | |
| public String getConfirmationMessage() { return confirmationMessage; } | |
| public void setConfirmationMessage(String confirmationMessage) { this.confirmationMessage = confirmationMessage; } | |
| public String getButtonStyle() { return buttonStyle; } | |
| public void setButtonStyle(String buttonStyle) { this.buttonStyle = buttonStyle; } | |
| } | |
| } |