import 'package:drift/drift.dart'; import '../postgres_constants.dart'; import 'users.dart'; /// Таблица UserAchievements - достижения пользователей class UserAchievements extends Table { TextColumn get id => text().withDefault(const Constant('gen_random_uuid()'))(); TextColumn get userId => text().references(Users, #id, onDelete: KeyAction.cascade)(); // Achievement ID (from AchievementDefinitions) TextColumn get achievementId => text()(); // When achievement was unlocked DateTimeColumn get unlockedAt => dateTime().withDefault(currentTimestamp)(); // Progress (0.0 to 1.0) RealColumn get progress => real().withDefault(const Constant(1.0))(); // Audit DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)(); DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)(); @override Set get primaryKey => {id}; @override List get customConstraints => [ 'UNIQUE(user_id, achievement_id)', ]; } // Конвертеры импортированы из converters.dart