feat(recurring): düzenli işlem kuralları, planlı kayıt üretimi, onay/atla/ertele ve seri düzenleme

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 10:55:05 +03:00
parent eaafe5dd9b
commit 04a17d2775
13 changed files with 1493 additions and 7 deletions
+17
View File
@@ -0,0 +1,17 @@
import { RecurringRuleModel } from "@/models/recurring-rule";
import { TransactionModel } from "@/models/transaction";
import type { Migration } from "./types";
export const migration: Migration = {
name: "005-recurring",
description: "recurringRules index'leri; işlemlerde tekrar alanları ve benzersiz tekrar index'i",
async up(db) {
const tx = db.collection("transactions");
await tx.updateMany(
{ occurrenceIndex: { $exists: false } },
{ $set: { occurrenceIndex: null, detached: false, isEstimate: false } },
);
await RecurringRuleModel.createIndexes();
await TransactionModel.createIndexes();
},
};
+2 -1
View File
@@ -4,10 +4,11 @@ import { migration as m001 } from "./001-initial-indexes";
import { migration as m002 } from "./002-accounts-categories";
import { migration as m003 } from "./003-transactions";
import { migration as m004 } from "./004-attachments-reconciliation";
import { migration as m005 } from "./005-recurring";
import type { Migration } from "./types";
/** Sıralı migration listesi. Yeni migration: dosyayı ekle ve buraya sırayla ekle. */
export const MIGRATIONS: Migration[] = [m001, m002, m003, m004];
export const MIGRATIONS: Migration[] = [m001, m002, m003, m004, m005];
const COLLECTION = "migrations";