Files
Immich/mobile/lib/data/db/logger/table/log.dart
T
Santo ShakilandGitHub 909b8aac93 fix(mobile): clamp out of range datetimes so timeline queries cannot crash (#30490)
* fix(mobile): clamp out of range datetimes so timeline queries cannot crash

* replace the per column converters with a clamping custom type

* heal each table in one statement, rename the clamp type, read dates as stored

* one medium test for the clamp, drop the dart side bounds, private clamp type
2026-09-18 17:41:15 +00:00

38 lines
1.1 KiB
Dart

import 'package:drift/drift.dart';
import 'package:immich_mobile/data/db/logger/table/log.drift.dart';
import 'package:immich_mobile/data/db/util/datetime_clamp_type.dart';
import 'package:immich_mobile/data/db/util/defaults_mixin.dart';
import 'package:immich_mobile/domain/models/log.model.dart' as domain;
class LogMessageEntity extends Table with DriftDefaultsMixin {
const LogMessageEntity();
@override
String get tableName => 'logger_messages';
@override
bool get isStrict => false;
@override
bool get withoutRowId => false;
IntColumn get id => integer().autoIncrement()();
TextColumn get message => text()();
TextColumn get details => text().nullable()();
IntColumn get level => intEnum<domain.LogLevel>()();
DateTimeColumn get createdAt => customType(clampedDateTime)();
TextColumn get logger => text().nullable()();
TextColumn get stack => text().nullable()();
}
extension LogMessageEntityDataDomainEx on LogMessageEntityData {
domain.LogMessage toDto() => domain.LogMessage(
message: message,
level: level,
createdAt: createdAt,
logger: logger,
error: details,
stack: stack,
);
}