@@ -37,6 +37,9 @@ export const matchOcpfMembers = functions.https.onRequest(async (req, res) => {
3737 const filers = await downloadAndParseFilers ( )
3838 const members = await loadMembers ( )
3939
40+ const existingMappingDoc = await db . doc ( "/config/ocpfMemberMapping" ) . get ( )
41+ const existingMapping = ( existingMappingDoc . data ( ) ?? { } ) as OcpfMemberMapping
42+
4043 const mapping : OcpfMemberMapping = { }
4144 const unmatched : OcpfMemberMappingFlagsEntry [ ] = [ ]
4245 const ambiguous : OcpfMemberMappingFlagsEntry [ ] = [ ]
@@ -79,6 +82,7 @@ export const matchOcpfMembers = functions.https.onRequest(async (req, res) => {
7982 }
8083 mapping [ member . MemberCode ] = entry
8184 } else if ( candidates . length === 0 ) {
85+ if ( member . MemberCode in existingMapping ) continue
8286 unmatched . push ( { memberCode : member . MemberCode , name : member . Name } )
8387 functions . logger . warn ( "No OCPF match" , {
8488 memberCode : member . MemberCode ,
@@ -87,6 +91,7 @@ export const matchOcpfMembers = functions.https.onRequest(async (req, res) => {
8791 branch
8892 } )
8993 } else {
94+ if ( member . MemberCode in existingMapping ) continue
9095 ambiguous . push ( { memberCode : member . MemberCode , name : member . Name } )
9196 functions . logger . warn ( "Ambiguous OCPF match" , {
9297 memberCode : member . MemberCode ,
@@ -105,7 +110,7 @@ export const matchOcpfMembers = functions.https.onRequest(async (req, res) => {
105110
106111 const flags : OcpfMemberMappingFlags = { unmatched, ambiguous }
107112
108- await db . doc ( "/config/ocpfMemberMapping" ) . set ( mapping )
113+ await db . doc ( "/config/ocpfMemberMapping" ) . set ( mapping , { merge : true } )
109114 await db . doc ( "/config/ocpfMemberMappingFlags" ) . set ( flags )
110115
111116 functions . logger . info ( "matchOcpfMembers complete" , {
0 commit comments