feat(proj): init
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
import 'package:please_pay_me/data/models/auth_user.dart';
|
||||
import 'package:please_pay_me/data/models/budget.dart';
|
||||
import 'package:please_pay_me/data/models/expense.dart';
|
||||
import 'package:please_pay_me/data/models/job.dart';
|
||||
|
||||
/// Contracts the UI depends on. Implemented by the REST backend and by the
|
||||
/// in-memory demo backend used for previews and tests.
|
||||
abstract interface class BudgetRepository {
|
||||
Future<List<BudgetStatus>> list();
|
||||
|
||||
Future<BudgetStatus> status({int? budgetId});
|
||||
|
||||
Future<BudgetStatus> create({
|
||||
required String name,
|
||||
required double totalAmount,
|
||||
required DateTime endDate,
|
||||
DateTime? startDate,
|
||||
});
|
||||
|
||||
Future<BudgetStatus> update({
|
||||
required int budgetId,
|
||||
String? name,
|
||||
double? totalAmount,
|
||||
DateTime? endDate,
|
||||
DateTime? startDate,
|
||||
bool resetExpenses = false,
|
||||
});
|
||||
|
||||
Future<BudgetStatus> select(int budgetId);
|
||||
|
||||
Future<BudgetStatus> setActive(int budgetId, {required bool isActive});
|
||||
|
||||
Future<void> delete(int budgetId);
|
||||
}
|
||||
|
||||
abstract interface class ExpenseRepository {
|
||||
Future<ExpensesPage> page({
|
||||
required int page,
|
||||
int pageSize = 20,
|
||||
int? budgetId,
|
||||
bool all = false,
|
||||
});
|
||||
|
||||
Future<BudgetStatus> create({
|
||||
required double amount,
|
||||
String? note,
|
||||
DateTime? spentAt,
|
||||
int? budgetId,
|
||||
});
|
||||
|
||||
Future<double> undoLast({int? budgetId});
|
||||
}
|
||||
|
||||
abstract interface class JobRepository {
|
||||
Future<List<Job>> list();
|
||||
|
||||
Future<Job> create({
|
||||
required String name,
|
||||
required double salaryAmount,
|
||||
required List<int> payDays,
|
||||
required double firstPayPercent,
|
||||
required WeekendPolicy weekendPolicy,
|
||||
});
|
||||
|
||||
Future<Job> update({
|
||||
required int jobId,
|
||||
required String name,
|
||||
required double salaryAmount,
|
||||
required List<int> payDays,
|
||||
required double firstPayPercent,
|
||||
required WeekendPolicy weekendPolicy,
|
||||
bool isActive = true,
|
||||
});
|
||||
|
||||
Future<void> delete(int jobId);
|
||||
}
|
||||
|
||||
abstract interface class UserRepository {
|
||||
Future<AuthUser> me();
|
||||
}
|
||||
Reference in New Issue
Block a user