feat: добавить утилиту для работы с категориями

This commit is contained in:
2025-06-09 15:38:48 +03:00
parent cdc2086fd8
commit a4f4f77fc6
+81
View File
@@ -0,0 +1,81 @@
import 'package:flutter/material.dart';
import '../models/category.dart';
/// Утилиты для работы с категориями
class CategoryUtils {
/// Возвращает список предопределенных категорий
/// Включает как категории доходов, так и расходов
static List<Category> getDefaultCategories() {
return [
// Категории доходов
Category(
id: 'income_salary',
name: 'Зарплата',
color: Colors.green,
icon: Icons.attach_money,
isIncome: true,
),
Category(
id: 'income_gift',
name: 'Подарки',
color: Colors.blue,
icon: Icons.card_giftcard,
isIncome: true,
),
Category(
id: 'income_freelance',
name: 'Фриланс',
color: Colors.teal,
icon: Icons.computer,
isIncome: true,
),
// Категории расходов
Category(
id: 'expense_food',
name: 'Еда',
color: Colors.red,
icon: Icons.fastfood,
isIncome: false,
),
Category(
id: 'expense_transport',
name: 'Транспорт',
color: Colors.orange,
icon: Icons.directions_car,
isIncome: false,
),
Category(
id: 'expense_entertainment',
name: 'Развлечения',
color: Colors.purple,
icon: Icons.movie,
isIncome: false,
),
Category(
id: 'expense_utilities',
name: 'Коммунальные',
color: Colors.blueGrey,
icon: Icons.home,
isIncome: false,
),
Category(
id: 'expense_shopping',
name: 'Покупки',
color: Colors.pink,
icon: Icons.shopping_bag,
isIncome: false,
),
];
}
/// Возвращает только категории доходов
static List<Category> getIncomeCategories() {
return getDefaultCategories().where((c) => c.isIncome).toList();
}
/// Возвращает только категории расходов
static List<Category> getExpenseCategories() {
return getDefaultCategories().where((c) => !c.isIncome).toList();
}
}