import 'dart:convert'; import 'package:fikoyt_ui/fikoyt_ui.dart'; import 'package:isar/isar.dart'; part 'finans.model.g.dart'; part 'sabitler.dart'; part 'kullanici.model.dart'; part 'hesap.model.dart'; part 'paraBirimi.model.dart'; part 'hareket.model.dart'; part 'kategori.model.dart'; // Borç ve Alacak Yönetimi @Collection() class Borc { Id id = Isar.autoIncrement; late String creditor; // Alacaklı adı late double amountOwed; // Borç miktarı late DateTime dueDate; // Vade tarihi late DateTime createdAt; late String status; // "active", "paid", "overdue" final IsarLink account = IsarLink(); // Borçlu hesap } @Collection() class Alacak { Id id = Isar.autoIncrement; late String debtor; // Borçlu adı late double amountDue; // Alacak miktarı late DateTime dueDate; // Ödeme tarihi late DateTime createdAt; late String status; // "active", "paid", "overdue" final IsarLink account = IsarLink(); // Alacaklı hesap } // Finansal Hedefler @Collection() class FinansalHedefler { Id id = Isar.autoIncrement; late String ismi; // Hedef adı (Örneğin: Ev almak, tatil yapmak) late double hedefMiktar; // Hedef tutar late double mevcutMiktar; // Şu anki birikim late DateTime bitisTarihi; // Hedef tarih late DateTime baslangicTarihi; @enumerated FinancialGoalStatus durum = FinancialGoalStatus.aktif; // "active", "completed", "failed" final IsarLink hesap = IsarLink(); // Hedef için hesap bağlantısı } // Kripto Varlıklar (Bitcoin, Ethereum, vb.) @Collection() class CryptoAsset { Id id = Isar.autoIncrement; late String cryptoName; // Kripto para adı (BTC, ETH, vb.) late double quantity; // Miktar late double purchasePrice; // Alım fiyatı late double currentPrice; // Şu anki fiyat late DateTime purchasedAt; // Alım tarihi late DateTime updatedAt; // Güncellenme tarihi final IsarLink currency = IsarLink(); // Kripto varlık dövizi } // Yapay Zeka Önerileri (Yatırım, Vergi, Tasarruf vb.) @Collection() class YZTavsiye { Id id = Isar.autoIncrement; late String category; // "investment", "savings", "tax" late String advice; // Yapay zekadan alınan tavsiye late DateTime createdAt; // Tavsiye tarih } // Periyodik Giderler ve Gelirler (Gelir-gider planlaması) @Collection() class PeriyodikIslemler { Id id = Isar.autoIncrement; late String ismi; // Başlık (Örneğin: "Kira", "Maaş") late double miktar; // Miktar late String periyot; // "monthly", "weekly", "yearly" late DateTime ilkOdemeTarihi; // Bir sonraki ödeme tarihi late String tipi; // "income" veya "expense" final IsarLink hesap = IsarLink(); // Hesap bağlantısı } // Abonelikler (Tekrarlanan ödemeler, Netflix, Spotify vb.) @Collection() class Abonelikler { Id id = Isar.autoIncrement; late String ismi; // Abonelik adı (Örneğin: Netflix, Spotify) late double miktar; // Abonelik bedeli late String periyot; // "monthly", "yearly" late DateTime ilkOdemeTarihi; // Bir sonraki ödeme tarihi late String durum; // "active", "canceled", vb. final IsarLink hesap = IsarLink(); // Abonelik hesap bağlantısı } // Finansal Durum Raporu (Aylık/ Yıllık gelir-gider ve varlık yönetimi) // @Collection() // class FinancialStatement { // Id id = Isar.autoIncrement; // late DateTime reportDate; // Rapor tarihi // late double totalIncome; // Toplam gelir // late double totalExpense; // Toplam gider // late double netWorth; // Net değer // late String reportType; // "monthly", "annual" // final IsarLink account = IsarLink(); // Hesap bağlantısı // } // Yatırım Yönetimi (Borsa, Kripto, Altın vb.) @Collection() class Yatirim { Id id = Isar.autoIncrement; late String investmentType; // Yatırım türü (Hisse Senedi, Kripto, vb.) late double amount; // Yatırım miktarı late double returnRate; // Yatırım getirisi late double currentValue; // Yatırımın mevcut değeri late DateTime investmentDate; // Yatırım tarihi late DateTime updatedAt; // Son güncellenme tarihi final IsarLink currency = IsarLink(); // Yatırım yapılan döviz türü final IsarLink user = IsarLink(); // Yatırımcı kullanıcı } // Vergi Hesaplama ve Tahakkuk Yönetimi @Collection() class TaxCalculation { Id id = Isar.autoIncrement; late String taxType; // "income", "vat", "corporate" late double amount; // Vergi miktarı late double taxableAmount; // Vergiye tabi tutar late double taxRate; // Vergi oranı late double calculatedTax; // Hesaplanan vergi late DateTime taxDate; // Vergi hesaplama tarihi final IsarLink user = IsarLink(); // Vergi mükellefi kullanıcı final IsarLink account = IsarLink(); // Hesap bağlantısı } // Dinamik Fiyatlandırma ve İndirim Stratejileri @Collection() class PricingStrategy { Id id = Isar.autoIncrement; late String strategyName; // Strateji adı late double discountRate; // İndirim oranı late String condition; // Koşul (örn: "buy 2 get 1 free") late DateTime validFrom; // Başlangıç tarihi late DateTime validUntil; // Bitiş tarihi final IsarLink product = IsarLink(); // İlgili ürün } // Fatura Yönetimi (Bireysel ve iş faturaları) @Collection() class Fatura { Id id = Isar.autoIncrement; late String invoiceNumber; // Fatura numarası late DateTime invoiceDate; // Fatura tarihi late double totalAmount; // Fatura tutarı final IsarLink seller = IsarLink(); // Satıcı final IsarLink buyer = IsarLink(); // Alıcı final IsarLinks invoiceItems = IsarLinks(); // Fatura öğeleri final IsarLink currency = IsarLink(); // Döviz türü } // Fatura Öğeleri (Ürün detayları) @Collection() class InvoiceItem { Id id = Isar.autoIncrement; late double price; // Ürün fiyatı late int quantity; // Adet final IsarLink product = IsarLink(); // Ürün final IsarLink currency = IsarLink(); // Döviz türü } // Ürün Yönetimi (Ürünler, fiyatlar, kategoriler) @Collection() class Product { Id id = Isar.autoIncrement; late String productName; // Ürün adı late double price; // Fiyat late String category; // Kategori (örn: Elektronik, Giyim vb.) late DateTime createdAt; // Ürün oluşturulma tarihi final IsarLink currency = IsarLink(); // Ürün dövizi final IsarLinks invoiceItems = IsarLinks(); // Fatura öğeleri } @embedded class JSONBlob { String? data; JSONBlob({this.data}); JSONBlob.fromJson(Map data) : data = jsonEncode(data); @Ignore() Map? get json => jsonDecode(data ?? ""); }