54 lines
1.2 KiB
Swift
54 lines
1.2 KiB
Swift
import Foundation
|
|
|
|
struct FinanceTransaction: Codable, Identifiable {
|
|
let id: Int
|
|
var amount: Double
|
|
var categoryId: Int?
|
|
var description: String?
|
|
var type: String // "income" or "expense"
|
|
var date: String?
|
|
var createdAt: String?
|
|
|
|
enum CodingKeys: String, CodingKey {
|
|
case id, amount, description, type, date
|
|
case categoryId = "category_id"
|
|
case createdAt = "created_at"
|
|
}
|
|
}
|
|
|
|
struct FinanceCategory: Codable, Identifiable {
|
|
let id: Int
|
|
var name: String
|
|
var icon: String?
|
|
var color: String?
|
|
var type: String
|
|
}
|
|
|
|
struct FinanceSummary: Codable {
|
|
var totalIncome: Double?
|
|
var totalExpense: Double?
|
|
var balance: Double?
|
|
var carriedOver: Double?
|
|
var month: String?
|
|
|
|
enum CodingKeys: String, CodingKey {
|
|
case balance, month
|
|
case totalIncome = "total_income"
|
|
case totalExpense = "total_expense"
|
|
case carriedOver = "carried_over"
|
|
}
|
|
}
|
|
|
|
struct CreateTransactionRequest: Codable {
|
|
var amount: Double
|
|
var categoryId: Int?
|
|
var description: String?
|
|
var type: String
|
|
var date: String?
|
|
|
|
enum CodingKeys: String, CodingKey {
|
|
case amount, description, type, date
|
|
case categoryId = "category_id"
|
|
}
|
|
}
|