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 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)(); }