Line data Source code
1 : import 'package:drift/drift.dart';
2 :
3 : /// Sessions table — one row per app session.
4 : class Sessions extends Table {
5 : /// Auto-incrementing primary key.
6 0 : IntColumn get id => integer().autoIncrement()();
7 :
8 : /// Session start timestamp (text via CURRENT_TIMESTAMP).
9 0 : DateTimeColumn get timestamp => dateTime().withDefault(currentDateAndTime)();
10 : }
11 :
12 : /// Records table — one row per log entry.
13 : class Records extends Table {
14 : /// Auto-incrementing primary key.
15 0 : IntColumn get id => integer().autoIncrement()();
16 :
17 : /// Record creation timestamp (text via CURRENT_TIMESTAMP).
18 0 : DateTimeColumn get recordTimestamp =>
19 0 : dateTime().withDefault(currentDateAndTime)();
20 :
21 : /// Foreign key to sessions (no .references — see tech spec).
22 0 : IntColumn get sessionId => integer().nullable()();
23 :
24 : /// Log level value.
25 0 : IntColumn get level => integer().nullable()();
26 :
27 : /// Log message.
28 0 : TextColumn get message => text().nullable()();
29 :
30 : /// Logger name.
31 0 : TextColumn get loggerName => text().nullable()();
32 :
33 : /// Error string.
34 0 : TextColumn get error => text().nullable()();
35 :
36 : /// Stack trace string.
37 0 : TextColumn get stackTrace => text().nullable()();
38 :
39 : /// Microseconds since epoch (raw integer, NOT DateTimeColumn).
40 0 : IntColumn get time => integer().nullable()();
41 : }
|