@@ -539,17 +539,7 @@ export async function changeMemberOrganizationAffiliationOverrides(
539539 return returnRows ? [ ] : undefined
540540 }
541541
542- type OverrideWriteRow = {
543- id : string
544- memberId : string
545- memberOrganizationId : string
546- allowAffiliation : boolean | null
547- isPrimaryWorkExperience : boolean | null
548- setAllowAffiliation : boolean
549- setIsPrimaryWorkExperience : boolean
550- }
551-
552- const rows : OverrideWriteRow [ ] = [ ]
542+ const rows : IMemberOrganizationAffiliationOverride [ ] = [ ]
553543
554544 for ( const d of data ) {
555545 if (
@@ -564,11 +554,8 @@ export async function changeMemberOrganizationAffiliationOverrides(
564554 id : d . id ?? uuid ( ) ,
565555 memberId : d . memberId ,
566556 memberOrganizationId : d . memberOrganizationId ,
567- // undefined → null on insert; explicit null stays null
568- allowAffiliation : d . allowAffiliation ?? null ,
569- isPrimaryWorkExperience : d . isPrimaryWorkExperience ?? null ,
570- setAllowAffiliation : d . allowAffiliation !== undefined ,
571- setIsPrimaryWorkExperience : d . isPrimaryWorkExperience !== undefined ,
557+ allowAffiliation : d . allowAffiliation ,
558+ isPrimaryWorkExperience : d . isPrimaryWorkExperience ,
572559 } )
573560 }
574561
@@ -580,13 +567,11 @@ export async function changeMemberOrganizationAffiliationOverrides(
580567 . map (
581568 ( _ , i ) => `
582569 (
583- $(id_${ i } )::uuid,
584- $(memberId_${ i } )::uuid,
585- $(memberOrganizationId_${ i } )::uuid,
586- $(allowAffiliation_${ i } )::boolean,
587- $(isPrimaryWorkExperience_${ i } )::boolean,
588- $(setAllowAffiliation_${ i } )::boolean,
589- $(setIsPrimaryWorkExperience_${ i } )::boolean
570+ $(id_${ i } ),
571+ $(memberId_${ i } ),
572+ $(memberOrganizationId_${ i } ),
573+ $(allowAffiliation_${ i } ),
574+ $(isPrimaryWorkExperience_${ i } )
590575 )
591576 ` ,
592577 )
@@ -599,61 +584,24 @@ export async function changeMemberOrganizationAffiliationOverrides(
599584 acc [ `memberOrganizationId_${ i } ` ] = row . memberOrganizationId
600585 acc [ `allowAffiliation_${ i } ` ] = row . allowAffiliation
601586 acc [ `isPrimaryWorkExperience_${ i } ` ] = row . isPrimaryWorkExperience
602- acc [ `setAllowAffiliation_${ i } ` ] = row . setAllowAffiliation
603- acc [ `setIsPrimaryWorkExperience_${ i } ` ] = row . setIsPrimaryWorkExperience
604587 return acc
605588 } ,
606589 { } as Record < string , unknown > ,
607590 )
608591
609- // CTE carries per-row "was this field provided?" flags so ON CONFLICT can
610- // distinguish omit (keep existing) from explicit null (clear).
611592 const query = `
612- WITH input (
613- id,
614- "memberId",
615- "memberOrganizationId",
616- "allowAffiliation",
617- "isPrimaryWorkExperience",
618- "setAllowAffiliation",
619- "setIsPrimaryWorkExperience"
620- ) AS (
621- VALUES ${ valuesSql }
622- )
623593 INSERT INTO "memberOrganizationAffiliationOverrides" (
624594 id,
625595 "memberId",
626596 "memberOrganizationId",
627597 "allowAffiliation",
628598 "isPrimaryWorkExperience"
629599 )
630- SELECT
631- id,
632- "memberId",
633- "memberOrganizationId",
634- "allowAffiliation",
635- "isPrimaryWorkExperience"
636- FROM input
600+ VALUES ${ valuesSql }
637601 ON CONFLICT ("memberId", "memberOrganizationId")
638602 DO UPDATE SET
639- "allowAffiliation" = CASE
640- WHEN (
641- SELECT i."setAllowAffiliation"
642- FROM input i
643- WHERE i."memberId" = EXCLUDED."memberId"
644- AND i."memberOrganizationId" = EXCLUDED."memberOrganizationId"
645- ) THEN EXCLUDED."allowAffiliation"
646- ELSE "memberOrganizationAffiliationOverrides"."allowAffiliation"
647- END,
648- "isPrimaryWorkExperience" = CASE
649- WHEN (
650- SELECT i."setIsPrimaryWorkExperience"
651- FROM input i
652- WHERE i."memberId" = EXCLUDED."memberId"
653- AND i."memberOrganizationId" = EXCLUDED."memberOrganizationId"
654- ) THEN EXCLUDED."isPrimaryWorkExperience"
655- ELSE "memberOrganizationAffiliationOverrides"."isPrimaryWorkExperience"
656- END
603+ "allowAffiliation" = COALESCE(EXCLUDED."allowAffiliation", "memberOrganizationAffiliationOverrides"."allowAffiliation"),
604+ "isPrimaryWorkExperience" = COALESCE(EXCLUDED."isPrimaryWorkExperience", "memberOrganizationAffiliationOverrides"."isPrimaryWorkExperience")
657605 ${ returnRows ? 'RETURNING *' : '' }
658606 `
659607
0 commit comments