···8585 upload_id: uploadId,
8686 user_did: userDid,
8787 source_account_id: link.sourceAccountId,
8888- date_on_source: link.sourceDate ? new Date(link.sourceDate) : null,
8888+ // Note: date_on_source is stored in source_accounts table, not user_source_follows
8989 }));
90909191 await this.db
···9595 oc.columns(['upload_id', 'source_account_id']).doNothing(),
9696 )
9797 .execute();
9898+ }
9999+100100+ /**
101101+ * Mark source accounts as matched
102102+ * NOTE: This is a no-op in the new schema. The old schema had match_found
103103+ * and match_found_at columns, but the new schema tracks matches via the
104104+ * atproto_matches table instead. Keeping this method for compatibility.
105105+ */
106106+ async markAsMatched(sourceAccountIds: number[]): Promise<void> {
107107+ // No-op: match status is tracked via atproto_matches table existence
108108+ if (sourceAccountIds.length === 0) return;
109109+110110+ // In the new schema, a source account is "matched" if it has rows in atproto_matches
111111+ // No need to update source_accounts table
112112+ return;
98113 }
99114}