1111import lombok .Getter ;
1212import lombok .NoArgsConstructor ;
1313import lombok .NonNull ;
14+ import org .gridsuite .modification .dto .LimitsPropertyInfos ;
1415import org .gridsuite .modification .dto .OperationalLimitsGroupInfos ;
1516import org .gridsuite .modification .dto .OperationalLimitsGroupModificationInfos ;
1617import org .gridsuite .modification .dto .OperationalLimitsGroupModificationType ;
1718import org .gridsuite .modification .dto .TemporaryLimitModificationType ;
1819import org .springframework .util .CollectionUtils ;
1920
21+ import java .util .ArrayList ;
2022import java .util .List ;
2123import java .util .Objects ;
2224import 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 ());
0 commit comments