Spaces:
Build error
Build error
| package com.dalab.policyengine.model; | |
| import java.time.Instant; | |
| import java.util.ArrayList; | |
| import java.util.List; | |
| import java.util.Map; | |
| import java.util.UUID; | |
| import org.hibernate.annotations.JdbcTypeCode; | |
| import org.hibernate.type.SqlTypes; | |
| import jakarta.persistence.*; | |
| import jakarta.validation.constraints.NotBlank; | |
| import jakarta.validation.constraints.Size; | |
| public class Policy { | |
| private UUID id; | |
| private String name; | |
| private String description; | |
| private PolicyStatus status = PolicyStatus.DISABLED; | |
| // MVEL condition for the policy. If all rules pass, this condition is evaluated. | |
| // Could be null if policy relies solely on its individual rules. | |
| private String conditionLogic; // e.g., "rule1 && (rule2 || rule3)" | |
| private List<PolicyRule> rules = new ArrayList<>(); | |
| private Map<String, Object> actions; // e.g., { "notify": { "email": "admin@example.com" }, "addLabel": "Sensitive" } | |
| private Instant createdAt; | |
| private Instant updatedAt; | |
| private UUID createdByUserId; | |
| private UUID updatedByUserId; | |
| // 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 PolicyStatus getStatus() { | |
| return status; | |
| } | |
| public void setStatus(PolicyStatus status) { | |
| this.status = status; | |
| } | |
| public String getConditionLogic() { | |
| return conditionLogic; | |
| } | |
| public void setConditionLogic(String conditionLogic) { | |
| this.conditionLogic = conditionLogic; | |
| } | |
| public List<PolicyRule> getRules() { | |
| return rules; | |
| } | |
| public void setRules(List<PolicyRule> rules) { | |
| this.rules = rules; | |
| this.rules.forEach(rule -> rule.setPolicy(this)); | |
| } | |
| public void addRule(PolicyRule rule) { | |
| this.rules.add(rule); | |
| rule.setPolicy(this); | |
| } | |
| public void removeRule(PolicyRule rule) { | |
| this.rules.remove(rule); | |
| rule.setPolicy(null); | |
| } | |
| public Map<String, Object> getActions() { | |
| return actions; | |
| } | |
| public void setActions(Map<String, Object> actions) { | |
| this.actions = actions; | |
| } | |
| 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; | |
| } | |
| protected void onCreate() { | |
| createdAt = Instant.now(); | |
| updatedAt = Instant.now(); | |
| } | |
| protected void onUpdate() { | |
| updatedAt = Instant.now(); | |
| } | |
| } |