Files
BudgetApp/lib/utils/category_utils.dart
T
2025-08-20 18:28:10 +03:00

93 lines
3.6 KiB
Dart

import 'package:flutter/material.dart';
import '../models/category.dart';
/// Утилиты для работы с категориями
class CategoryUtils {
/// Возвращает список предопределенных категорий для конкретного пользователя
/// Включает как категории доходов, так и расходов
/// [userId] - идентификатор пользователя, для которого создаются категории
static List<Category> getDefaultCategories() {
return [
// Категории доходов
Category(
id: 'income_salary',
name: 'Зарплата',
color: Colors.green,
iconCode: Icons.attach_money.codePoint, // Используем код иконки вместо IconData
isIncome: true,
),
Category(
id: 'income_gift',
name: 'Подарки',
color: Colors.blue,
iconCode: Icons.card_giftcard.codePoint, // Используем код иконки вместо IconData
isIncome: true,
),
Category(
id: 'income_freelance',
name: 'Фриланс',
color: Colors.teal,
iconCode: Icons.computer.codePoint, // Используем код иконки вместо IconData
isIncome: true,
),
// Категории расходов
Category(
id: 'expense_food',
name: 'Еда',
color: Colors.red,
iconCode: Icons.fastfood.codePoint, // Используем код иконки вместо IconData
isIncome: false,
),
Category(
id: 'expense_transport',
name: 'Транспорт',
color: Colors.orange,
iconCode: Icons.directions_car.codePoint, // Используем код иконки вместо IconData
isIncome: false,
),
Category(
id: 'expense_entertainment',
name: 'Развлечения',
color: Colors.purple,
iconCode: Icons.movie.codePoint, // Используем код иконки вместо IconData
isIncome: false,
),
Category(
id: 'expense_utilities',
name: 'Коммунальные',
color: Colors.blueGrey,
iconCode: Icons.home.codePoint, // Используем код иконки вместо IconData
isIncome: false,
),
Category(
id: 'expense_shopping',
name: 'Покупки',
color: Colors.pink,
iconCode: Icons.shopping_bag.codePoint, // Используем код иконки вместо IconData
isIncome: false,
),
Category(
id: 'ai_category',
name: 'AI Транзакция',
color: Colors.black,
iconCode: Icons.smart_toy.codePoint, // Используем код иконки вместо IconData
isIncome: false,
),
];
}
/// Возвращает только категории доходов для конкретного пользователя
/// [userId] - идентификатор пользователя
static List<Category> getIncomeCategories(String userId) {
return getDefaultCategories().where((c) => c.isIncome).toList();
}
/// Возвращает только категории расходов для конкретного пользователя
/// [userId] - идентификатор пользователя
static List<Category> getExpenseCategories(String userId) {
return getDefaultCategories().where((c) => !c.isIncome).toList();
}
}