@@ -24,15 +24,15 @@ def create(cls, task_assignment: TaskAssignmentModel) -> TaskAssignmentModel:
24
24
25
25
dual_write_service = EnhancedDualWriteService ()
26
26
task_assignment_data = {
27
- "task_id " : str (task_assignment .task_id ),
27
+ "task_mongo_id " : str (task_assignment .task_id ),
28
28
"assignee_id" : str (task_assignment .assignee_id ),
29
29
"user_type" : task_assignment .user_type ,
30
30
"team_id" : str (task_assignment .team_id ) if task_assignment .team_id else None ,
31
31
"is_active" : task_assignment .is_active ,
32
- "created_by" : str (task_assignment .created_by ),
33
- "updated_by" : str (task_assignment .updated_by ) if task_assignment .updated_by else None ,
34
32
"created_at" : task_assignment .created_at ,
35
33
"updated_at" : task_assignment .updated_at ,
34
+ "created_by" : str (task_assignment .created_by ),
35
+ "updated_by" : str (task_assignment .updated_by ) if task_assignment .updated_by else None ,
36
36
}
37
37
38
38
dual_write_success = dual_write_service .create_document (
@@ -130,6 +130,31 @@ def update_assignment(
130
130
},
131
131
)
132
132
133
+ # Sync deactivation to PostgreSQL
134
+ if current_assignment :
135
+ dual_write_service = EnhancedDualWriteService ()
136
+ deactivation_data = {
137
+ "task_mongo_id" : str (current_assignment .task_id ),
138
+ "assignee_id" : str (current_assignment .assignee_id ),
139
+ "user_type" : current_assignment .user_type ,
140
+ "team_id" : str (current_assignment .team_id ) if current_assignment .team_id else None ,
141
+ "is_active" : False ,
142
+ "created_at" : current_assignment .created_at ,
143
+ "updated_at" : datetime .now (timezone .utc ),
144
+ "created_by" : str (current_assignment .created_by ),
145
+ "updated_by" : str (user_id ),
146
+ }
147
+
148
+ dual_write_success = dual_write_service .update_document (
149
+ collection_name = "task_assignments" , data = deactivation_data , mongo_id = str (current_assignment .id )
150
+ )
151
+
152
+ if not dual_write_success :
153
+ import logging
154
+
155
+ logger = logging .getLogger (__name__ )
156
+ logger .warning (f"Failed to sync task assignment deactivation { current_assignment .id } to Postgres" )
157
+
133
158
new_assignment = TaskAssignmentModel (
134
159
_id = PyObjectId (),
135
160
task_id = PyObjectId (task_id ),
@@ -181,15 +206,15 @@ def delete_assignment(cls, task_id: str, user_id: str) -> bool:
181
206
# Sync to PostgreSQL
182
207
dual_write_service = EnhancedDualWriteService ()
183
208
assignment_data = {
184
- "task_id " : str (current_assignment .task_id ),
209
+ "task_mongo_id " : str (current_assignment .task_id ),
185
210
"assignee_id" : str (current_assignment .assignee_id ),
186
211
"user_type" : current_assignment .user_type ,
187
212
"team_id" : str (current_assignment .team_id ) if current_assignment .team_id else None ,
188
213
"is_active" : False ,
189
- "created_by" : str (current_assignment .created_by ),
190
- "updated_by" : str (user_id ),
191
214
"created_at" : current_assignment .created_at ,
192
215
"updated_at" : datetime .now (timezone .utc ),
216
+ "created_by" : str (current_assignment .created_by ),
217
+ "updated_by" : str (user_id ),
193
218
}
194
219
195
220
dual_write_success = dual_write_service .update_document (
@@ -244,15 +269,15 @@ def update_executor(cls, task_id: str, executor_id: str, user_id: str) -> bool:
244
269
# Sync to PostgreSQL
245
270
dual_write_service = EnhancedDualWriteService ()
246
271
assignment_data = {
247
- "task_id " : str (current_assignment .task_id ),
272
+ "task_mongo_id " : str (current_assignment .task_id ),
248
273
"assignee_id" : str (executor_id ),
249
274
"user_type" : "user" ,
250
275
"team_id" : str (current_assignment .team_id ) if current_assignment .team_id else None ,
251
276
"is_active" : current_assignment .is_active ,
252
- "created_by" : str (current_assignment .created_by ),
253
- "updated_by" : str (user_id ),
254
277
"created_at" : current_assignment .created_at ,
255
278
"updated_at" : datetime .now (timezone .utc ),
279
+ "created_by" : str (current_assignment .created_by ),
280
+ "updated_by" : str (user_id ),
256
281
}
257
282
258
283
dual_write_success = dual_write_service .update_document (
@@ -306,15 +331,15 @@ def deactivate_by_task_id(cls, task_id: str, user_id: str) -> bool:
306
331
# Sync to PostgreSQL for each assignment
307
332
dual_write_service = EnhancedDualWriteService ()
308
333
assignment_data = {
309
- "task_id " : str (active_assignments .task_id ),
334
+ "task_mongo_id " : str (active_assignments .task_id ),
310
335
"assignee_id" : str (active_assignments .assignee_id ),
311
336
"user_type" : active_assignments .user_type ,
312
337
"team_id" : str (active_assignments .team_id ) if active_assignments .team_id else None ,
313
338
"is_active" : False ,
314
- "created_by" : str (active_assignments .created_by ),
315
- "updated_by" : str (user_id ),
316
339
"created_at" : active_assignments .created_at ,
317
340
"updated_at" : datetime .now (timezone .utc ),
341
+ "created_by" : str (active_assignments .created_by ),
342
+ "updated_by" : str (user_id ),
318
343
}
319
344
320
345
dual_write_success = dual_write_service .update_document (
0 commit comments