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 ;
@@ -49,18 +51,30 @@ public class OperationalLimitsGroupModificationEntity {
4951            ))
5052    private  CurrentLimitsModificationEntity  currentLimits ;
5153
52-     @ Column (name  = "modificationType " )
54+     @ Column (name  = "modification_type " )
5355    @ Enumerated (EnumType .STRING )
5456    private  OperationalLimitsGroupModificationType  modificationType ;
5557
56-     @ Column (name  = "temporaryLimitsModificationType " )
58+     @ Column (name  = "temporary_limits_modification_type " )
5759    @ Enumerated (EnumType .STRING )
5860    private  TemporaryLimitModificationType  temporaryLimitsModificationType ;
5961
6062    @ Column (name  = "applicability" )
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,10 +85,9 @@ public static List<OperationalLimitsGroupModificationEntity> toOperationalLimits
7185                                new  CurrentLimitsModificationEntity (limitsGroup .getCurrentLimits ()),
7286                                limitsGroup .getModificationType (),
7387                                limitsGroup .getTemporaryLimitsModificationType (),
74-                                 limitsGroup .getApplicability ()
75-                         )
76-                 )
77-                 .toList ();
88+                                 limitsGroup .getApplicability (),
89+                                 toLimitPropertyEntities (limitsGroup .getLimitsProperties ()))
90+                 ).toList ();
7891    }
7992
8093    public  static  List <OperationalLimitsGroupModificationInfos > fromOperationalLimitsGroupsEntities (List <OperationalLimitsGroupModificationEntity > limitsGroupsEntities ) {
@@ -87,6 +100,8 @@ public static List<OperationalLimitsGroupModificationInfos> fromOperationalLimit
87100                                        .modificationType (limitsGroupEntity .getModificationType ())
88101                                        .temporaryLimitsModificationType (limitsGroupEntity .getTemporaryLimitsModificationType ())
89102                                        .applicability (limitsGroupEntity .getApplicability ())
103+                                         .limitsProperties (limitsGroupEntity .getLimitsProperties ().stream ().map (
104+                                         LimitsPropertyModificationEntity ::toLimitsPropertyInfos ).toList ())
90105                                        .build ()
91106                        )
92107                        .collect (Collectors .toList ());
0 commit comments