Skip to content

Commit 6d45fcc

Browse files
committed
Add entity for property modification
Signed-off-by: basseche <[email protected]>
1 parent ef5cbc6 commit 6d45fcc

File tree

4 files changed

+96
-3
lines changed

4 files changed

+96
-3
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
* Copyright (c) 2025, RTE (http://www.rte-france.com)
3+
* This Source Code Form is subject to the terms of the Mozilla Public
4+
* License, v. 2.0. If a copy of the MPL was not distributed with this
5+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
*/
7+
8+
package org.gridsuite.modification.server.entities.equipment.modification;
9+
10+
import jakarta.persistence.Column;
11+
import jakarta.persistence.Entity;
12+
import jakarta.persistence.GeneratedValue;
13+
import jakarta.persistence.GenerationType;
14+
import jakarta.persistence.Id;
15+
import jakarta.persistence.Table;
16+
import lombok.AllArgsConstructor;
17+
import lombok.Getter;
18+
import lombok.NoArgsConstructor;
19+
import lombok.Setter;
20+
import org.gridsuite.modification.dto.LimitsPropertyInfos;
21+
22+
import java.util.UUID;
23+
24+
/**
25+
* @author El Cheikh Bassel <bassel.el-cheikh_externe at rte-france.com>
26+
*/
27+
28+
@Getter
29+
@Setter
30+
@NoArgsConstructor
31+
@AllArgsConstructor
32+
@Entity
33+
@Table(name = "limits_property_modification")
34+
public class LimitsPropertyModificationEntity {
35+
@Id
36+
@GeneratedValue(strategy = GenerationType.AUTO)
37+
@Column(name = "id")
38+
private UUID id;
39+
40+
@Column(name = "name", nullable = false)
41+
private String name;
42+
43+
@Column(name = "value", nullable = false)
44+
private String value;
45+
46+
public static LimitsPropertyModificationEntity fromLimitsPropertyInfos(LimitsPropertyInfos propertyInfos) {
47+
return new LimitsPropertyModificationEntity(null, propertyInfos.name(), propertyInfos.value());
48+
}
49+
50+
public LimitsPropertyInfos toLimitsPropertyInfos() {
51+
return new LimitsPropertyInfos(name, value);
52+
}
53+
}

src/main/java/org/gridsuite/modification/server/entities/equipment/modification/OperationalLimitsGroupModificationEntity.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111
import lombok.Getter;
1212
import lombok.NoArgsConstructor;
1313
import lombok.NonNull;
14+
import org.gridsuite.modification.dto.LimitsPropertyInfos;
1415
import org.gridsuite.modification.dto.OperationalLimitsGroupInfos;
1516
import org.gridsuite.modification.dto.OperationalLimitsGroupModificationInfos;
1617
import org.gridsuite.modification.dto.OperationalLimitsGroupModificationType;
1718
import org.gridsuite.modification.dto.TemporaryLimitModificationType;
1819
import org.springframework.util.CollectionUtils;
1920

21+
import java.util.ArrayList;
2022
import java.util.List;
2123
import java.util.Objects;
2224
import java.util.UUID;
@@ -61,6 +63,18 @@ public class OperationalLimitsGroupModificationEntity {
6163
@Enumerated(EnumType.STRING)
6264
private OperationalLimitsGroupInfos.Applicability applicability;
6365

66+
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
67+
@JoinColumn(name = "operational_limit_group_id", foreignKey = @ForeignKey(name = "operational_limit_group_modification_id_fk"))
68+
private List<LimitsPropertyModificationEntity> limitsProperties;
69+
70+
private static List<LimitsPropertyModificationEntity> toLimitPropertyEntities(List<LimitsPropertyInfos> properties) {
71+
List<LimitsPropertyModificationEntity> result = new ArrayList<>();
72+
if (!CollectionUtils.isEmpty(properties)) {
73+
result = properties.stream().map(LimitsPropertyModificationEntity::fromLimitsPropertyInfos).toList();
74+
}
75+
return result;
76+
}
77+
6478
public static List<OperationalLimitsGroupModificationEntity> toOperationalLimitsGroupsEntities(@NonNull List<OperationalLimitsGroupModificationInfos> limitsGroups) {
6579
return limitsGroups.stream()
6680
.filter(Objects::nonNull)
@@ -71,8 +85,9 @@ public static List<OperationalLimitsGroupModificationEntity> toOperationalLimits
7185
new CurrentLimitsModificationEntity(limitsGroup.getCurrentLimits()),
7286
limitsGroup.getModificationType(),
7387
limitsGroup.getTemporaryLimitsModificationType(),
74-
limitsGroup.getApplicability()
75-
)).toList();
88+
limitsGroup.getApplicability(),
89+
toLimitPropertyEntities(limitsGroup.getLimitsProperties()))
90+
).toList();
7691
}
7792

7893
public static List<OperationalLimitsGroupModificationInfos> fromOperationalLimitsGroupsEntities(List<OperationalLimitsGroupModificationEntity> limitsGroupsEntities) {
@@ -85,6 +100,8 @@ public static List<OperationalLimitsGroupModificationInfos> fromOperationalLimit
85100
.modificationType(limitsGroupEntity.getModificationType())
86101
.temporaryLimitsModificationType(limitsGroupEntity.getTemporaryLimitsModificationType())
87102
.applicability(limitsGroupEntity.getApplicability())
103+
.limitsProperties(limitsGroupEntity.getLimitsProperties().stream().map(
104+
LimitsPropertyModificationEntity::toLimitsPropertyInfos).toList())
88105
.build()
89106
)
90107
.collect(Collectors.toList());
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
2+
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd">
3+
<changeSet author="elcheikhbas (generated)" id="1761133756126-1">
4+
<createTable tableName="limits_property_modification">
5+
<column name="id" type="UUID">
6+
<constraints nullable="false" primaryKey="true" primaryKeyName="limits_property_modificationPK"/>
7+
</column>
8+
<column name="name" type="VARCHAR(255)">
9+
<constraints nullable="false"/>
10+
</column>
11+
<column name="value" type="VARCHAR(255)">
12+
<constraints nullable="false"/>
13+
</column>
14+
<column name="operational_limit_group_id" type="UUID"/>
15+
</createTable>
16+
</changeSet>
17+
<changeSet author="elcheikhbas (generated)" id="1761133756126-2">
18+
<addForeignKeyConstraint baseColumnNames="operational_limit_group_id" baseTableName="limits_property_modification" constraintName="operational_limit_group_modification_id_fk" deferrable="false" initiallyDeferred="false" referencedColumnNames="uuid" referencedTableName="operational_limits_group_modification" validate="true"/>
19+
</changeSet>
20+
</databaseChangeLog>

src/main/resources/db/changelog/db.changelog-master.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,4 +428,7 @@ databaseChangeLog:
428428
relativeToChangelogFile: true
429429
- include:
430430
file: changesets/changelog_20251009T130154Z.xml
431-
relativeToChangelogFile: true
431+
relativeToChangelogFile: true
432+
- include:
433+
file: changesets/changelog_20251022T114823Z.xml
434+
relativeToChangelogFile: true

0 commit comments

Comments
 (0)