Files
Casha/lib/data/database/tables.dart
T
2026-03-29 15:59:49 +03:00

56 lines
2.2 KiB
Dart

import 'package:drift/drift.dart';
class Transactions extends Table {
TextColumn get id => text()();
RealColumn get amount => real()();
TextColumn get category => text()();
TextColumn get type => text()();
DateTimeColumn get date => dateTime()();
TextColumn get note => text().nullable()();
TextColumn get recurrence => text().withDefault(const Constant('none'))();
DateTimeColumn get lastOccurrence => dateTime().nullable()();
TextColumn get currency => text().withDefault(const Constant('\$'))();
TextColumn get currencyCode => text().withDefault(const Constant('USD'))();
IntColumn get accountId => integer().withDefault(const Constant(1))();
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
@override
Set<Column> get primaryKey => {id};
}
class Categories extends Table {
IntColumn get id => integer().autoIncrement()();
TextColumn get name => text().withLength(min: 1, max: 50)();
TextColumn get type => text()();
TextColumn get icon => text().nullable()();
TextColumn get color => text().nullable()();
BoolColumn get isDefault => boolean().withDefault(const Constant(false))();
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
}
class Budgets extends Table {
IntColumn get id => integer().autoIncrement()();
RealColumn get amount => real()();
TextColumn get categoryId => text().nullable()();
IntColumn get month => integer()();
IntColumn get year => integer()();
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
}
class ExchangeRates extends Table {
IntColumn get id => integer().autoIncrement()();
TextColumn get fromCurrency => text()();
TextColumn get toCurrency => text()();
RealColumn get rate => real()();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
}
class Accounts extends Table {
IntColumn get id => integer().autoIncrement()();
TextColumn get name => text()();
BoolColumn get isMain => boolean().withDefault(const Constant(false))();
IntColumn get sortOrder => integer().withDefault(const Constant(0))();
TextColumn get currency => text().withDefault(const Constant('USD'))();
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
}