@@ -933,6 +933,27 @@ def __ne__(self, other):
933
933
)
934
934
935
935
936
+ # Association table for MergeRequest assignees
937
+ merge_request_assignees = Table (
938
+ "merge_request_assignees" ,
939
+ BaseDBModel .metadata ,
940
+ Column (
941
+ "merge_request_id" , Integer , ForeignKey ("merge_requests.id" ), primary_key = True
942
+ ),
943
+ Column ("user_id" , Integer , ForeignKey ("users.id" ), primary_key = True ),
944
+ )
945
+
946
+ # Association table for MergeRequest reviewers
947
+ merge_request_reviewers = Table (
948
+ "merge_request_reviewers" ,
949
+ BaseDBModel .metadata ,
950
+ Column (
951
+ "merge_request_id" , Integer , ForeignKey ("merge_requests.id" ), primary_key = True
952
+ ),
953
+ Column ("user_id" , Integer , ForeignKey ("users.id" ), primary_key = True ),
954
+ )
955
+
956
+
936
957
# MergeRequest Model
937
958
class MergeRequestDBModel (BaseDBModel ):
938
959
__tablename__ = "merge_requests"
@@ -1101,10 +1122,17 @@ def __ne__(self, other):
1101
1122
back_populates = "assigned_merge_requests" ,
1102
1123
)
1103
1124
1104
- assignees_id : Mapped [int ] = mapped_column (
1105
- Integer , ForeignKey (column = "users.id" ), nullable = True
1125
+ assignees : Mapped [list ["UserDBModel" ]] = relationship (
1126
+ "UserDBModel" ,
1127
+ secondary = merge_request_assignees , # Use the association table
1128
+ back_populates = "assignee_merge_requests" ,
1129
+ )
1130
+
1131
+ reviewers : Mapped [list ["UserDBModel" ]] = relationship (
1132
+ "UserDBModel" ,
1133
+ secondary = merge_request_reviewers , # Use the association table
1134
+ back_populates = "reviewers_merge_requests" ,
1106
1135
)
1107
- assignees : Mapped [list ["UserDBModel" ]] = relationship (back_populates = "assignee_merge_requests" )
1108
1136
1109
1137
merged_by : Mapped ["UserDBModel" ] = relationship (
1110
1138
"UserDBModel" ,
@@ -1136,11 +1164,6 @@ def __ne__(self, other):
1136
1164
back_populates = "closed_merge_requests" ,
1137
1165
)
1138
1166
1139
- reviewers_id : Mapped [int ] = mapped_column (
1140
- Integer , ForeignKey (column = "users.id" ), nullable = True
1141
- )
1142
- reviewers : Mapped [list ["UserDBModel" ]] = relationship (back_populates = "reviewers_merge_requests" )
1143
-
1144
1167
1145
1168
# GroupAccess Model
1146
1169
class GroupAccessDBModel (BaseDBModel ):
@@ -1555,9 +1578,22 @@ def __ne__(self, other):
1555
1578
1556
1579
assignee_merge_requests : Mapped [list ["MergeRequestDBModel" ]] = relationship (
1557
1580
"MergeRequestDBModel" ,
1581
+ secondary = merge_request_assignees , # Use the association table
1558
1582
back_populates = "assignees" ,
1559
- primaryjoin = "foreign(MergeRequestDBModel.assignees_id) == UserDBModel.id" ,
1560
1583
)
1584
+
1585
+ reviewed_merge_requests : Mapped [list ["MergeRequestDBModel" ]] = relationship (
1586
+ "MergeRequestDBModel" ,
1587
+ back_populates = "reviewer" ,
1588
+ primaryjoin = "foreign(MergeRequestDBModel.reviewer_id) == UserDBModel.id" ,
1589
+ )
1590
+
1591
+ reviewers_merge_requests : Mapped [list ["MergeRequestDBModel" ]] = relationship (
1592
+ "MergeRequestDBModel" ,
1593
+ secondary = merge_request_reviewers , # Use the association table
1594
+ back_populates = "reviewers" ,
1595
+ )
1596
+
1561
1597
merged_merge_requests : Mapped [list ["MergeRequestDBModel" ]] = relationship (
1562
1598
"MergeRequestDBModel" ,
1563
1599
back_populates = "merged_by" ,
@@ -1570,12 +1606,6 @@ def __ne__(self, other):
1570
1606
primaryjoin = "foreign(MergeRequestDBModel.merge_user_id) == UserDBModel.id" ,
1571
1607
)
1572
1608
1573
- reviewed_merge_requests : Mapped [list ["MergeRequestDBModel" ]] = relationship (
1574
- "MergeRequestDBModel" ,
1575
- back_populates = "reviewer" ,
1576
- primaryjoin = "foreign(MergeRequestDBModel.reviewer_id) == UserDBModel.id" ,
1577
- )
1578
-
1579
1609
approved_merge_requests : Mapped [list ["MergeRequestDBModel" ]] = relationship (
1580
1610
"MergeRequestDBModel" ,
1581
1611
back_populates = "approved_by" ,
@@ -1588,11 +1618,6 @@ def __ne__(self, other):
1588
1618
primaryjoin = "foreign(MergeRequestDBModel.closed_by_id) == UserDBModel.id" ,
1589
1619
)
1590
1620
1591
- reviewers_merge_requests : Mapped [list ["MergeRequestDBModel" ]] = relationship (
1592
- "MergeRequestDBModel" ,
1593
- back_populates = "reviewers" ,
1594
- primaryjoin = "foreign(MergeRequestDBModel.reviewers_id) == UserDBModel.id" ,
1595
- )
1596
1621
project_owner : Mapped [list ["ProjectDBModel" ]] = relationship (
1597
1622
"ProjectDBModel" ,
1598
1623
back_populates = "owner" ,
0 commit comments