time
Some checks are pending
Backend CI / test (push) Waiting to run
Backend CI / build (push) Blocked by required conditions
Deploy Mnemo Cards / Deploy Backend (push) Waiting to run
Deploy Mnemo Cards / Deploy Web App (push) Blocked by required conditions
Deploy Mnemo Cards / Final Verification (push) Blocked by required conditions

This commit is contained in:
Dmitry 2025-12-14 00:40:59 +03:00
parent 4afbae7c29
commit fb7780c215
16 changed files with 125 additions and 106 deletions

View file

@ -32,6 +32,7 @@ import 'daos/promo_code_dao.dart';
import 'daos/discount_dao.dart';
import 'daos/statistics_dao.dart';
import 'daos/achievement_dao.dart';
import 'postgres_constants.dart';
// Сгенерированный код будет здесь
part 'database.g.dart';

View file

@ -92,7 +92,7 @@ class $UsersTable extends Users with TableInfo<$UsersTable, User> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -104,7 +104,7 @@ class $UsersTable extends Users with TableInfo<$UsersTable, User> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _isDeletedMeta = const VerificationMeta(
'isDeleted',
@ -723,7 +723,7 @@ class $UserDatasTable extends UserDatas
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _lastTestSessionTokenMeta =
const VerificationMeta('lastTestSessionToken');
@ -809,7 +809,7 @@ class $UserDatasTable extends UserDatas
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -821,7 +821,7 @@ class $UserDatasTable extends UserDatas
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -1720,7 +1720,7 @@ class $TokensTable extends Tokens with TableInfo<$TokensTable, Token> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _expiresMeta = const VerificationMeta(
'expires',
@ -2135,7 +2135,7 @@ class $RefreshTokensTable extends RefreshTokens
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _expiresAtMeta = const VerificationMeta(
'expiresAt',
@ -2586,7 +2586,7 @@ class $TelegramAuthCodesTable extends TelegramAuthCodes
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _expiresAtMeta = const VerificationMeta(
'expiresAt',
@ -3285,7 +3285,7 @@ class $CardPacksTable extends CardPacks
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -3297,7 +3297,7 @@ class $CardPacksTable extends CardPacks
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _isDeletedMeta = const VerificationMeta(
'isDeleted',
@ -4267,7 +4267,7 @@ class $GameCardsTable extends GameCards
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -4279,7 +4279,7 @@ class $GameCardsTable extends GameCards
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _isDeletedMeta = const VerificationMeta(
'isDeleted',
@ -4973,7 +4973,7 @@ class $VoiceModelsTable extends VoiceModels
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -5312,7 +5312,7 @@ class $UserPacksTable extends UserPacks
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _grantTypeMeta = const VerificationMeta(
'grantType',
@ -6431,7 +6431,7 @@ class $SubscriptionPlansTable extends SubscriptionPlans
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -6443,7 +6443,7 @@ class $SubscriptionPlansTable extends SubscriptionPlans
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _isDeletedMeta = const VerificationMeta(
'isDeleted',
@ -7062,7 +7062,7 @@ class $UserSubscriptionsTable extends UserSubscriptions
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -7074,7 +7074,7 @@ class $UserSubscriptionsTable extends UserSubscriptions
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -7541,7 +7541,7 @@ class $PaymentsTable extends Payments with TableInfo<$PaymentsTable, Payment> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
late final GeneratedColumnWithTypeConverter<List<dynamic>, String> products =
@ -7588,7 +7588,7 @@ class $PaymentsTable extends Payments with TableInfo<$PaymentsTable, Payment> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -7600,7 +7600,7 @@ class $PaymentsTable extends Payments with TableInfo<$PaymentsTable, Payment> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -8332,7 +8332,7 @@ class $TestsTable extends Tests with TableInfo<$TestsTable, Test> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -8344,7 +8344,7 @@ class $TestsTable extends Tests with TableInfo<$TestsTable, Test> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _isDeletedMeta = const VerificationMeta(
'isDeleted',
@ -8909,7 +8909,7 @@ class $TestQuestionsTable extends TestQuestions
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -8921,7 +8921,7 @@ class $TestQuestionsTable extends TestQuestions
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -9540,7 +9540,7 @@ class $TestStatisticsTable extends TestStatistics
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _createdAtMeta = const VerificationMeta(
'createdAt',
@ -9552,7 +9552,7 @@ class $TestStatisticsTable extends TestStatistics
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -9564,7 +9564,7 @@ class $TestStatisticsTable extends TestStatistics
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -10056,7 +10056,7 @@ class $TasksTable extends Tasks with TableInfo<$TasksTable, Task> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -10068,7 +10068,7 @@ class $TasksTable extends Tasks with TableInfo<$TasksTable, Task> {
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -10712,7 +10712,7 @@ class $UserTasksTable extends UserTasks
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _expiresAtMeta = const VerificationMeta(
'expiresAt',
@ -10789,7 +10789,7 @@ class $UserTasksTable extends UserTasks
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -11545,7 +11545,7 @@ class $UserTaskProgressesTable extends UserTaskProgresses
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -11557,7 +11557,7 @@ class $UserTaskProgressesTable extends UserTaskProgresses
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -11956,7 +11956,7 @@ class $UserTaskResultsTable extends UserTaskResults
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _createdAtMeta = const VerificationMeta(
'createdAt',
@ -11968,7 +11968,7 @@ class $UserTaskResultsTable extends UserTaskResults
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -12436,7 +12436,7 @@ class $PromoCodesCampaignsTable extends PromoCodesCampaigns
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -12448,7 +12448,7 @@ class $PromoCodesCampaignsTable extends PromoCodesCampaigns
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _isDeletedMeta = const VerificationMeta(
'isDeleted',
@ -13189,7 +13189,7 @@ class $PromoCodesTable extends PromoCodes
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -13201,7 +13201,7 @@ class $PromoCodesTable extends PromoCodes
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -13654,7 +13654,7 @@ class $DiscountCampaignsTable extends DiscountCampaigns
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -13666,7 +13666,7 @@ class $DiscountCampaignsTable extends DiscountCampaigns
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _isDeletedMeta = const VerificationMeta(
'isDeleted',
@ -14191,7 +14191,7 @@ class $DiscountsTable extends Discounts
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -14203,7 +14203,7 @@ class $DiscountsTable extends Discounts
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _isDeletedMeta = const VerificationMeta(
'isDeleted',
@ -14642,7 +14642,7 @@ class $DiscountUserDatasTable extends DiscountUserDatas
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [discountId, userId, grantedAt];
@ -15000,7 +15000,7 @@ class $StudySessionsTable extends StudySessions
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -15012,7 +15012,7 @@ class $StudySessionsTable extends StudySessions
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -15627,7 +15627,7 @@ class $UserAchievementsTable extends UserAchievements
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _progressMeta = const VerificationMeta(
'progress',
@ -15651,7 +15651,7 @@ class $UserAchievementsTable extends UserAchievements
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -15663,7 +15663,7 @@ class $UserAchievementsTable extends UserAchievements
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [
@ -16099,7 +16099,7 @@ class $ShareRequestsTable extends ShareRequests
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _createdAtMeta = const VerificationMeta(
'createdAt',
@ -16111,7 +16111,7 @@ class $ShareRequestsTable extends ShareRequests
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
static const VerificationMeta _updatedAtMeta = const VerificationMeta(
'updatedAt',
@ -16123,7 +16123,7 @@ class $ShareRequestsTable extends ShareRequests
false,
type: DriftSqlType.dateTime,
requiredDuringInsert: false,
defaultValue: currentDateAndTime,
defaultValue: currentTimestamp,
);
@override
List<GeneratedColumn> get $columns => [

View file

@ -0,0 +1,5 @@
import 'package:drift/drift.dart';
/// PostgreSQL-совместимое выражение для текущей даты и времени
/// Используется вместо currentDateAndTime, который использует SQLite-специфичную функцию strftime
const Expression<DateTime> currentTimestamp = CustomExpression<DateTime>('NOW()');

View file

@ -1,4 +1,5 @@
import 'package:drift/drift.dart';
import '../postgres_constants.dart';
import 'users.dart';
/// Таблица UserAchievements - достижения пользователей
@ -11,14 +12,14 @@ class UserAchievements extends Table {
TextColumn get achievementId => text()();
// When achievement was unlocked
DateTimeColumn get unlockedAt => dateTime().withDefault(currentDateAndTime)();
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(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};

View file

@ -1,6 +1,7 @@
import 'package:drift/drift.dart';
import 'users.dart';
import '../converters.dart' show generateUuid;
import '../postgres_constants.dart';
/// Таблица Tokens - токены авторизации пользователей
class Tokens extends Table {
@ -10,7 +11,7 @@ class Tokens extends Table {
TextColumn get token => text().unique()();
TextColumn get externalUserId => text()();
DateTimeColumn get created => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get created => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get expires => dateTime()();
@override
@ -31,7 +32,7 @@ class RefreshTokens extends Table {
BoolColumn get isBlacklisted => boolean().withDefault(const Constant(false))();
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get expiresAt => dateTime()();
@override
@ -51,7 +52,7 @@ class TelegramAuthCodes extends Table {
BoolColumn get isUsed => boolean().withDefault(const Constant(false))();
DateTimeColumn get usedAt => dateTime().nullable()();
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get expiresAt => dateTime()();
@override

View file

@ -1,5 +1,6 @@
import 'package:drift/drift.dart';
import '../converters.dart' show generateUuid, StringListConverter, JsonListConverter;
import '../postgres_constants.dart';
import 'users.dart';
/// Таблица DiscountCampaigns - кампании скидок
@ -20,8 +21,8 @@ class DiscountCampaigns extends Table {
.map(const StringListConverter())();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
BoolColumn get isDeleted => boolean().withDefault(const Constant(false))();
@override
@ -42,8 +43,8 @@ class Discounts extends Table {
.map(const JsonListConverter())();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
BoolColumn get isDeleted => boolean().withDefault(const Constant(false))();
@override
@ -55,7 +56,7 @@ class DiscountUserDatas extends Table {
TextColumn get discountId => text().references(Discounts, #id, onDelete: KeyAction.cascade)();
TextColumn get userId => text().references(Users, #id, onDelete: KeyAction.cascade)();
DateTimeColumn get grantedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get grantedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {discountId, userId};

View file

@ -1,5 +1,6 @@
import 'package:drift/drift.dart';
import '../converters.dart' show generateUuid, IntListConverter, StringListConverter;
import '../postgres_constants.dart';
/// Таблица CardPacks - наборы карточек
class CardPacks extends Table {
@ -35,8 +36,8 @@ class CardPacks extends Table {
TextColumn get currency => text().withDefault(const Constant('RUB'))();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
BoolColumn get isDeleted => boolean().withDefault(const Constant(false))();
@override
@ -65,8 +66,8 @@ class GameCards extends Table {
TextColumn get back => text().nullable()(); // дополнительный текст
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
BoolColumn get isDeleted => boolean().withDefault(const Constant(false))();
@override
@ -81,7 +82,7 @@ class VoiceModels extends Table {
TextColumn get voiceUrl => text()(); // URL аудиофайла
TextColumn get language => text()(); // язык озвучки
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};

View file

@ -1,5 +1,6 @@
import 'package:drift/drift.dart';
import '../converters.dart' show generateUuid, JsonListConverter, StringListConverter;
import '../postgres_constants.dart';
import 'users.dart';
/// Таблица Payments - платежи
@ -17,7 +18,7 @@ class Payments extends Table {
TextColumn get externalToken => text().nullable()();
TextColumn get meta => text().nullable()();
DateTimeColumn get date => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get date => dateTime().withDefault(currentTimestamp)();
// Продукты (JSON array)
TextColumn get products => text()
@ -31,8 +32,8 @@ class Payments extends Table {
BoolColumn get subscription => boolean().withDefault(const Constant(false))();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};

View file

@ -1,5 +1,6 @@
import 'package:drift/drift.dart';
import '../converters.dart' show generateUuid, JsonListConverter, StringListConverter;
import '../postgres_constants.dart';
import 'users.dart';
/// Таблица PromoCodesCampaigns - кампании промокодов
@ -30,8 +31,8 @@ class PromoCodesCampaigns extends Table {
.map(const StringListConverter())();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
BoolColumn get isDeleted => boolean().withDefault(const Constant(false))();
@override
@ -50,8 +51,8 @@ class PromoCodes extends Table {
TextColumn get userId => text().nullable().references(Users, #id, onDelete: KeyAction.cascade)();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};

View file

@ -1,4 +1,5 @@
import 'package:drift/drift.dart';
import '../postgres_constants.dart';
import 'users.dart';
import 'packs.dart' show CardPacks, GameCards, VoiceModels;
@ -9,7 +10,7 @@ class UserPacks extends Table {
TextColumn get packId => text().references(CardPacks, #id, onDelete: KeyAction.cascade)();
// Когда пользователь получил доступ к паку
DateTimeColumn get grantedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get grantedAt => dateTime().withDefault(currentTimestamp)();
// Как пользователь получил пак (purchase, promo, free, admin)
TextColumn get grantType => text().withDefault(const Constant('purchase'))();

View file

@ -1,6 +1,7 @@
import 'package:drift/drift.dart';
import 'users.dart';
import '../converters.dart' show generateUuid;
import '../postgres_constants.dart';
/// Таблица StudySessions - сессии изучения
class StudySessions extends Table {
@ -20,8 +21,8 @@ class StudySessions extends Table {
TextColumn get testId => text().nullable()();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};

View file

@ -1,6 +1,7 @@
import 'package:drift/drift.dart';
import '../converters.dart' show JsonMapConverter, JsonListConverter;
import '../postgres_constants.dart';
import 'users.dart';
/// Таблица SubscriptionPlans - планы подписки
@ -25,8 +26,8 @@ class SubscriptionPlans extends Table {
TextColumn get paymentSystem => text()(); // enum as string
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
BoolColumn get isDeleted => boolean().withDefault(const Constant(false))();
@override
@ -47,8 +48,8 @@ class UserSubscriptions extends Table {
.map(const JsonListConverter())();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};

View file

@ -1,5 +1,6 @@
import 'package:drift/drift.dart';
import '../converters.dart' show generateUuid, JsonListConverter, JsonMapConverter, StringListConverter;
import '../postgres_constants.dart';
import 'users.dart';
/// Таблица Tasks - задачи системы
@ -17,8 +18,8 @@ class Tasks extends Table {
DateTimeColumn get lastExecution => dateTime().nullable()();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};
@ -39,7 +40,7 @@ class UserTasks extends Table {
.withDefault(const Constant('[]'))
.map(const JsonListConverter())();
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get expiresAt => dateTime()();
DateTimeColumn get completedAt => dateTime().nullable()();
@ -54,7 +55,7 @@ class UserTasks extends Table {
TextColumn get imageUrl => text().nullable()();
// Audit
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};
@ -71,8 +72,8 @@ class UserTaskProgresses extends Table {
.withDefault(const Constant('{}'))
.map(const JsonMapConverter())();
DateTimeColumn get startedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get startedAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};
@ -89,10 +90,10 @@ class UserTaskResults extends Table {
.withDefault(const Constant('{}'))
.map(const JsonMapConverter())();
DateTimeColumn get completedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get completedAt => dateTime().withDefault(currentTimestamp)();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};

View file

@ -1,5 +1,6 @@
import 'package:drift/drift.dart';
import '../converters.dart' show generateUuid;
import '../postgres_constants.dart';
/// Таблица ShareRequests - запросы на шаринг через Telegram
class ShareRequests extends Table {
@ -10,11 +11,11 @@ class ShareRequests extends Table {
TextColumn get sharedCardId => text().nullable()();
DateTimeColumn get requestedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get requestedAt => dateTime().withDefault(currentTimestamp)();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};

View file

@ -1,5 +1,6 @@
import 'package:drift/drift.dart';
import '../converters.dart' show generateUuid, JsonMapConverter;
import '../postgres_constants.dart';
import 'packs.dart';
/// Таблица Tests - тесты
@ -14,8 +15,8 @@ class Tests extends Table {
TextColumn get timeSubtitle => text().nullable()();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
BoolColumn get isDeleted => boolean().withDefault(const Constant(false))();
@override
@ -32,8 +33,8 @@ class TestQuestions extends Table {
TextColumn get body => text()();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};
@ -59,11 +60,11 @@ class TestStatistics extends Table {
.withDefault(const Constant('{}'))
.map(const JsonMapConverter())();
DateTimeColumn get completedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get completedAt => dateTime().withDefault(currentTimestamp)();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};

View file

@ -1,5 +1,6 @@
import 'package:drift/drift.dart';
import '../converters.dart';
import '../postgres_constants.dart';
/// Таблица Users - основная информация о пользователях
class Users extends Table {
@ -18,8 +19,8 @@ class Users extends Table {
.map(const StringListConverter())();
// Audit fields
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
BoolColumn get isDeleted => boolean().withDefault(const Constant(false))();
@override
@ -45,7 +46,7 @@ class UserDatas extends Table {
// Временные метки
DateTimeColumn get lastTimeOnline => dateTime().nullable()();
DateTimeColumn get registrationDate => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get registrationDate => dateTime().withDefault(currentTimestamp)();
TextColumn get lastTestSessionToken => text().nullable()();
// Сложные структуры (JSON)
@ -74,8 +75,8 @@ class UserDatas extends Table {
.map(const JsonMapConverter())();
// Audit
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)();
DateTimeColumn get createdAt => dateTime().withDefault(currentTimestamp)();
DateTimeColumn get updatedAt => dateTime().withDefault(currentTimestamp)();
@override
Set<Column> get primaryKey => {id};