82 lines
2.3 KiB
Dart
82 lines
2.3 KiB
Dart
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();
|
|
}
|
|
}
|