Offline Support
This commit is contained in:
@@ -0,0 +1,319 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<Announcement> _$AnnouncementFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Announcement(
|
||||
id: data['id'] as String,
|
||||
authorId: data['author_id'] as String,
|
||||
title: data['title'] as String,
|
||||
body: data['body'] as String,
|
||||
visibleRoles: data['visible_roles'].toList().cast<String>(),
|
||||
isTemplate: data['is_template'] as bool,
|
||||
templateId: data['template_id'] == null
|
||||
? null
|
||||
: data['template_id'] as String?,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
updatedAt: DateTime.parse(data['updated_at'] as String),
|
||||
bannerEnabled: data['banner_enabled'] as bool,
|
||||
bannerShowAt: data['banner_show_at'] == null
|
||||
? null
|
||||
: data['banner_show_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['banner_show_at'] as String),
|
||||
bannerHideAt: data['banner_hide_at'] == null
|
||||
? null
|
||||
: data['banner_hide_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['banner_hide_at'] as String),
|
||||
pushIntervalMinutes: data['push_interval_minutes'] == null
|
||||
? null
|
||||
: data['push_interval_minutes'] as int?,
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$AnnouncementToSupabase(
|
||||
Announcement instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'author_id': instance.authorId,
|
||||
'title': instance.title,
|
||||
'body': instance.body,
|
||||
'visible_roles': instance.visibleRoles,
|
||||
'is_template': instance.isTemplate,
|
||||
'template_id': instance.templateId,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'updated_at': instance.updatedAt.toIso8601String(),
|
||||
'banner_enabled': instance.bannerEnabled,
|
||||
'banner_show_at': instance.bannerShowAt?.toIso8601String(),
|
||||
'banner_hide_at': instance.bannerHideAt?.toIso8601String(),
|
||||
'push_interval_minutes': instance.pushIntervalMinutes,
|
||||
};
|
||||
}
|
||||
|
||||
Future<Announcement> _$AnnouncementFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Announcement(
|
||||
id: data['id'] as String,
|
||||
authorId: data['author_id'] as String,
|
||||
title: data['title'] as String,
|
||||
body: data['body'] as String,
|
||||
visibleRoles: jsonDecode(data['visible_roles']).toList().cast<String>(),
|
||||
isTemplate: data['is_template'] == 1,
|
||||
templateId: data['template_id'] == null
|
||||
? null
|
||||
: data['template_id'] as String?,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
updatedAt: DateTime.parse(data['updated_at'] as String),
|
||||
bannerEnabled: data['banner_enabled'] == 1,
|
||||
bannerShowAt: data['banner_show_at'] == null
|
||||
? null
|
||||
: data['banner_show_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['banner_show_at'] as String),
|
||||
bannerHideAt: data['banner_hide_at'] == null
|
||||
? null
|
||||
: data['banner_hide_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['banner_hide_at'] as String),
|
||||
pushIntervalMinutes: data['push_interval_minutes'] == null
|
||||
? null
|
||||
: data['push_interval_minutes'] as int?,
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$AnnouncementToSqlite(
|
||||
Announcement instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'author_id': instance.authorId,
|
||||
'title': instance.title,
|
||||
'body': instance.body,
|
||||
'visible_roles': jsonEncode(instance.visibleRoles),
|
||||
'is_template': instance.isTemplate ? 1 : 0,
|
||||
'template_id': instance.templateId,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'updated_at': instance.updatedAt.toIso8601String(),
|
||||
'banner_enabled': instance.bannerEnabled ? 1 : 0,
|
||||
'banner_show_at': instance.bannerShowAt?.toIso8601String(),
|
||||
'banner_hide_at': instance.bannerHideAt?.toIso8601String(),
|
||||
'push_interval_minutes': instance.pushIntervalMinutes,
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [Announcement]
|
||||
class AnnouncementAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<Announcement> {
|
||||
AnnouncementAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'announcements';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'authorId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'author_id',
|
||||
),
|
||||
'title': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'title',
|
||||
),
|
||||
'body': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'body',
|
||||
),
|
||||
'visibleRoles': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'visible_roles',
|
||||
),
|
||||
'isTemplate': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'is_template',
|
||||
),
|
||||
'templateId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'template_id',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
'updatedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'updated_at',
|
||||
),
|
||||
'bannerEnabled': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'banner_enabled',
|
||||
),
|
||||
'bannerShowAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'banner_show_at',
|
||||
),
|
||||
'bannerHideAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'banner_hide_at',
|
||||
),
|
||||
'pushIntervalMinutes': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'push_interval_minutes',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'authorId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'author_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'title': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'title',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'body': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'body',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'visibleRoles': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'visible_roles',
|
||||
iterable: true,
|
||||
type: String,
|
||||
),
|
||||
'isTemplate': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'is_template',
|
||||
iterable: false,
|
||||
type: bool,
|
||||
),
|
||||
'templateId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'template_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'updatedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'updated_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'bannerEnabled': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'banner_enabled',
|
||||
iterable: false,
|
||||
type: bool,
|
||||
),
|
||||
'bannerShowAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'banner_show_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'bannerHideAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'banner_hide_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'pushIntervalMinutes': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'push_interval_minutes',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
Announcement instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'Announcement';
|
||||
|
||||
@override
|
||||
Future<Announcement> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AnnouncementFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
Announcement input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AnnouncementToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Announcement> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AnnouncementFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
Announcement input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AnnouncementToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<AnnouncementComment> _$AnnouncementCommentFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return AnnouncementComment(
|
||||
id: data['id'] as String,
|
||||
announcementId: data['announcement_id'] as String,
|
||||
authorId: data['author_id'] as String,
|
||||
body: data['body'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$AnnouncementCommentToSupabase(
|
||||
AnnouncementComment instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'announcement_id': instance.announcementId,
|
||||
'author_id': instance.authorId,
|
||||
'body': instance.body,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<AnnouncementComment> _$AnnouncementCommentFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return AnnouncementComment(
|
||||
id: data['id'] as String,
|
||||
announcementId: data['announcement_id'] as String,
|
||||
authorId: data['author_id'] as String,
|
||||
body: data['body'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$AnnouncementCommentToSqlite(
|
||||
AnnouncementComment instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'announcement_id': instance.announcementId,
|
||||
'author_id': instance.authorId,
|
||||
'body': instance.body,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [AnnouncementComment]
|
||||
class AnnouncementCommentAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<AnnouncementComment> {
|
||||
AnnouncementCommentAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'announcement_comments';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'announcementId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'announcement_id',
|
||||
),
|
||||
'authorId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'author_id',
|
||||
),
|
||||
'body': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'body',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'announcementId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'announcement_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'authorId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'author_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'body': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'body',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
AnnouncementComment instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'AnnouncementComment';
|
||||
|
||||
@override
|
||||
Future<AnnouncementComment> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AnnouncementCommentFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
AnnouncementComment input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AnnouncementCommentToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<AnnouncementComment> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AnnouncementCommentFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
AnnouncementComment input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AnnouncementCommentToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,357 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<AttendanceLog> _$AttendanceLogFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return AttendanceLog(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
dutyScheduleId: data['duty_schedule_id'] as String,
|
||||
shiftType: data['shift_type'] as String,
|
||||
checkInAt: DateTime.parse(data['check_in_at'] as String),
|
||||
checkInLat: data['check_in_lat'] as double,
|
||||
checkInLng: data['check_in_lng'] as double,
|
||||
checkOutAt: data['check_out_at'] == null
|
||||
? null
|
||||
: data['check_out_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['check_out_at'] as String),
|
||||
checkOutLat: data['check_out_lat'] == null
|
||||
? null
|
||||
: data['check_out_lat'] as double?,
|
||||
checkOutLng: data['check_out_lng'] == null
|
||||
? null
|
||||
: data['check_out_lng'] as double?,
|
||||
justification: data['justification'] == null
|
||||
? null
|
||||
: data['justification'] as String?,
|
||||
checkOutJustification: data['check_out_justification'] == null
|
||||
? null
|
||||
: data['check_out_justification'] as String?,
|
||||
verificationStatus: data['verification_status'] as String,
|
||||
checkInVerificationPhotoUrl: data['check_in_verification_photo_url'] == null
|
||||
? null
|
||||
: data['check_in_verification_photo_url'] as String?,
|
||||
checkOutVerificationPhotoUrl:
|
||||
data['check_out_verification_photo_url'] == null
|
||||
? null
|
||||
: data['check_out_verification_photo_url'] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$AttendanceLogToSupabase(
|
||||
AttendanceLog instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'duty_schedule_id': instance.dutyScheduleId,
|
||||
'shift_type': instance.shiftType,
|
||||
'check_in_at': instance.checkInAt.toIso8601String(),
|
||||
'check_in_lat': instance.checkInLat,
|
||||
'check_in_lng': instance.checkInLng,
|
||||
'check_out_at': instance.checkOutAt?.toIso8601String(),
|
||||
'check_out_lat': instance.checkOutLat,
|
||||
'check_out_lng': instance.checkOutLng,
|
||||
'justification': instance.justification,
|
||||
'check_out_justification': instance.checkOutJustification,
|
||||
'verification_status': instance.verificationStatus,
|
||||
'check_in_verification_photo_url': instance.checkInVerificationPhotoUrl,
|
||||
'check_out_verification_photo_url': instance.checkOutVerificationPhotoUrl,
|
||||
};
|
||||
}
|
||||
|
||||
Future<AttendanceLog> _$AttendanceLogFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return AttendanceLog(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
dutyScheduleId: data['duty_schedule_id'] as String,
|
||||
shiftType: data['shift_type'] as String,
|
||||
checkInAt: DateTime.parse(data['check_in_at'] as String),
|
||||
checkInLat: data['check_in_lat'] as double,
|
||||
checkInLng: data['check_in_lng'] as double,
|
||||
checkOutAt: data['check_out_at'] == null
|
||||
? null
|
||||
: data['check_out_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['check_out_at'] as String),
|
||||
checkOutLat: data['check_out_lat'] == null
|
||||
? null
|
||||
: data['check_out_lat'] as double?,
|
||||
checkOutLng: data['check_out_lng'] == null
|
||||
? null
|
||||
: data['check_out_lng'] as double?,
|
||||
justification: data['justification'] == null
|
||||
? null
|
||||
: data['justification'] as String?,
|
||||
checkOutJustification: data['check_out_justification'] == null
|
||||
? null
|
||||
: data['check_out_justification'] as String?,
|
||||
verificationStatus: data['verification_status'] as String,
|
||||
checkInVerificationPhotoUrl: data['check_in_verification_photo_url'] == null
|
||||
? null
|
||||
: data['check_in_verification_photo_url'] as String?,
|
||||
checkOutVerificationPhotoUrl:
|
||||
data['check_out_verification_photo_url'] == null
|
||||
? null
|
||||
: data['check_out_verification_photo_url'] as String?,
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$AttendanceLogToSqlite(
|
||||
AttendanceLog instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'duty_schedule_id': instance.dutyScheduleId,
|
||||
'shift_type': instance.shiftType,
|
||||
'check_in_at': instance.checkInAt.toIso8601String(),
|
||||
'check_in_lat': instance.checkInLat,
|
||||
'check_in_lng': instance.checkInLng,
|
||||
'check_out_at': instance.checkOutAt?.toIso8601String(),
|
||||
'check_out_lat': instance.checkOutLat,
|
||||
'check_out_lng': instance.checkOutLng,
|
||||
'justification': instance.justification,
|
||||
'check_out_justification': instance.checkOutJustification,
|
||||
'verification_status': instance.verificationStatus,
|
||||
'check_in_verification_photo_url': instance.checkInVerificationPhotoUrl,
|
||||
'check_out_verification_photo_url': instance.checkOutVerificationPhotoUrl,
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [AttendanceLog]
|
||||
class AttendanceLogAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<AttendanceLog> {
|
||||
AttendanceLogAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'attendance_logs';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'userId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
),
|
||||
'dutyScheduleId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'duty_schedule_id',
|
||||
),
|
||||
'shiftType': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'shift_type',
|
||||
),
|
||||
'checkInAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_at',
|
||||
),
|
||||
'checkInLat': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_lat',
|
||||
),
|
||||
'checkInLng': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_lng',
|
||||
),
|
||||
'checkOutAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_at',
|
||||
),
|
||||
'checkOutLat': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_lat',
|
||||
),
|
||||
'checkOutLng': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_lng',
|
||||
),
|
||||
'justification': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'justification',
|
||||
),
|
||||
'checkOutJustification': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_justification',
|
||||
),
|
||||
'verificationStatus': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'verification_status',
|
||||
),
|
||||
'checkInVerificationPhotoUrl': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_verification_photo_url',
|
||||
),
|
||||
'checkOutVerificationPhotoUrl': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_verification_photo_url',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'userId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'dutyScheduleId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'duty_schedule_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'shiftType': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'shift_type',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'checkInAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'checkInLat': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_lat',
|
||||
iterable: false,
|
||||
type: double,
|
||||
),
|
||||
'checkInLng': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_lng',
|
||||
iterable: false,
|
||||
type: double,
|
||||
),
|
||||
'checkOutAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'checkOutLat': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_lat',
|
||||
iterable: false,
|
||||
type: double,
|
||||
),
|
||||
'checkOutLng': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_lng',
|
||||
iterable: false,
|
||||
type: double,
|
||||
),
|
||||
'justification': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'justification',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'checkOutJustification': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_justification',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'verificationStatus': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'verification_status',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'checkInVerificationPhotoUrl': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_verification_photo_url',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'checkOutVerificationPhotoUrl': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_out_verification_photo_url',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
AttendanceLog instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'AttendanceLog';
|
||||
|
||||
@override
|
||||
Future<AttendanceLog> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AttendanceLogFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
AttendanceLog input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AttendanceLogToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<AttendanceLog> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AttendanceLogFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
AttendanceLog input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$AttendanceLogToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<ChatMessage> _$ChatMessageFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ChatMessage(
|
||||
id: data['id'] as String,
|
||||
threadId: data['thread_id'] as String,
|
||||
senderId: data['sender_id'] as String,
|
||||
body: data['body'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ChatMessageToSupabase(
|
||||
ChatMessage instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'thread_id': instance.threadId,
|
||||
'sender_id': instance.senderId,
|
||||
'body': instance.body,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<ChatMessage> _$ChatMessageFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ChatMessage(
|
||||
id: data['id'] as String,
|
||||
threadId: data['thread_id'] as String,
|
||||
senderId: data['sender_id'] as String,
|
||||
body: data['body'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ChatMessageToSqlite(
|
||||
ChatMessage instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'thread_id': instance.threadId,
|
||||
'sender_id': instance.senderId,
|
||||
'body': instance.body,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [ChatMessage]
|
||||
class ChatMessageAdapter extends OfflineFirstWithSupabaseAdapter<ChatMessage> {
|
||||
ChatMessageAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'chat_messages';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'threadId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'thread_id',
|
||||
),
|
||||
'senderId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'sender_id',
|
||||
),
|
||||
'body': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'body',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'threadId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'thread_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'senderId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'sender_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'body': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'body',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
ChatMessage instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'ChatMessage';
|
||||
|
||||
@override
|
||||
Future<ChatMessage> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ChatMessageFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
ChatMessage input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ChatMessageToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<ChatMessage> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ChatMessageFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
ChatMessage input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ChatMessageToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,265 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<DutySchedule> _$DutyScheduleFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return DutySchedule(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
shiftType: data['shift_type'] as String,
|
||||
startTime: DateTime.parse(data['start_time'] as String),
|
||||
endTime: DateTime.parse(data['end_time'] as String),
|
||||
status: data['status'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
checkInAt: data['check_in_at'] == null
|
||||
? null
|
||||
: data['check_in_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['check_in_at'] as String),
|
||||
relieverIds: data['reliever_ids'].toList().cast<String>(),
|
||||
swapRequestId: data['swap_request_id'] == null
|
||||
? null
|
||||
: data['swap_request_id'] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$DutyScheduleToSupabase(
|
||||
DutySchedule instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'shift_type': instance.shiftType,
|
||||
'start_time': instance.startTime.toIso8601String(),
|
||||
'end_time': instance.endTime.toIso8601String(),
|
||||
'status': instance.status,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'check_in_at': instance.checkInAt?.toIso8601String(),
|
||||
'reliever_ids': instance.relieverIds,
|
||||
'swap_request_id': instance.swapRequestId,
|
||||
};
|
||||
}
|
||||
|
||||
Future<DutySchedule> _$DutyScheduleFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return DutySchedule(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
shiftType: data['shift_type'] as String,
|
||||
startTime: DateTime.parse(data['start_time'] as String),
|
||||
endTime: DateTime.parse(data['end_time'] as String),
|
||||
status: data['status'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
checkInAt: data['check_in_at'] == null
|
||||
? null
|
||||
: data['check_in_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['check_in_at'] as String),
|
||||
relieverIds: jsonDecode(data['reliever_ids']).toList().cast<String>(),
|
||||
swapRequestId: data['swap_request_id'] == null
|
||||
? null
|
||||
: data['swap_request_id'] as String?,
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$DutyScheduleToSqlite(
|
||||
DutySchedule instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'shift_type': instance.shiftType,
|
||||
'start_time': instance.startTime.toIso8601String(),
|
||||
'end_time': instance.endTime.toIso8601String(),
|
||||
'status': instance.status,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'check_in_at': instance.checkInAt?.toIso8601String(),
|
||||
'reliever_ids': jsonEncode(instance.relieverIds),
|
||||
'swap_request_id': instance.swapRequestId,
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [DutySchedule]
|
||||
class DutyScheduleAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<DutySchedule> {
|
||||
DutyScheduleAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'duty_schedules';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'userId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
),
|
||||
'shiftType': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'shift_type',
|
||||
),
|
||||
'startTime': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'start_time',
|
||||
),
|
||||
'endTime': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'end_time',
|
||||
),
|
||||
'status': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
'checkInAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_at',
|
||||
),
|
||||
'relieverIds': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'reliever_ids',
|
||||
),
|
||||
'swapRequestId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'swap_request_id',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'userId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'shiftType': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'shift_type',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'startTime': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'start_time',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'endTime': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'end_time',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'status': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'checkInAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'check_in_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'relieverIds': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'reliever_ids',
|
||||
iterable: true,
|
||||
type: String,
|
||||
),
|
||||
'swapRequestId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'swap_request_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
DutySchedule instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'DutySchedule';
|
||||
|
||||
@override
|
||||
Future<DutySchedule> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$DutyScheduleFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
DutySchedule input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$DutyScheduleToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<DutySchedule> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$DutyScheduleFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
DutySchedule input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$DutyScheduleToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,201 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<ItServiceRequestAction> _$ItServiceRequestActionFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ItServiceRequestAction(
|
||||
id: data['id'] as String,
|
||||
requestId: data['request_id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
actionTaken: data['action_taken'] == null
|
||||
? null
|
||||
: data['action_taken'] as String?,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
updatedAt: DateTime.parse(data['updated_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ItServiceRequestActionToSupabase(
|
||||
ItServiceRequestAction instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'request_id': instance.requestId,
|
||||
'user_id': instance.userId,
|
||||
'action_taken': instance.actionTaken,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'updated_at': instance.updatedAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<ItServiceRequestAction> _$ItServiceRequestActionFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ItServiceRequestAction(
|
||||
id: data['id'] as String,
|
||||
requestId: data['request_id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
actionTaken: data['action_taken'] == null
|
||||
? null
|
||||
: data['action_taken'] as String?,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
updatedAt: DateTime.parse(data['updated_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ItServiceRequestActionToSqlite(
|
||||
ItServiceRequestAction instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'request_id': instance.requestId,
|
||||
'user_id': instance.userId,
|
||||
'action_taken': instance.actionTaken,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'updated_at': instance.updatedAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [ItServiceRequestAction]
|
||||
class ItServiceRequestActionAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<ItServiceRequestAction> {
|
||||
ItServiceRequestActionAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'it_service_request_actions';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'requestId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_id',
|
||||
),
|
||||
'userId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
),
|
||||
'actionTaken': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'action_taken',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
'updatedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'updated_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'userId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'actionTaken': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'action_taken',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'updatedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'updated_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
ItServiceRequestAction instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'ItServiceRequestAction';
|
||||
|
||||
@override
|
||||
Future<ItServiceRequestAction> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestActionFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
ItServiceRequestAction input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestActionToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<ItServiceRequestAction> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestActionFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
ItServiceRequestAction input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestActionToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<ItServiceRequestActivityLog> _$ItServiceRequestActivityLogFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ItServiceRequestActivityLog(
|
||||
id: data['id'] as String,
|
||||
requestId: data['request_id'] as String,
|
||||
actorId: data['actor_id'] == null ? null : data['actor_id'] as String?,
|
||||
actionType: data['action_type'] as String,
|
||||
meta: data['meta'] == null ? null : data['meta'],
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ItServiceRequestActivityLogToSupabase(
|
||||
ItServiceRequestActivityLog instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'request_id': instance.requestId,
|
||||
'actor_id': instance.actorId,
|
||||
'action_type': instance.actionType,
|
||||
'meta': instance.meta,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<ItServiceRequestActivityLog> _$ItServiceRequestActivityLogFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ItServiceRequestActivityLog(
|
||||
id: data['id'] as String,
|
||||
requestId: data['request_id'] as String,
|
||||
actorId: data['actor_id'] == null ? null : data['actor_id'] as String?,
|
||||
actionType: data['action_type'] as String,
|
||||
meta: data['meta'] == null ? null : jsonDecode(data['meta']),
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ItServiceRequestActivityLogToSqlite(
|
||||
ItServiceRequestActivityLog instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'request_id': instance.requestId,
|
||||
'actor_id': instance.actorId,
|
||||
'action_type': instance.actionType,
|
||||
'meta': instance.meta != null ? jsonEncode(instance.meta) : null,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [ItServiceRequestActivityLog]
|
||||
class ItServiceRequestActivityLogAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<ItServiceRequestActivityLog> {
|
||||
ItServiceRequestActivityLogAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'it_service_request_activity_logs';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'requestId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_id',
|
||||
),
|
||||
'actorId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'actor_id',
|
||||
),
|
||||
'actionType': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'action_type',
|
||||
),
|
||||
'meta': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'meta',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'actorId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'actor_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'actionType': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'action_type',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'meta': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'meta',
|
||||
iterable: false,
|
||||
type: Map,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
ItServiceRequestActivityLog instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'ItServiceRequestActivityLog';
|
||||
|
||||
@override
|
||||
Future<ItServiceRequestActivityLog> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestActivityLogFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
ItServiceRequestActivityLog input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestActivityLogToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<ItServiceRequestActivityLog> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestActivityLogFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
ItServiceRequestActivityLog input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestActivityLogToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,635 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<ItServiceRequest> _$ItServiceRequestFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ItServiceRequest(
|
||||
id: data['id'] as String,
|
||||
requestNumber: data['request_number'] == null
|
||||
? null
|
||||
: data['request_number'] as String?,
|
||||
services: data['services'].toList().cast<String>(),
|
||||
servicesOther: data['services_other'] == null
|
||||
? null
|
||||
: data['services_other'] as String?,
|
||||
eventName: data['event_name'] as String,
|
||||
eventDetails: data['event_details'] == null
|
||||
? null
|
||||
: data['event_details'] as String?,
|
||||
eventDate: data['event_date'] == null
|
||||
? null
|
||||
: data['event_date'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['event_date'] as String),
|
||||
eventEndDate: data['event_end_date'] == null
|
||||
? null
|
||||
: data['event_end_date'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['event_end_date'] as String),
|
||||
dryRunDate: data['dry_run_date'] == null
|
||||
? null
|
||||
: data['dry_run_date'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['dry_run_date'] as String),
|
||||
dryRunEndDate: data['dry_run_end_date'] == null
|
||||
? null
|
||||
: data['dry_run_end_date'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['dry_run_end_date'] as String),
|
||||
contactPerson: data['contact_person'] == null
|
||||
? null
|
||||
: data['contact_person'] as String?,
|
||||
contactNumber: data['contact_number'] == null
|
||||
? null
|
||||
: data['contact_number'] as String?,
|
||||
remarks: data['remarks'] == null ? null : data['remarks'] as String?,
|
||||
officeId: data['office_id'] == null ? null : data['office_id'] as String?,
|
||||
requestedBy: data['requested_by'] == null
|
||||
? null
|
||||
: data['requested_by'] as String?,
|
||||
requestedByUserId: data['requested_by_user_id'] == null
|
||||
? null
|
||||
: data['requested_by_user_id'] as String?,
|
||||
approvedBy: data['approved_by'] == null
|
||||
? null
|
||||
: data['approved_by'] as String?,
|
||||
approvedByUserId: data['approved_by_user_id'] == null
|
||||
? null
|
||||
: data['approved_by_user_id'] as String?,
|
||||
approvedAt: data['approved_at'] == null
|
||||
? null
|
||||
: data['approved_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['approved_at'] as String),
|
||||
status: data['status'] as String,
|
||||
outsidePremiseAllowed: data['outside_premise_allowed'] as bool,
|
||||
cancellationReason: data['cancellation_reason'] == null
|
||||
? null
|
||||
: data['cancellation_reason'] as String?,
|
||||
cancelledAt: data['cancelled_at'] == null
|
||||
? null
|
||||
: data['cancelled_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['cancelled_at'] as String),
|
||||
creatorId: data['creator_id'] == null
|
||||
? null
|
||||
: data['creator_id'] as String?,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
updatedAt: DateTime.parse(data['updated_at'] as String),
|
||||
completedAt: data['completed_at'] == null
|
||||
? null
|
||||
: data['completed_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['completed_at'] as String),
|
||||
dateTimeReceived: data['date_time_received'] == null
|
||||
? null
|
||||
: data['date_time_received'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['date_time_received'] as String),
|
||||
dateTimeChecked: data['date_time_checked'] == null
|
||||
? null
|
||||
: data['date_time_checked'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['date_time_checked'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ItServiceRequestToSupabase(
|
||||
ItServiceRequest instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'request_number': instance.requestNumber,
|
||||
'services': instance.services,
|
||||
'services_other': instance.servicesOther,
|
||||
'event_name': instance.eventName,
|
||||
'event_details': instance.eventDetails,
|
||||
'event_date': instance.eventDate?.toIso8601String(),
|
||||
'event_end_date': instance.eventEndDate?.toIso8601String(),
|
||||
'dry_run_date': instance.dryRunDate?.toIso8601String(),
|
||||
'dry_run_end_date': instance.dryRunEndDate?.toIso8601String(),
|
||||
'contact_person': instance.contactPerson,
|
||||
'contact_number': instance.contactNumber,
|
||||
'remarks': instance.remarks,
|
||||
'office_id': instance.officeId,
|
||||
'requested_by': instance.requestedBy,
|
||||
'requested_by_user_id': instance.requestedByUserId,
|
||||
'approved_by': instance.approvedBy,
|
||||
'approved_by_user_id': instance.approvedByUserId,
|
||||
'approved_at': instance.approvedAt?.toIso8601String(),
|
||||
'status': instance.status,
|
||||
'outside_premise_allowed': instance.outsidePremiseAllowed,
|
||||
'cancellation_reason': instance.cancellationReason,
|
||||
'cancelled_at': instance.cancelledAt?.toIso8601String(),
|
||||
'creator_id': instance.creatorId,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'updated_at': instance.updatedAt.toIso8601String(),
|
||||
'completed_at': instance.completedAt?.toIso8601String(),
|
||||
'date_time_received': instance.dateTimeReceived?.toIso8601String(),
|
||||
'date_time_checked': instance.dateTimeChecked?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<ItServiceRequest> _$ItServiceRequestFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ItServiceRequest(
|
||||
id: data['id'] as String,
|
||||
requestNumber: data['request_number'] == null
|
||||
? null
|
||||
: data['request_number'] as String?,
|
||||
services: jsonDecode(data['services']).toList().cast<String>(),
|
||||
servicesOther: data['services_other'] == null
|
||||
? null
|
||||
: data['services_other'] as String?,
|
||||
eventName: data['event_name'] as String,
|
||||
eventDetails: data['event_details'] == null
|
||||
? null
|
||||
: data['event_details'] as String?,
|
||||
eventDate: data['event_date'] == null
|
||||
? null
|
||||
: data['event_date'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['event_date'] as String),
|
||||
eventEndDate: data['event_end_date'] == null
|
||||
? null
|
||||
: data['event_end_date'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['event_end_date'] as String),
|
||||
dryRunDate: data['dry_run_date'] == null
|
||||
? null
|
||||
: data['dry_run_date'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['dry_run_date'] as String),
|
||||
dryRunEndDate: data['dry_run_end_date'] == null
|
||||
? null
|
||||
: data['dry_run_end_date'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['dry_run_end_date'] as String),
|
||||
contactPerson: data['contact_person'] == null
|
||||
? null
|
||||
: data['contact_person'] as String?,
|
||||
contactNumber: data['contact_number'] == null
|
||||
? null
|
||||
: data['contact_number'] as String?,
|
||||
remarks: data['remarks'] == null ? null : data['remarks'] as String?,
|
||||
officeId: data['office_id'] == null ? null : data['office_id'] as String?,
|
||||
requestedBy: data['requested_by'] == null
|
||||
? null
|
||||
: data['requested_by'] as String?,
|
||||
requestedByUserId: data['requested_by_user_id'] == null
|
||||
? null
|
||||
: data['requested_by_user_id'] as String?,
|
||||
approvedBy: data['approved_by'] == null
|
||||
? null
|
||||
: data['approved_by'] as String?,
|
||||
approvedByUserId: data['approved_by_user_id'] == null
|
||||
? null
|
||||
: data['approved_by_user_id'] as String?,
|
||||
approvedAt: data['approved_at'] == null
|
||||
? null
|
||||
: data['approved_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['approved_at'] as String),
|
||||
status: data['status'] as String,
|
||||
outsidePremiseAllowed: data['outside_premise_allowed'] == 1,
|
||||
cancellationReason: data['cancellation_reason'] == null
|
||||
? null
|
||||
: data['cancellation_reason'] as String?,
|
||||
cancelledAt: data['cancelled_at'] == null
|
||||
? null
|
||||
: data['cancelled_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['cancelled_at'] as String),
|
||||
creatorId: data['creator_id'] == null
|
||||
? null
|
||||
: data['creator_id'] as String?,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
updatedAt: DateTime.parse(data['updated_at'] as String),
|
||||
completedAt: data['completed_at'] == null
|
||||
? null
|
||||
: data['completed_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['completed_at'] as String),
|
||||
dateTimeReceived: data['date_time_received'] == null
|
||||
? null
|
||||
: data['date_time_received'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['date_time_received'] as String),
|
||||
dateTimeChecked: data['date_time_checked'] == null
|
||||
? null
|
||||
: data['date_time_checked'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['date_time_checked'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ItServiceRequestToSqlite(
|
||||
ItServiceRequest instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'request_number': instance.requestNumber,
|
||||
'services': jsonEncode(instance.services),
|
||||
'services_other': instance.servicesOther,
|
||||
'event_name': instance.eventName,
|
||||
'event_details': instance.eventDetails,
|
||||
'event_date': instance.eventDate?.toIso8601String(),
|
||||
'event_end_date': instance.eventEndDate?.toIso8601String(),
|
||||
'dry_run_date': instance.dryRunDate?.toIso8601String(),
|
||||
'dry_run_end_date': instance.dryRunEndDate?.toIso8601String(),
|
||||
'contact_person': instance.contactPerson,
|
||||
'contact_number': instance.contactNumber,
|
||||
'remarks': instance.remarks,
|
||||
'office_id': instance.officeId,
|
||||
'requested_by': instance.requestedBy,
|
||||
'requested_by_user_id': instance.requestedByUserId,
|
||||
'approved_by': instance.approvedBy,
|
||||
'approved_by_user_id': instance.approvedByUserId,
|
||||
'approved_at': instance.approvedAt?.toIso8601String(),
|
||||
'status': instance.status,
|
||||
'outside_premise_allowed': instance.outsidePremiseAllowed ? 1 : 0,
|
||||
'cancellation_reason': instance.cancellationReason,
|
||||
'cancelled_at': instance.cancelledAt?.toIso8601String(),
|
||||
'creator_id': instance.creatorId,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'updated_at': instance.updatedAt.toIso8601String(),
|
||||
'completed_at': instance.completedAt?.toIso8601String(),
|
||||
'date_time_received': instance.dateTimeReceived?.toIso8601String(),
|
||||
'date_time_checked': instance.dateTimeChecked?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [ItServiceRequest]
|
||||
class ItServiceRequestAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<ItServiceRequest> {
|
||||
ItServiceRequestAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'it_service_requests';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'requestNumber': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_number',
|
||||
),
|
||||
'services': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'services',
|
||||
),
|
||||
'servicesOther': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'services_other',
|
||||
),
|
||||
'eventName': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'event_name',
|
||||
),
|
||||
'eventDetails': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'event_details',
|
||||
),
|
||||
'eventDate': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'event_date',
|
||||
),
|
||||
'eventEndDate': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'event_end_date',
|
||||
),
|
||||
'dryRunDate': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'dry_run_date',
|
||||
),
|
||||
'dryRunEndDate': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'dry_run_end_date',
|
||||
),
|
||||
'contactPerson': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'contact_person',
|
||||
),
|
||||
'contactNumber': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'contact_number',
|
||||
),
|
||||
'remarks': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'remarks',
|
||||
),
|
||||
'officeId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'office_id',
|
||||
),
|
||||
'requestedBy': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_by',
|
||||
),
|
||||
'requestedByUserId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_by_user_id',
|
||||
),
|
||||
'approvedBy': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_by',
|
||||
),
|
||||
'approvedByUserId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_by_user_id',
|
||||
),
|
||||
'approvedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_at',
|
||||
),
|
||||
'status': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
),
|
||||
'outsidePremiseAllowed': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'outside_premise_allowed',
|
||||
),
|
||||
'cancellationReason': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'cancellation_reason',
|
||||
),
|
||||
'cancelledAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'cancelled_at',
|
||||
),
|
||||
'creatorId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'creator_id',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
'updatedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'updated_at',
|
||||
),
|
||||
'completedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'completed_at',
|
||||
),
|
||||
'dateTimeReceived': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'date_time_received',
|
||||
),
|
||||
'dateTimeChecked': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'date_time_checked',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestNumber': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_number',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'services': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'services',
|
||||
iterable: true,
|
||||
type: String,
|
||||
),
|
||||
'servicesOther': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'services_other',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'eventName': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'event_name',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'eventDetails': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'event_details',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'eventDate': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'event_date',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'eventEndDate': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'event_end_date',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'dryRunDate': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'dry_run_date',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'dryRunEndDate': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'dry_run_end_date',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'contactPerson': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'contact_person',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'contactNumber': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'contact_number',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'remarks': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'remarks',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'officeId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'office_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestedBy': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_by',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestedByUserId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_by_user_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'approvedBy': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_by',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'approvedByUserId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_by_user_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'approvedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'status': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'outsidePremiseAllowed': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'outside_premise_allowed',
|
||||
iterable: false,
|
||||
type: bool,
|
||||
),
|
||||
'cancellationReason': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'cancellation_reason',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'cancelledAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'cancelled_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'creatorId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'creator_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'updatedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'updated_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'completedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'completed_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'dateTimeReceived': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'date_time_received',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'dateTimeChecked': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'date_time_checked',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
ItServiceRequest instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'ItServiceRequest';
|
||||
|
||||
@override
|
||||
Future<ItServiceRequest> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
ItServiceRequest input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<ItServiceRequest> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
ItServiceRequest input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<ItServiceRequestAssignment> _$ItServiceRequestAssignmentFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ItServiceRequestAssignment(
|
||||
id: data['id'] as String,
|
||||
requestId: data['request_id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ItServiceRequestAssignmentToSupabase(
|
||||
ItServiceRequestAssignment instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'request_id': instance.requestId,
|
||||
'user_id': instance.userId,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<ItServiceRequestAssignment> _$ItServiceRequestAssignmentFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return ItServiceRequestAssignment(
|
||||
id: data['id'] as String,
|
||||
requestId: data['request_id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ItServiceRequestAssignmentToSqlite(
|
||||
ItServiceRequestAssignment instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'request_id': instance.requestId,
|
||||
'user_id': instance.userId,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [ItServiceRequestAssignment]
|
||||
class ItServiceRequestAssignmentAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<ItServiceRequestAssignment> {
|
||||
ItServiceRequestAssignmentAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'it_service_request_assignments';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'requestId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_id',
|
||||
),
|
||||
'userId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'userId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
ItServiceRequestAssignment instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'ItServiceRequestAssignment';
|
||||
|
||||
@override
|
||||
Future<ItServiceRequestAssignment> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestAssignmentFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
ItServiceRequestAssignment input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestAssignmentToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<ItServiceRequestAssignment> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestAssignmentFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
ItServiceRequestAssignment input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ItServiceRequestAssignmentToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,239 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<LeaveOfAbsence> _$LeaveOfAbsenceFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return LeaveOfAbsence(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
leaveType: data['leave_type'] as String,
|
||||
justification: data['justification'] as String,
|
||||
startTime: DateTime.parse(data['start_time'] as String),
|
||||
endTime: DateTime.parse(data['end_time'] as String),
|
||||
status: data['status'] as String,
|
||||
filedBy: data['filed_by'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$LeaveOfAbsenceToSupabase(
|
||||
LeaveOfAbsence instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'leave_type': instance.leaveType,
|
||||
'justification': instance.justification,
|
||||
'start_time': instance.startTime.toIso8601String(),
|
||||
'end_time': instance.endTime.toIso8601String(),
|
||||
'status': instance.status,
|
||||
'filed_by': instance.filedBy,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<LeaveOfAbsence> _$LeaveOfAbsenceFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return LeaveOfAbsence(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
leaveType: data['leave_type'] as String,
|
||||
justification: data['justification'] as String,
|
||||
startTime: DateTime.parse(data['start_time'] as String),
|
||||
endTime: DateTime.parse(data['end_time'] as String),
|
||||
status: data['status'] as String,
|
||||
filedBy: data['filed_by'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$LeaveOfAbsenceToSqlite(
|
||||
LeaveOfAbsence instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'leave_type': instance.leaveType,
|
||||
'justification': instance.justification,
|
||||
'start_time': instance.startTime.toIso8601String(),
|
||||
'end_time': instance.endTime.toIso8601String(),
|
||||
'status': instance.status,
|
||||
'filed_by': instance.filedBy,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [LeaveOfAbsence]
|
||||
class LeaveOfAbsenceAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<LeaveOfAbsence> {
|
||||
LeaveOfAbsenceAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'leave_of_absence';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'userId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
),
|
||||
'leaveType': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'leave_type',
|
||||
),
|
||||
'justification': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'justification',
|
||||
),
|
||||
'startTime': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'start_time',
|
||||
),
|
||||
'endTime': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'end_time',
|
||||
),
|
||||
'status': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
),
|
||||
'filedBy': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'filed_by',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'userId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'leaveType': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'leave_type',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'justification': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'justification',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'startTime': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'start_time',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'endTime': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'end_time',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'status': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'filedBy': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'filed_by',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
LeaveOfAbsence instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'LeaveOfAbsence';
|
||||
|
||||
@override
|
||||
Future<LeaveOfAbsence> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$LeaveOfAbsenceFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
LeaveOfAbsence input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$LeaveOfAbsenceToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<LeaveOfAbsence> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$LeaveOfAbsenceFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
LeaveOfAbsence input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$LeaveOfAbsenceToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,315 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<NotificationItem> _$NotificationItemFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return NotificationItem(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
actorId: data['actor_id'] == null ? null : data['actor_id'] as String?,
|
||||
ticketId: data['ticket_id'] == null ? null : data['ticket_id'] as String?,
|
||||
taskId: data['task_id'] == null ? null : data['task_id'] as String?,
|
||||
leaveId: data['leave_id'] == null ? null : data['leave_id'] as String?,
|
||||
passSlipId: data['pass_slip_id'] == null
|
||||
? null
|
||||
: data['pass_slip_id'] as String?,
|
||||
itServiceRequestId: data['it_service_request_id'] == null
|
||||
? null
|
||||
: data['it_service_request_id'] as String?,
|
||||
announcementId: data['announcement_id'] == null
|
||||
? null
|
||||
: data['announcement_id'] as String?,
|
||||
messageId: data['message_id'] == null ? null : data['message_id'] as int?,
|
||||
type: data['type'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
readAt: data['read_at'] == null
|
||||
? null
|
||||
: data['read_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['read_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$NotificationItemToSupabase(
|
||||
NotificationItem instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'actor_id': instance.actorId,
|
||||
'ticket_id': instance.ticketId,
|
||||
'task_id': instance.taskId,
|
||||
'leave_id': instance.leaveId,
|
||||
'pass_slip_id': instance.passSlipId,
|
||||
'it_service_request_id': instance.itServiceRequestId,
|
||||
'announcement_id': instance.announcementId,
|
||||
'message_id': instance.messageId,
|
||||
'type': instance.type,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'read_at': instance.readAt?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<NotificationItem> _$NotificationItemFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return NotificationItem(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
actorId: data['actor_id'] == null ? null : data['actor_id'] as String?,
|
||||
ticketId: data['ticket_id'] == null ? null : data['ticket_id'] as String?,
|
||||
taskId: data['task_id'] == null ? null : data['task_id'] as String?,
|
||||
leaveId: data['leave_id'] == null ? null : data['leave_id'] as String?,
|
||||
passSlipId: data['pass_slip_id'] == null
|
||||
? null
|
||||
: data['pass_slip_id'] as String?,
|
||||
itServiceRequestId: data['it_service_request_id'] == null
|
||||
? null
|
||||
: data['it_service_request_id'] as String?,
|
||||
announcementId: data['announcement_id'] == null
|
||||
? null
|
||||
: data['announcement_id'] as String?,
|
||||
messageId: data['message_id'] == null ? null : data['message_id'] as int?,
|
||||
type: data['type'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
readAt: data['read_at'] == null
|
||||
? null
|
||||
: data['read_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['read_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$NotificationItemToSqlite(
|
||||
NotificationItem instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'actor_id': instance.actorId,
|
||||
'ticket_id': instance.ticketId,
|
||||
'task_id': instance.taskId,
|
||||
'leave_id': instance.leaveId,
|
||||
'pass_slip_id': instance.passSlipId,
|
||||
'it_service_request_id': instance.itServiceRequestId,
|
||||
'announcement_id': instance.announcementId,
|
||||
'message_id': instance.messageId,
|
||||
'type': instance.type,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'read_at': instance.readAt?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [NotificationItem]
|
||||
class NotificationItemAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<NotificationItem> {
|
||||
NotificationItemAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'notifications';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'userId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
),
|
||||
'actorId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'actor_id',
|
||||
),
|
||||
'ticketId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'ticket_id',
|
||||
),
|
||||
'taskId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'task_id',
|
||||
),
|
||||
'leaveId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'leave_id',
|
||||
),
|
||||
'passSlipId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'pass_slip_id',
|
||||
),
|
||||
'itServiceRequestId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'it_service_request_id',
|
||||
),
|
||||
'announcementId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'announcement_id',
|
||||
),
|
||||
'messageId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'message_id',
|
||||
),
|
||||
'type': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'type',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
'readAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'read_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'userId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'actorId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'actor_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'ticketId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'ticket_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'taskId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'task_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'leaveId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'leave_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'passSlipId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'pass_slip_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'itServiceRequestId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'it_service_request_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'announcementId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'announcement_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'messageId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'message_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'type': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'type',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'readAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'read_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
NotificationItem instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'NotificationItem';
|
||||
|
||||
@override
|
||||
Future<NotificationItem> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$NotificationItemFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
NotificationItem input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$NotificationItemToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<NotificationItem> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$NotificationItemFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
NotificationItem input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$NotificationItemToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<Office> _$OfficeFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Office(
|
||||
id: data['id'] as String,
|
||||
name: data['name'] as String,
|
||||
serviceId: data['service_id'] == null
|
||||
? null
|
||||
: data['service_id'] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$OfficeToSupabase(
|
||||
Office instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'name': instance.name,
|
||||
'service_id': instance.serviceId,
|
||||
};
|
||||
}
|
||||
|
||||
Future<Office> _$OfficeFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Office(
|
||||
id: data['id'] as String,
|
||||
name: data['name'] as String,
|
||||
serviceId: data['service_id'] == null
|
||||
? null
|
||||
: data['service_id'] as String?,
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$OfficeToSqlite(
|
||||
Office instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'name': instance.name,
|
||||
'service_id': instance.serviceId,
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [Office]
|
||||
class OfficeAdapter extends OfflineFirstWithSupabaseAdapter<Office> {
|
||||
OfficeAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'offices';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'name': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'name',
|
||||
),
|
||||
'serviceId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'service_id',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'name': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'name',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'serviceId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'service_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
Office instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'Office';
|
||||
|
||||
@override
|
||||
Future<Office> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$OfficeFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
Office input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$OfficeToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Office> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$OfficeFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
Office input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async =>
|
||||
await _$OfficeToSqlite(input, provider: provider, repository: repository);
|
||||
}
|
||||
@@ -0,0 +1,302 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<PassSlip> _$PassSlipFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return PassSlip(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
dutyScheduleId: data['duty_schedule_id'] as String,
|
||||
reason: data['reason'] as String,
|
||||
status: data['status'] as String,
|
||||
requestedAt: DateTime.parse(data['requested_at'] as String),
|
||||
approvedBy: data['approved_by'] == null
|
||||
? null
|
||||
: data['approved_by'] as String?,
|
||||
approvedAt: data['approved_at'] == null
|
||||
? null
|
||||
: data['approved_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['approved_at'] as String),
|
||||
slipStart: data['slip_start'] == null
|
||||
? null
|
||||
: data['slip_start'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['slip_start'] as String),
|
||||
slipEnd: data['slip_end'] == null
|
||||
? null
|
||||
: data['slip_end'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['slip_end'] as String),
|
||||
requestedStart: data['requested_start'] == null
|
||||
? null
|
||||
: data['requested_start'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['requested_start'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$PassSlipToSupabase(
|
||||
PassSlip instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'duty_schedule_id': instance.dutyScheduleId,
|
||||
'reason': instance.reason,
|
||||
'status': instance.status,
|
||||
'requested_at': instance.requestedAt.toIso8601String(),
|
||||
'approved_by': instance.approvedBy,
|
||||
'approved_at': instance.approvedAt?.toIso8601String(),
|
||||
'slip_start': instance.slipStart?.toIso8601String(),
|
||||
'slip_end': instance.slipEnd?.toIso8601String(),
|
||||
'requested_start': instance.requestedStart?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<PassSlip> _$PassSlipFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return PassSlip(
|
||||
id: data['id'] as String,
|
||||
userId: data['user_id'] as String,
|
||||
dutyScheduleId: data['duty_schedule_id'] as String,
|
||||
reason: data['reason'] as String,
|
||||
status: data['status'] as String,
|
||||
requestedAt: DateTime.parse(data['requested_at'] as String),
|
||||
approvedBy: data['approved_by'] == null
|
||||
? null
|
||||
: data['approved_by'] as String?,
|
||||
approvedAt: data['approved_at'] == null
|
||||
? null
|
||||
: data['approved_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['approved_at'] as String),
|
||||
slipStart: data['slip_start'] == null
|
||||
? null
|
||||
: data['slip_start'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['slip_start'] as String),
|
||||
slipEnd: data['slip_end'] == null
|
||||
? null
|
||||
: data['slip_end'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['slip_end'] as String),
|
||||
requestedStart: data['requested_start'] == null
|
||||
? null
|
||||
: data['requested_start'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['requested_start'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$PassSlipToSqlite(
|
||||
PassSlip instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'user_id': instance.userId,
|
||||
'duty_schedule_id': instance.dutyScheduleId,
|
||||
'reason': instance.reason,
|
||||
'status': instance.status,
|
||||
'requested_at': instance.requestedAt.toIso8601String(),
|
||||
'approved_by': instance.approvedBy,
|
||||
'approved_at': instance.approvedAt?.toIso8601String(),
|
||||
'slip_start': instance.slipStart?.toIso8601String(),
|
||||
'slip_end': instance.slipEnd?.toIso8601String(),
|
||||
'requested_start': instance.requestedStart?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [PassSlip]
|
||||
class PassSlipAdapter extends OfflineFirstWithSupabaseAdapter<PassSlip> {
|
||||
PassSlipAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'pass_slips';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'userId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
),
|
||||
'dutyScheduleId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'duty_schedule_id',
|
||||
),
|
||||
'reason': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'reason',
|
||||
),
|
||||
'status': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
),
|
||||
'requestedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_at',
|
||||
),
|
||||
'approvedBy': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_by',
|
||||
),
|
||||
'approvedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_at',
|
||||
),
|
||||
'slipStart': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'slip_start',
|
||||
),
|
||||
'slipEnd': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'slip_end',
|
||||
),
|
||||
'requestedStart': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_start',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'userId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'user_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'dutyScheduleId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'duty_schedule_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'reason': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'reason',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'status': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'approvedBy': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_by',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'approvedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'slipStart': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'slip_start',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'slipEnd': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'slip_end',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'requestedStart': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_start',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
PassSlip instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'PassSlip';
|
||||
|
||||
@override
|
||||
Future<PassSlip> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$PassSlipFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
PassSlip input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$PassSlipToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<PassSlip> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$PassSlipFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
PassSlip input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$PassSlipToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,240 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<Profile> _$ProfileFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Profile(
|
||||
id: data['id'] as String,
|
||||
role: data['role'] as String,
|
||||
fullName: data['full_name'] as String,
|
||||
religion: data['religion'] as String,
|
||||
allowTracking: data['allow_tracking'] as bool,
|
||||
avatarUrl: data['avatar_url'] == null
|
||||
? null
|
||||
: data['avatar_url'] as String?,
|
||||
facePhotoUrl: data['face_photo_url'] == null
|
||||
? null
|
||||
: data['face_photo_url'] as String?,
|
||||
faceEnrolledAt: data['face_enrolled_at'] == null
|
||||
? null
|
||||
: data['face_enrolled_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['face_enrolled_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ProfileToSupabase(
|
||||
Profile instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'role': instance.role,
|
||||
'full_name': instance.fullName,
|
||||
'religion': instance.religion,
|
||||
'allow_tracking': instance.allowTracking,
|
||||
'avatar_url': instance.avatarUrl,
|
||||
'face_photo_url': instance.facePhotoUrl,
|
||||
'face_enrolled_at': instance.faceEnrolledAt?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<Profile> _$ProfileFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Profile(
|
||||
id: data['id'] as String,
|
||||
role: data['role'] as String,
|
||||
fullName: data['full_name'] as String,
|
||||
religion: data['religion'] as String,
|
||||
allowTracking: data['allow_tracking'] == 1,
|
||||
avatarUrl: data['avatar_url'] == null
|
||||
? null
|
||||
: data['avatar_url'] as String?,
|
||||
facePhotoUrl: data['face_photo_url'] == null
|
||||
? null
|
||||
: data['face_photo_url'] as String?,
|
||||
faceEnrolledAt: data['face_enrolled_at'] == null
|
||||
? null
|
||||
: data['face_enrolled_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['face_enrolled_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ProfileToSqlite(
|
||||
Profile instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'role': instance.role,
|
||||
'full_name': instance.fullName,
|
||||
'religion': instance.religion,
|
||||
'allow_tracking': instance.allowTracking ? 1 : 0,
|
||||
'avatar_url': instance.avatarUrl,
|
||||
'face_photo_url': instance.facePhotoUrl,
|
||||
'face_enrolled_at': instance.faceEnrolledAt?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [Profile]
|
||||
class ProfileAdapter extends OfflineFirstWithSupabaseAdapter<Profile> {
|
||||
ProfileAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'profiles';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'role': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'role',
|
||||
),
|
||||
'fullName': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'full_name',
|
||||
),
|
||||
'religion': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'religion',
|
||||
),
|
||||
'allowTracking': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'allow_tracking',
|
||||
),
|
||||
'avatarUrl': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'avatar_url',
|
||||
),
|
||||
'facePhotoUrl': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'face_photo_url',
|
||||
),
|
||||
'faceEnrolledAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'face_enrolled_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'role': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'role',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'fullName': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'full_name',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'religion': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'religion',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'allowTracking': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'allow_tracking',
|
||||
iterable: false,
|
||||
type: bool,
|
||||
),
|
||||
'avatarUrl': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'avatar_url',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'facePhotoUrl': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'face_photo_url',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'faceEnrolledAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'face_enrolled_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
Profile instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'Profile';
|
||||
|
||||
@override
|
||||
Future<Profile> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ProfileFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
Profile input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ProfileToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Profile> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ProfileFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
Profile input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ProfileToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<Service> _$ServiceFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Service(id: data['id'] as String, name: data['name'] as String);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ServiceToSupabase(
|
||||
Service instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {'id': instance.id, 'name': instance.name};
|
||||
}
|
||||
|
||||
Future<Service> _$ServiceFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Service(id: data['id'] as String, name: data['name'] as String)
|
||||
..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$ServiceToSqlite(
|
||||
Service instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {'id': instance.id, 'name': instance.name};
|
||||
}
|
||||
|
||||
/// Construct a [Service]
|
||||
class ServiceAdapter extends OfflineFirstWithSupabaseAdapter<Service> {
|
||||
ServiceAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'services';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'name': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'name',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'name': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'name',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
Service instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'Service';
|
||||
|
||||
@override
|
||||
Future<Service> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ServiceFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
Service input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ServiceToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Service> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ServiceFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
Service input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$ServiceToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,332 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<SwapRequest> _$SwapRequestFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return SwapRequest(
|
||||
id: data['id'] as String,
|
||||
requesterId: data['requester_id'] as String,
|
||||
recipientId: data['recipient_id'] as String,
|
||||
requesterScheduleId: data['requester_schedule_id'] as String,
|
||||
targetScheduleId: data['target_shift_id'] == null
|
||||
? null
|
||||
: data['target_shift_id'] as String?,
|
||||
status: data['status'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
updatedAt: data['updated_at'] == null
|
||||
? null
|
||||
: data['updated_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['updated_at'] as String),
|
||||
chatThreadId: data['chat_thread_id'] == null
|
||||
? null
|
||||
: data['chat_thread_id'] as String?,
|
||||
shiftType: data['shift_type'] == null
|
||||
? null
|
||||
: data['shift_type'] as String?,
|
||||
shiftStartTime: data['shift_start_time'] == null
|
||||
? null
|
||||
: data['shift_start_time'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['shift_start_time'] as String),
|
||||
relieverIds: data['reliever_ids'] == null
|
||||
? null
|
||||
: data['reliever_ids']?.toList().cast<String>(),
|
||||
approvedBy: data['approved_by'] == null
|
||||
? null
|
||||
: data['approved_by'] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$SwapRequestToSupabase(
|
||||
SwapRequest instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'requester_id': instance.requesterId,
|
||||
'recipient_id': instance.recipientId,
|
||||
'requester_schedule_id': instance.requesterScheduleId,
|
||||
'target_shift_id': instance.targetScheduleId,
|
||||
'status': instance.status,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'updated_at': instance.updatedAt?.toIso8601String(),
|
||||
'chat_thread_id': instance.chatThreadId,
|
||||
'shift_type': instance.shiftType,
|
||||
'shift_start_time': instance.shiftStartTime?.toIso8601String(),
|
||||
'reliever_ids': instance.relieverIds,
|
||||
'approved_by': instance.approvedBy,
|
||||
};
|
||||
}
|
||||
|
||||
Future<SwapRequest> _$SwapRequestFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return SwapRequest(
|
||||
id: data['id'] as String,
|
||||
requesterId: data['requester_id'] as String,
|
||||
recipientId: data['recipient_id'] as String,
|
||||
requesterScheduleId: data['requester_schedule_id'] as String,
|
||||
targetScheduleId: data['target_schedule_id'] == null
|
||||
? null
|
||||
: data['target_schedule_id'] as String?,
|
||||
status: data['status'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
updatedAt: data['updated_at'] == null
|
||||
? null
|
||||
: data['updated_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['updated_at'] as String),
|
||||
chatThreadId: data['chat_thread_id'] == null
|
||||
? null
|
||||
: data['chat_thread_id'] as String?,
|
||||
shiftType: data['shift_type'] == null
|
||||
? null
|
||||
: data['shift_type'] as String?,
|
||||
shiftStartTime: data['shift_start_time'] == null
|
||||
? null
|
||||
: data['shift_start_time'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['shift_start_time'] as String),
|
||||
relieverIds: data['reliever_ids'] == null
|
||||
? null
|
||||
: jsonDecode(data['reliever_ids']).toList().cast<String>(),
|
||||
approvedBy: data['approved_by'] == null
|
||||
? null
|
||||
: data['approved_by'] as String?,
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$SwapRequestToSqlite(
|
||||
SwapRequest instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'requester_id': instance.requesterId,
|
||||
'recipient_id': instance.recipientId,
|
||||
'requester_schedule_id': instance.requesterScheduleId,
|
||||
'target_schedule_id': instance.targetScheduleId,
|
||||
'status': instance.status,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'updated_at': instance.updatedAt?.toIso8601String(),
|
||||
'chat_thread_id': instance.chatThreadId,
|
||||
'shift_type': instance.shiftType,
|
||||
'shift_start_time': instance.shiftStartTime?.toIso8601String(),
|
||||
'reliever_ids': instance.relieverIds == null
|
||||
? null
|
||||
: jsonEncode(instance.relieverIds),
|
||||
'approved_by': instance.approvedBy,
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [SwapRequest]
|
||||
class SwapRequestAdapter extends OfflineFirstWithSupabaseAdapter<SwapRequest> {
|
||||
SwapRequestAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'swap_requests';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'requesterId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requester_id',
|
||||
),
|
||||
'recipientId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'recipient_id',
|
||||
),
|
||||
'requesterScheduleId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requester_schedule_id',
|
||||
),
|
||||
'targetScheduleId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'target_shift_id',
|
||||
),
|
||||
'status': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
'updatedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'updated_at',
|
||||
),
|
||||
'chatThreadId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'chat_thread_id',
|
||||
),
|
||||
'shiftType': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'shift_type',
|
||||
),
|
||||
'shiftStartTime': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'shift_start_time',
|
||||
),
|
||||
'relieverIds': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'reliever_ids',
|
||||
),
|
||||
'approvedBy': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_by',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requesterId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requester_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'recipientId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'recipient_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requesterScheduleId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requester_schedule_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'targetScheduleId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'target_schedule_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'status': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'updatedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'updated_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'chatThreadId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'chat_thread_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'shiftType': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'shift_type',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'shiftStartTime': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'shift_start_time',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'relieverIds': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'reliever_ids',
|
||||
iterable: true,
|
||||
type: String,
|
||||
),
|
||||
'approvedBy': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'approved_by',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
SwapRequest instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'SwapRequest';
|
||||
|
||||
@override
|
||||
Future<SwapRequest> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$SwapRequestFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
SwapRequest input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$SwapRequestToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<SwapRequest> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$SwapRequestFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
SwapRequest input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$SwapRequestToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<TaskActivityLog> _$TaskActivityLogFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return TaskActivityLog(
|
||||
id: data['id'] as String,
|
||||
taskId: data['task_id'] as String,
|
||||
actorId: data['actor_id'] == null ? null : data['actor_id'] as String?,
|
||||
actionType: data['action_type'] as String,
|
||||
meta: data['meta'] == null ? null : data['meta'],
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$TaskActivityLogToSupabase(
|
||||
TaskActivityLog instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'task_id': instance.taskId,
|
||||
'actor_id': instance.actorId,
|
||||
'action_type': instance.actionType,
|
||||
'meta': instance.meta,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<TaskActivityLog> _$TaskActivityLogFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return TaskActivityLog(
|
||||
id: data['id'] as String,
|
||||
taskId: data['task_id'] as String,
|
||||
actorId: data['actor_id'] == null ? null : data['actor_id'] as String?,
|
||||
actionType: data['action_type'] as String,
|
||||
meta: data['meta'] == null ? null : jsonDecode(data['meta']),
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$TaskActivityLogToSqlite(
|
||||
TaskActivityLog instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'task_id': instance.taskId,
|
||||
'actor_id': instance.actorId,
|
||||
'action_type': instance.actionType,
|
||||
'meta': instance.meta != null ? jsonEncode(instance.meta) : null,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [TaskActivityLog]
|
||||
class TaskActivityLogAdapter
|
||||
extends OfflineFirstWithSupabaseAdapter<TaskActivityLog> {
|
||||
TaskActivityLogAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'task_activity_logs';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'taskId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'task_id',
|
||||
),
|
||||
'actorId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'actor_id',
|
||||
),
|
||||
'actionType': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'action_type',
|
||||
),
|
||||
'meta': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'meta',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'taskId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'task_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'actorId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'actor_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'actionType': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'action_type',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'meta': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'meta',
|
||||
iterable: false,
|
||||
type: Map,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
TaskActivityLog instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'TaskActivityLog';
|
||||
|
||||
@override
|
||||
Future<TaskActivityLog> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$TaskActivityLogFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
TaskActivityLog input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$TaskActivityLogToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<TaskActivityLog> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$TaskActivityLogFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
TaskActivityLog input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$TaskActivityLogToSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,529 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<Task> _$TaskFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Task(
|
||||
id: data['id'] as String,
|
||||
ticketId: data['ticket_id'] == null ? null : data['ticket_id'] as String?,
|
||||
taskNumber: data['task_number'] == null
|
||||
? null
|
||||
: data['task_number'] as String?,
|
||||
title: data['title'] as String,
|
||||
description: data['description'] as String,
|
||||
officeId: data['office_id'] == null ? null : data['office_id'] as String?,
|
||||
status: data['status'] as String,
|
||||
priority: data['priority'] as int,
|
||||
queueOrder: data['queue_order'] == null
|
||||
? null
|
||||
: data['queue_order'] as int?,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
creatorId: data['creator_id'] == null
|
||||
? null
|
||||
: data['creator_id'] as String?,
|
||||
startedAt: data['started_at'] == null
|
||||
? null
|
||||
: data['started_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['started_at'] as String),
|
||||
completedAt: data['completed_at'] == null
|
||||
? null
|
||||
: data['completed_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['completed_at'] as String),
|
||||
requestedBy: data['requested_by'] == null
|
||||
? null
|
||||
: data['requested_by'] as String?,
|
||||
notedBy: data['noted_by'] == null ? null : data['noted_by'] as String?,
|
||||
receivedBy: data['received_by'] == null
|
||||
? null
|
||||
: data['received_by'] as String?,
|
||||
requestType: data['request_type'] == null
|
||||
? null
|
||||
: data['request_type'] as String?,
|
||||
requestTypeOther: data['request_type_other'] == null
|
||||
? null
|
||||
: data['request_type_other'] as String?,
|
||||
requestCategory: data['request_category'] == null
|
||||
? null
|
||||
: data['request_category'] as String?,
|
||||
actionTaken: data['action_taken'] == null
|
||||
? null
|
||||
: data['action_taken'] as String?,
|
||||
cancellationReason: data['cancellation_reason'] == null
|
||||
? null
|
||||
: data['cancellation_reason'] as String?,
|
||||
cancelledAt: data['cancelled_at'] == null
|
||||
? null
|
||||
: data['cancelled_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['cancelled_at'] as String),
|
||||
itJobPrinted: data['it_job_printed'] as bool,
|
||||
itJobPrintedAt: data['it_job_printed_at'] == null
|
||||
? null
|
||||
: data['it_job_printed_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['it_job_printed_at'] as String),
|
||||
itJobReceivedById: data['it_job_received_by_id'] == null
|
||||
? null
|
||||
: data['it_job_received_by_id'] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$TaskToSupabase(
|
||||
Task instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'ticket_id': instance.ticketId,
|
||||
'task_number': instance.taskNumber,
|
||||
'title': instance.title,
|
||||
'description': instance.description,
|
||||
'office_id': instance.officeId,
|
||||
'status': instance.status,
|
||||
'priority': instance.priority,
|
||||
'queue_order': instance.queueOrder,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'creator_id': instance.creatorId,
|
||||
'started_at': instance.startedAt?.toIso8601String(),
|
||||
'completed_at': instance.completedAt?.toIso8601String(),
|
||||
'requested_by': instance.requestedBy,
|
||||
'noted_by': instance.notedBy,
|
||||
'received_by': instance.receivedBy,
|
||||
'request_type': instance.requestType,
|
||||
'request_type_other': instance.requestTypeOther,
|
||||
'request_category': instance.requestCategory,
|
||||
'action_taken': instance.actionTaken,
|
||||
'cancellation_reason': instance.cancellationReason,
|
||||
'cancelled_at': instance.cancelledAt?.toIso8601String(),
|
||||
'it_job_printed': instance.itJobPrinted,
|
||||
'it_job_printed_at': instance.itJobPrintedAt?.toIso8601String(),
|
||||
'it_job_received_by_id': instance.itJobReceivedById,
|
||||
};
|
||||
}
|
||||
|
||||
Future<Task> _$TaskFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Task(
|
||||
id: data['id'] as String,
|
||||
ticketId: data['ticket_id'] == null ? null : data['ticket_id'] as String?,
|
||||
taskNumber: data['task_number'] == null
|
||||
? null
|
||||
: data['task_number'] as String?,
|
||||
title: data['title'] as String,
|
||||
description: data['description'] as String,
|
||||
officeId: data['office_id'] == null ? null : data['office_id'] as String?,
|
||||
status: data['status'] as String,
|
||||
priority: data['priority'] as int,
|
||||
queueOrder: data['queue_order'] == null
|
||||
? null
|
||||
: data['queue_order'] as int?,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
creatorId: data['creator_id'] == null
|
||||
? null
|
||||
: data['creator_id'] as String?,
|
||||
startedAt: data['started_at'] == null
|
||||
? null
|
||||
: data['started_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['started_at'] as String),
|
||||
completedAt: data['completed_at'] == null
|
||||
? null
|
||||
: data['completed_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['completed_at'] as String),
|
||||
requestedBy: data['requested_by'] == null
|
||||
? null
|
||||
: data['requested_by'] as String?,
|
||||
notedBy: data['noted_by'] == null ? null : data['noted_by'] as String?,
|
||||
receivedBy: data['received_by'] == null
|
||||
? null
|
||||
: data['received_by'] as String?,
|
||||
requestType: data['request_type'] == null
|
||||
? null
|
||||
: data['request_type'] as String?,
|
||||
requestTypeOther: data['request_type_other'] == null
|
||||
? null
|
||||
: data['request_type_other'] as String?,
|
||||
requestCategory: data['request_category'] == null
|
||||
? null
|
||||
: data['request_category'] as String?,
|
||||
actionTaken: data['action_taken'] == null
|
||||
? null
|
||||
: data['action_taken'] as String?,
|
||||
cancellationReason: data['cancellation_reason'] == null
|
||||
? null
|
||||
: data['cancellation_reason'] as String?,
|
||||
cancelledAt: data['cancelled_at'] == null
|
||||
? null
|
||||
: data['cancelled_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['cancelled_at'] as String),
|
||||
itJobPrinted: data['it_job_printed'] == 1,
|
||||
itJobPrintedAt: data['it_job_printed_at'] == null
|
||||
? null
|
||||
: data['it_job_printed_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['it_job_printed_at'] as String),
|
||||
itJobReceivedById: data['it_job_received_by_id'] == null
|
||||
? null
|
||||
: data['it_job_received_by_id'] as String?,
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$TaskToSqlite(
|
||||
Task instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'ticket_id': instance.ticketId,
|
||||
'task_number': instance.taskNumber,
|
||||
'title': instance.title,
|
||||
'description': instance.description,
|
||||
'office_id': instance.officeId,
|
||||
'status': instance.status,
|
||||
'priority': instance.priority,
|
||||
'queue_order': instance.queueOrder,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'creator_id': instance.creatorId,
|
||||
'started_at': instance.startedAt?.toIso8601String(),
|
||||
'completed_at': instance.completedAt?.toIso8601String(),
|
||||
'requested_by': instance.requestedBy,
|
||||
'noted_by': instance.notedBy,
|
||||
'received_by': instance.receivedBy,
|
||||
'request_type': instance.requestType,
|
||||
'request_type_other': instance.requestTypeOther,
|
||||
'request_category': instance.requestCategory,
|
||||
'action_taken': instance.actionTaken,
|
||||
'cancellation_reason': instance.cancellationReason,
|
||||
'cancelled_at': instance.cancelledAt?.toIso8601String(),
|
||||
'it_job_printed': instance.itJobPrinted ? 1 : 0,
|
||||
'it_job_printed_at': instance.itJobPrintedAt?.toIso8601String(),
|
||||
'it_job_received_by_id': instance.itJobReceivedById,
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [Task]
|
||||
class TaskAdapter extends OfflineFirstWithSupabaseAdapter<Task> {
|
||||
TaskAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'tasks';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'ticketId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'ticket_id',
|
||||
),
|
||||
'taskNumber': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'task_number',
|
||||
),
|
||||
'title': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'title',
|
||||
),
|
||||
'description': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'description',
|
||||
),
|
||||
'officeId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'office_id',
|
||||
),
|
||||
'status': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
),
|
||||
'priority': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'priority',
|
||||
),
|
||||
'queueOrder': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'queue_order',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
'creatorId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'creator_id',
|
||||
),
|
||||
'startedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'started_at',
|
||||
),
|
||||
'completedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'completed_at',
|
||||
),
|
||||
'requestedBy': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_by',
|
||||
),
|
||||
'notedBy': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'noted_by',
|
||||
),
|
||||
'receivedBy': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'received_by',
|
||||
),
|
||||
'requestType': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_type',
|
||||
),
|
||||
'requestTypeOther': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_type_other',
|
||||
),
|
||||
'requestCategory': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_category',
|
||||
),
|
||||
'actionTaken': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'action_taken',
|
||||
),
|
||||
'cancellationReason': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'cancellation_reason',
|
||||
),
|
||||
'cancelledAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'cancelled_at',
|
||||
),
|
||||
'itJobPrinted': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'it_job_printed',
|
||||
),
|
||||
'itJobPrintedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'it_job_printed_at',
|
||||
),
|
||||
'itJobReceivedById': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'it_job_received_by_id',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'ticketId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'ticket_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'taskNumber': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'task_number',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'title': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'title',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'description': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'description',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'officeId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'office_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'status': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'priority': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'priority',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'queueOrder': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'queue_order',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'creatorId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'creator_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'startedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'started_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'completedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'completed_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'requestedBy': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'requested_by',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'notedBy': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'noted_by',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'receivedBy': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'received_by',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestType': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_type',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestTypeOther': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_type_other',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'requestCategory': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'request_category',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'actionTaken': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'action_taken',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'cancellationReason': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'cancellation_reason',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'cancelledAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'cancelled_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'itJobPrinted': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'it_job_printed',
|
||||
iterable: false,
|
||||
type: bool,
|
||||
),
|
||||
'itJobPrintedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'it_job_printed_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'itJobReceivedById': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'it_job_received_by_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
Task instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'Task';
|
||||
|
||||
@override
|
||||
Future<Task> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$TaskFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
Task input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async =>
|
||||
await _$TaskToSupabase(input, provider: provider, repository: repository);
|
||||
@override
|
||||
Future<Task> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async =>
|
||||
await _$TaskFromSqlite(input, provider: provider, repository: repository);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
Task input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async =>
|
||||
await _$TaskToSqlite(input, provider: provider, repository: repository);
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<Team> _$TeamFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Team(
|
||||
id: data['id'] as String,
|
||||
name: data['name'] as String,
|
||||
leaderId: data['leader_id'] as String,
|
||||
officeIds: data['office_ids'].toList().cast<String>(),
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
color: data['color'] == null ? null : data['color'] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$TeamToSupabase(
|
||||
Team instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'name': instance.name,
|
||||
'leader_id': instance.leaderId,
|
||||
'office_ids': instance.officeIds,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'color': instance.color,
|
||||
};
|
||||
}
|
||||
|
||||
Future<Team> _$TeamFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Team(
|
||||
id: data['id'] as String,
|
||||
name: data['name'] as String,
|
||||
leaderId: data['leader_id'] as String,
|
||||
officeIds: jsonDecode(data['office_ids']).toList().cast<String>(),
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
color: data['color'] == null ? null : data['color'] as String?,
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$TeamToSqlite(
|
||||
Team instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'name': instance.name,
|
||||
'leader_id': instance.leaderId,
|
||||
'office_ids': jsonEncode(instance.officeIds),
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'color': instance.color,
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [Team]
|
||||
class TeamAdapter extends OfflineFirstWithSupabaseAdapter<Team> {
|
||||
TeamAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'teams';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'name': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'name',
|
||||
),
|
||||
'leaderId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'leader_id',
|
||||
),
|
||||
'officeIds': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'office_ids',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
'color': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'color',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'name': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'name',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'leaderId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'leader_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'officeIds': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'office_ids',
|
||||
iterable: true,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'color': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'color',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
Team instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'Team';
|
||||
|
||||
@override
|
||||
Future<Team> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$TeamFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
Team input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async =>
|
||||
await _$TeamToSupabase(input, provider: provider, repository: repository);
|
||||
@override
|
||||
Future<Team> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async =>
|
||||
await _$TeamFromSqlite(input, provider: provider, repository: repository);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
Team input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async =>
|
||||
await _$TeamToSqlite(input, provider: provider, repository: repository);
|
||||
}
|
||||
@@ -0,0 +1,277 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
part of '../brick.g.dart';
|
||||
|
||||
Future<Ticket> _$TicketFromSupabase(
|
||||
Map<String, dynamic> data, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Ticket(
|
||||
id: data['id'] as String,
|
||||
subject: data['subject'] as String,
|
||||
description: data['description'] as String,
|
||||
officeId: data['office_id'] as String,
|
||||
status: data['status'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
creatorId: data['creator_id'] == null
|
||||
? null
|
||||
: data['creator_id'] as String?,
|
||||
respondedAt: data['responded_at'] == null
|
||||
? null
|
||||
: data['responded_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['responded_at'] as String),
|
||||
promotedAt: data['promoted_at'] == null
|
||||
? null
|
||||
: data['promoted_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['promoted_at'] as String),
|
||||
closedAt: data['closed_at'] == null
|
||||
? null
|
||||
: data['closed_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['closed_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$TicketToSupabase(
|
||||
Ticket instance, {
|
||||
required SupabaseProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'subject': instance.subject,
|
||||
'description': instance.description,
|
||||
'office_id': instance.officeId,
|
||||
'status': instance.status,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'creator_id': instance.creatorId,
|
||||
'responded_at': instance.respondedAt?.toIso8601String(),
|
||||
'promoted_at': instance.promotedAt?.toIso8601String(),
|
||||
'closed_at': instance.closedAt?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
Future<Ticket> _$TicketFromSqlite(
|
||||
Map<String, dynamic> data, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return Ticket(
|
||||
id: data['id'] as String,
|
||||
subject: data['subject'] as String,
|
||||
description: data['description'] as String,
|
||||
officeId: data['office_id'] as String,
|
||||
status: data['status'] as String,
|
||||
createdAt: DateTime.parse(data['created_at'] as String),
|
||||
creatorId: data['creator_id'] == null
|
||||
? null
|
||||
: data['creator_id'] as String?,
|
||||
respondedAt: data['responded_at'] == null
|
||||
? null
|
||||
: data['responded_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['responded_at'] as String),
|
||||
promotedAt: data['promoted_at'] == null
|
||||
? null
|
||||
: data['promoted_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['promoted_at'] as String),
|
||||
closedAt: data['closed_at'] == null
|
||||
? null
|
||||
: data['closed_at'] == null
|
||||
? null
|
||||
: DateTime.tryParse(data['closed_at'] as String),
|
||||
)..primaryKey = data['_brick_id'] as int;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _$TicketToSqlite(
|
||||
Ticket instance, {
|
||||
required SqliteProvider provider,
|
||||
OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async {
|
||||
return {
|
||||
'id': instance.id,
|
||||
'subject': instance.subject,
|
||||
'description': instance.description,
|
||||
'office_id': instance.officeId,
|
||||
'status': instance.status,
|
||||
'created_at': instance.createdAt.toIso8601String(),
|
||||
'creator_id': instance.creatorId,
|
||||
'responded_at': instance.respondedAt?.toIso8601String(),
|
||||
'promoted_at': instance.promotedAt?.toIso8601String(),
|
||||
'closed_at': instance.closedAt?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
/// Construct a [Ticket]
|
||||
class TicketAdapter extends OfflineFirstWithSupabaseAdapter<Ticket> {
|
||||
TicketAdapter();
|
||||
|
||||
@override
|
||||
final supabaseTableName = 'tickets';
|
||||
@override
|
||||
final defaultToNull = true;
|
||||
@override
|
||||
final fieldsToSupabaseColumns = {
|
||||
'id': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
),
|
||||
'subject': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'subject',
|
||||
),
|
||||
'description': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'description',
|
||||
),
|
||||
'officeId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'office_id',
|
||||
),
|
||||
'status': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
),
|
||||
'createdAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
),
|
||||
'creatorId': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'creator_id',
|
||||
),
|
||||
'respondedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'responded_at',
|
||||
),
|
||||
'promotedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'promoted_at',
|
||||
),
|
||||
'closedAt': const RuntimeSupabaseColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'closed_at',
|
||||
),
|
||||
};
|
||||
@override
|
||||
final ignoreDuplicates = false;
|
||||
@override
|
||||
final uniqueFields = {};
|
||||
@override
|
||||
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
|
||||
'primaryKey': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: '_brick_id',
|
||||
iterable: false,
|
||||
type: int,
|
||||
),
|
||||
'id': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'subject': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'subject',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'description': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'description',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'officeId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'office_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'status': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'status',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'createdAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'created_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'creatorId': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'creator_id',
|
||||
iterable: false,
|
||||
type: String,
|
||||
),
|
||||
'respondedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'responded_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'promotedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'promoted_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
'closedAt': const RuntimeSqliteColumnDefinition(
|
||||
association: false,
|
||||
columnName: 'closed_at',
|
||||
iterable: false,
|
||||
type: DateTime,
|
||||
),
|
||||
};
|
||||
@override
|
||||
Future<int?> primaryKeyByUniqueColumns(
|
||||
Ticket instance,
|
||||
DatabaseExecutor executor,
|
||||
) async => instance.primaryKey;
|
||||
@override
|
||||
final String tableName = 'Ticket';
|
||||
|
||||
@override
|
||||
Future<Ticket> fromSupabase(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$TicketFromSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSupabase(
|
||||
Ticket input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$TicketToSupabase(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Ticket> fromSqlite(
|
||||
Map<String, dynamic> input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async => await _$TicketFromSqlite(
|
||||
input,
|
||||
provider: provider,
|
||||
repository: repository,
|
||||
);
|
||||
@override
|
||||
Future<Map<String, dynamic>> toSqlite(
|
||||
Ticket input, {
|
||||
required provider,
|
||||
covariant OfflineFirstWithSupabaseRepository? repository,
|
||||
}) async =>
|
||||
await _$TicketToSqlite(input, provider: provider, repository: repository);
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
// ignore: unused_import, unused_shown_name, unnecessary_import
|
||||
import 'package:brick_core/query.dart';
|
||||
// ignore: unused_import, unused_shown_name, unnecessary_import
|
||||
import 'package:brick_sqlite/db.dart';
|
||||
// ignore: unused_import, unused_shown_name, unnecessary_import
|
||||
import 'package:brick_offline_first_with_supabase/brick_offline_first_with_supabase.dart';
|
||||
// ignore: unused_import, unused_shown_name, unnecessary_import
|
||||
import 'package:brick_sqlite/brick_sqlite.dart';
|
||||
// ignore: unused_import, unused_shown_name, unnecessary_import
|
||||
import 'package:brick_supabase/brick_supabase.dart';
|
||||
// ignore: unused_import, unused_shown_name, unnecessary_import
|
||||
import '../utils/app_time.dart';
|
||||
// ignore: unused_import, unused_shown_name, unnecessary_import
|
||||
import 'package:tasq/models/team_member.dart';// GENERATED CODE DO NOT EDIT
|
||||
// ignore: unused_import
|
||||
import 'dart:convert';
|
||||
import 'package:brick_sqlite/brick_sqlite.dart' show SqliteModel, SqliteAdapter, SqliteModelDictionary, RuntimeSqliteColumnDefinition, SqliteProvider;
|
||||
import 'package:brick_supabase/brick_supabase.dart' show SupabaseProvider, SupabaseModel, SupabaseAdapter, SupabaseModelDictionary;
|
||||
// ignore: unused_import, unused_shown_name
|
||||
import 'package:brick_offline_first/brick_offline_first.dart' show RuntimeOfflineFirstDefinition;
|
||||
// ignore: unused_import, unused_shown_name
|
||||
import 'package:sqflite_common/sqlite_api.dart' show DatabaseExecutor;
|
||||
|
||||
import '../models/announcement.model.dart';
|
||||
import '../models/announcement_comment.model.dart';
|
||||
import '../models/attendance_log.model.dart';
|
||||
import '../models/chat_message.model.dart';
|
||||
import '../models/duty_schedule.model.dart';
|
||||
import '../models/it_service_request.model.dart';
|
||||
import '../models/it_service_request_action.model.dart';
|
||||
import '../models/it_service_request_activity_log.model.dart';
|
||||
import '../models/it_service_request_assignment.model.dart';
|
||||
import '../models/leave_of_absence.model.dart';
|
||||
import '../models/notification_item.model.dart';
|
||||
import '../models/office.model.dart';
|
||||
import '../models/pass_slip.model.dart';
|
||||
import '../models/profile.model.dart';
|
||||
import '../models/service.model.dart';
|
||||
import '../models/swap_request.model.dart';
|
||||
import '../models/task.model.dart';
|
||||
import '../models/task_activity_log.model.dart';
|
||||
import '../models/team.model.dart';
|
||||
import '../models/ticket.model.dart';
|
||||
|
||||
part 'adapters/announcement_adapter.g.dart';
|
||||
part 'adapters/announcement_comment_adapter.g.dart';
|
||||
part 'adapters/attendance_log_adapter.g.dart';
|
||||
part 'adapters/chat_message_adapter.g.dart';
|
||||
part 'adapters/duty_schedule_adapter.g.dart';
|
||||
part 'adapters/it_service_request_adapter.g.dart';
|
||||
part 'adapters/it_service_request_action_adapter.g.dart';
|
||||
part 'adapters/it_service_request_activity_log_adapter.g.dart';
|
||||
part 'adapters/it_service_request_assignment_adapter.g.dart';
|
||||
part 'adapters/leave_of_absence_adapter.g.dart';
|
||||
part 'adapters/notification_item_adapter.g.dart';
|
||||
part 'adapters/office_adapter.g.dart';
|
||||
part 'adapters/pass_slip_adapter.g.dart';
|
||||
part 'adapters/profile_adapter.g.dart';
|
||||
part 'adapters/service_adapter.g.dart';
|
||||
part 'adapters/swap_request_adapter.g.dart';
|
||||
part 'adapters/task_adapter.g.dart';
|
||||
part 'adapters/task_activity_log_adapter.g.dart';
|
||||
part 'adapters/team_adapter.g.dart';
|
||||
part 'adapters/ticket_adapter.g.dart';
|
||||
|
||||
/// Supabase mappings should only be used when initializing a [SupabaseProvider]
|
||||
final Map<Type, SupabaseAdapter<SupabaseModel>> supabaseMappings = {
|
||||
Announcement: AnnouncementAdapter(),
|
||||
AnnouncementComment: AnnouncementCommentAdapter(),
|
||||
AttendanceLog: AttendanceLogAdapter(),
|
||||
ChatMessage: ChatMessageAdapter(),
|
||||
DutySchedule: DutyScheduleAdapter(),
|
||||
ItServiceRequest: ItServiceRequestAdapter(),
|
||||
ItServiceRequestAction: ItServiceRequestActionAdapter(),
|
||||
ItServiceRequestActivityLog: ItServiceRequestActivityLogAdapter(),
|
||||
ItServiceRequestAssignment: ItServiceRequestAssignmentAdapter(),
|
||||
LeaveOfAbsence: LeaveOfAbsenceAdapter(),
|
||||
NotificationItem: NotificationItemAdapter(),
|
||||
Office: OfficeAdapter(),
|
||||
PassSlip: PassSlipAdapter(),
|
||||
Profile: ProfileAdapter(),
|
||||
Service: ServiceAdapter(),
|
||||
SwapRequest: SwapRequestAdapter(),
|
||||
Task: TaskAdapter(),
|
||||
TaskActivityLog: TaskActivityLogAdapter(),
|
||||
Team: TeamAdapter(),
|
||||
Ticket: TicketAdapter()
|
||||
};
|
||||
final supabaseModelDictionary = SupabaseModelDictionary(supabaseMappings);
|
||||
|
||||
/// Sqlite mappings should only be used when initializing a [SqliteProvider]
|
||||
final Map<Type, SqliteAdapter<SqliteModel>> sqliteMappings = {
|
||||
Announcement: AnnouncementAdapter(),
|
||||
AnnouncementComment: AnnouncementCommentAdapter(),
|
||||
AttendanceLog: AttendanceLogAdapter(),
|
||||
ChatMessage: ChatMessageAdapter(),
|
||||
DutySchedule: DutyScheduleAdapter(),
|
||||
ItServiceRequest: ItServiceRequestAdapter(),
|
||||
ItServiceRequestAction: ItServiceRequestActionAdapter(),
|
||||
ItServiceRequestActivityLog: ItServiceRequestActivityLogAdapter(),
|
||||
ItServiceRequestAssignment: ItServiceRequestAssignmentAdapter(),
|
||||
LeaveOfAbsence: LeaveOfAbsenceAdapter(),
|
||||
NotificationItem: NotificationItemAdapter(),
|
||||
Office: OfficeAdapter(),
|
||||
PassSlip: PassSlipAdapter(),
|
||||
Profile: ProfileAdapter(),
|
||||
Service: ServiceAdapter(),
|
||||
SwapRequest: SwapRequestAdapter(),
|
||||
Task: TaskAdapter(),
|
||||
TaskActivityLog: TaskActivityLogAdapter(),
|
||||
Team: TeamAdapter(),
|
||||
Ticket: TicketAdapter()
|
||||
};
|
||||
final sqliteModelDictionary = SqliteModelDictionary(sqliteMappings);
|
||||
@@ -0,0 +1,63 @@
|
||||
import 'package:flutter/foundation.dart' show debugPrint;
|
||||
|
||||
import 'repository.dart';
|
||||
|
||||
/// Returns the locally cached list of [T] from Brick SQLite, or `[]` if Brick
|
||||
/// isn't configured or the read fails. Never throws.
|
||||
///
|
||||
/// Use this as `onOfflineData` for [StreamRecoveryWrapper] so that screens
|
||||
/// render data from the local cache when the device is offline:
|
||||
///
|
||||
/// ```dart
|
||||
/// onOfflineData: () => cachedListFromBrick<Task>(),
|
||||
/// ```
|
||||
Future<List<T>> cachedListFromBrick<T extends OfflineFirstWithSupabaseModel>() async {
|
||||
if (!AppRepository.isConfigured) {
|
||||
debugPrint('[cachedListFromBrick<$T>] BRICK NOT CONFIGURED — returning []');
|
||||
return const [];
|
||||
}
|
||||
try {
|
||||
final rows = await AppRepository.instance.get<T>(
|
||||
policy: OfflineFirstGetPolicy.localOnly,
|
||||
);
|
||||
if (rows.isEmpty) {
|
||||
debugPrint('[cachedListFromBrick<$T>] empty cache (0 rows)');
|
||||
}
|
||||
return rows;
|
||||
} catch (e) {
|
||||
debugPrint('[cachedListFromBrick<$T>] failed: $e');
|
||||
return const [];
|
||||
}
|
||||
}
|
||||
|
||||
/// Mirrors a batch of model rows into Brick's local SQLite cache as a
|
||||
/// fire-and-forget side effect. Errors are caught and logged.
|
||||
///
|
||||
/// Use this as `onCacheMirror` for [StreamRecoveryWrapper] so that every
|
||||
/// realtime emission keeps the local cache fresh — required for the cold-
|
||||
/// launch-offline experience.
|
||||
///
|
||||
/// ```dart
|
||||
/// onCacheMirror: (rows) => mirrorBatchToBrick<Task>(rows, tag: 'tasks'),
|
||||
/// ```
|
||||
void mirrorBatchToBrick<T extends OfflineFirstWithSupabaseModel>(
|
||||
List<T> rows, {
|
||||
String tag = 'mirror',
|
||||
}) {
|
||||
if (!AppRepository.isConfigured) return;
|
||||
// Use sqliteProvider directly (local-only write). AppRepository.upsert is
|
||||
// bidirectional — it re-POSTs rows to Supabase, which triggers RLS
|
||||
// violations for other users' records and deadlocks from concurrent writes.
|
||||
// Sequential processing prevents SQLite lock contention across providers.
|
||||
// ignore: discarded_futures
|
||||
Future(() async {
|
||||
for (final row in rows) {
|
||||
try {
|
||||
await AppRepository.instance.sqliteProvider
|
||||
.upsert<T>(row, repository: AppRepository.instance);
|
||||
} catch (e) {
|
||||
debugPrint('[$tag] mirror upsert<$T> failed: $e');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,360 @@
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/foundation.dart' show debugPrint, kIsWeb;
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
import '../models/announcement.model.dart';
|
||||
import '../models/announcement_comment.model.dart';
|
||||
import '../models/attendance_log.model.dart';
|
||||
import '../models/duty_schedule.model.dart';
|
||||
import '../models/it_service_request.model.dart';
|
||||
import '../models/leave_of_absence.model.dart';
|
||||
import '../models/notification_item.model.dart';
|
||||
import '../models/office.model.dart';
|
||||
import '../models/pass_slip.model.dart';
|
||||
import '../models/profile.model.dart';
|
||||
import '../models/service.model.dart';
|
||||
import '../models/swap_request.model.dart';
|
||||
import '../models/task.model.dart';
|
||||
import '../models/team.model.dart';
|
||||
import '../models/ticket.model.dart';
|
||||
import 'repository.dart';
|
||||
|
||||
/// Proactively seeds the local Brick SQLite cache with the data the app needs
|
||||
/// to render correctly when launched offline.
|
||||
///
|
||||
/// Triggered:
|
||||
/// - After successful login.
|
||||
/// - After the connectivity monitor flips offline → online.
|
||||
/// - On a 1-hour timer in the foreground (defensive refresh).
|
||||
///
|
||||
/// Never throws — a single table failure must not abort the rest. Each table
|
||||
/// is wrapped in try/catch and only logs the error.
|
||||
///
|
||||
/// Web is a no-op because Brick's SQLite is unavailable on web.
|
||||
class CacheWarmer {
|
||||
CacheWarmer._();
|
||||
|
||||
/// Window of mutable data to keep locally. 30 days is enough for the
|
||||
/// "month of tasks/tickets" the user requested without bloating SQLite.
|
||||
static const Duration window = Duration(days: 30);
|
||||
|
||||
/// SharedPreferences keys for association tables (no PK → not Brick models).
|
||||
static const _kTeamMembersKey = 'cache_team_members_json';
|
||||
static const _kUserOfficesKey = 'cache_user_offices_json';
|
||||
|
||||
/// Foreground timer handle so [start]/[stop] is idempotent.
|
||||
static Timer? _refreshTimer;
|
||||
|
||||
/// True when at least one warm has completed since app start.
|
||||
static bool _hasWarmedOnce = false;
|
||||
static bool get hasWarmedOnce => _hasWarmedOnce;
|
||||
|
||||
/// Single-flight guard to prevent overlapping warms.
|
||||
static Future<void>? _inflight;
|
||||
|
||||
/// Warm every cacheable table. Safe to call repeatedly.
|
||||
static Future<void> warmAll(SupabaseClient client) {
|
||||
if (kIsWeb) return Future.value();
|
||||
if (!AppRepository.isConfigured) return Future.value();
|
||||
final existing = _inflight;
|
||||
if (existing != null) return existing;
|
||||
|
||||
final future = _runWarmAll(client);
|
||||
_inflight = future;
|
||||
return future.whenComplete(() => _inflight = null);
|
||||
}
|
||||
|
||||
static Future<void> _runWarmAll(SupabaseClient client) async {
|
||||
final stopwatch = Stopwatch()..start();
|
||||
final since = DateTime.now().toUtc().subtract(window);
|
||||
final sinceIso = since.toIso8601String();
|
||||
|
||||
debugPrint('[CacheWarmer] starting (since=$sinceIso)');
|
||||
|
||||
// Run reference + per-module warms in parallel — a single failure in one
|
||||
// table must not block the others.
|
||||
await Future.wait<void>([
|
||||
_safe('reference', () => _warmReference(client)),
|
||||
_safe('tasks', () => _warmTasks(client, sinceIso)),
|
||||
_safe('tickets', () => _warmTickets(client, sinceIso)),
|
||||
_safe('itsr', () => _warmItServiceRequests(client, sinceIso)),
|
||||
_safe('announcements', () => _warmAnnouncements(client, sinceIso)),
|
||||
_safe('attendance', () => _warmAttendance(client, sinceIso)),
|
||||
_safe('pass_slips', () => _warmPassSlips(client, sinceIso)),
|
||||
_safe('leaves', () => _warmLeaves(client, sinceIso)),
|
||||
_safe('duty_schedules', () => _warmDutySchedules(client, sinceIso)),
|
||||
_safe('swap_requests', () => _warmSwapRequests(client, sinceIso)),
|
||||
_safe('notifications', () => _warmNotifications(client, sinceIso)),
|
||||
]);
|
||||
|
||||
_hasWarmedOnce = true;
|
||||
stopwatch.stop();
|
||||
debugPrint('[CacheWarmer] done in ${stopwatch.elapsedMilliseconds}ms');
|
||||
}
|
||||
|
||||
/// Schedule a periodic re-warm. Idempotent.
|
||||
static void startPeriodicRefresh(SupabaseClient client) {
|
||||
if (kIsWeb) return;
|
||||
_refreshTimer?.cancel();
|
||||
_refreshTimer = Timer.periodic(const Duration(hours: 1), (_) {
|
||||
warmAll(client);
|
||||
});
|
||||
}
|
||||
|
||||
/// Cancel periodic re-warm (e.g. on sign-out).
|
||||
static void stopPeriodicRefresh() {
|
||||
_refreshTimer?.cancel();
|
||||
_refreshTimer = null;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Reference data — small, rarely-mutating. Pulled in full.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
static Future<void> _warmReference(SupabaseClient client) async {
|
||||
await Future.wait<void>([
|
||||
_safe('offices', () async {
|
||||
final rows = await client.from('offices').select();
|
||||
for (final row in rows) {
|
||||
await _localUpsert<Office>(Office.fromMap(row));
|
||||
}
|
||||
}),
|
||||
_safe('services', () async {
|
||||
final rows = await client.from('services').select();
|
||||
for (final row in rows) {
|
||||
await _localUpsert<Service>(Service.fromMap(row));
|
||||
}
|
||||
}),
|
||||
_safe('profiles', () async {
|
||||
final rows = await client.from('profiles').select();
|
||||
for (final row in rows) {
|
||||
await _localUpsert<Profile>(Profile.fromMap(row));
|
||||
}
|
||||
}),
|
||||
_safe('teams', () async {
|
||||
final rows = await client.from('teams').select();
|
||||
for (final row in rows) {
|
||||
await _localUpsert<Team>(Team.fromMap(row));
|
||||
}
|
||||
}),
|
||||
// Association tables have composite PKs, so we cache them as JSON in
|
||||
// SharedPreferences instead of Brick. The list is small and read-only.
|
||||
_safe('team_members', () async {
|
||||
final rows = await client.from('team_members').select();
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setString(_kTeamMembersKey, jsonEncode(rows));
|
||||
}),
|
||||
_safe('user_offices', () async {
|
||||
final rows = await client.from('user_offices').select();
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setString(_kUserOfficesKey, jsonEncode(rows));
|
||||
}),
|
||||
]);
|
||||
}
|
||||
|
||||
/// Read cached team_members rows from SharedPreferences.
|
||||
/// Returns the same shape as the Supabase select (`[{team_id, user_id}, ...]`).
|
||||
static Future<List<Map<String, dynamic>>> readCachedTeamMembers() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final raw = prefs.getString(_kTeamMembersKey);
|
||||
if (raw == null) return const [];
|
||||
try {
|
||||
final list = jsonDecode(raw);
|
||||
if (list is! List) return const [];
|
||||
return list.cast<Map<String, dynamic>>();
|
||||
} catch (_) {
|
||||
return const [];
|
||||
}
|
||||
}
|
||||
|
||||
/// Read cached user_offices rows from SharedPreferences.
|
||||
static Future<List<Map<String, dynamic>>> readCachedUserOffices() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final raw = prefs.getString(_kUserOfficesKey);
|
||||
if (raw == null) return const [];
|
||||
try {
|
||||
final list = jsonDecode(raw);
|
||||
if (list is! List) return const [];
|
||||
return list.cast<Map<String, dynamic>>();
|
||||
} catch (_) {
|
||||
return const [];
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Per-module warms — windowed by created_at >= since
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
static Future<void> _warmTasks(SupabaseClient client, String sinceIso) async {
|
||||
final rows = await client
|
||||
.from('tasks')
|
||||
.select()
|
||||
.gte('created_at', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<Task>(Task.fromMap(row));
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> _warmTickets(
|
||||
SupabaseClient client,
|
||||
String sinceIso,
|
||||
) async {
|
||||
final rows = await client
|
||||
.from('tickets')
|
||||
.select()
|
||||
.gte('created_at', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<Ticket>(Ticket.fromMap(row));
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> _warmItServiceRequests(
|
||||
SupabaseClient client,
|
||||
String sinceIso,
|
||||
) async {
|
||||
final rows = await client
|
||||
.from('it_service_requests')
|
||||
.select()
|
||||
.gte('created_at', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<ItServiceRequest>(ItServiceRequest.fromMap(row));
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> _warmAnnouncements(
|
||||
SupabaseClient client,
|
||||
String sinceIso,
|
||||
) async {
|
||||
final rows = await client
|
||||
.from('announcements')
|
||||
.select()
|
||||
.gte('created_at', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<Announcement>(Announcement.fromMap(row));
|
||||
}
|
||||
// Also pull comments for the windowed announcements so detail screens have
|
||||
// them offline.
|
||||
try {
|
||||
final commentRows = await client
|
||||
.from('announcement_comments')
|
||||
.select()
|
||||
.gte('created_at', sinceIso);
|
||||
for (final row in commentRows) {
|
||||
await _localUpsert<AnnouncementComment>(
|
||||
AnnouncementComment.fromMap(row),
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
debugPrint('[CacheWarmer] announcement_comments failed: $e');
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> _warmAttendance(
|
||||
SupabaseClient client,
|
||||
String sinceIso,
|
||||
) async {
|
||||
final rows = await client
|
||||
.from('attendance_logs')
|
||||
.select()
|
||||
.gte('check_in_at', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<AttendanceLog>(AttendanceLog.fromMap(row));
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> _warmPassSlips(
|
||||
SupabaseClient client,
|
||||
String sinceIso,
|
||||
) async {
|
||||
final rows = await client
|
||||
.from('pass_slips')
|
||||
.select()
|
||||
.gte('created_at', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<PassSlip>(PassSlip.fromMap(row));
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> _warmLeaves(
|
||||
SupabaseClient client,
|
||||
String sinceIso,
|
||||
) async {
|
||||
final rows = await client
|
||||
.from('leave_of_absence')
|
||||
.select()
|
||||
.gte('created_at', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<LeaveOfAbsence>(LeaveOfAbsence.fromMap(row));
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> _warmDutySchedules(
|
||||
SupabaseClient client,
|
||||
String sinceIso,
|
||||
) async {
|
||||
// Duty schedules are upcoming-focused; pull a wider window so the user
|
||||
// can see today + the next several weeks while offline.
|
||||
final rows = await client
|
||||
.from('duty_schedules')
|
||||
.select()
|
||||
.gte('start_time', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<DutySchedule>(DutySchedule.fromMap(row));
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> _warmSwapRequests(
|
||||
SupabaseClient client,
|
||||
String sinceIso,
|
||||
) async {
|
||||
final rows = await client
|
||||
.from('swap_requests')
|
||||
.select()
|
||||
.gte('created_at', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<SwapRequest>(SwapRequest.fromMap(row));
|
||||
}
|
||||
}
|
||||
|
||||
static Future<void> _warmNotifications(
|
||||
SupabaseClient client,
|
||||
String sinceIso,
|
||||
) async {
|
||||
final rows = await client
|
||||
.from('notifications')
|
||||
.select()
|
||||
.gte('created_at', sinceIso);
|
||||
for (final row in rows) {
|
||||
await _localUpsert<NotificationItem>(NotificationItem.fromMap(row));
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Helpers
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
/// Writes [model] to local SQLite only, bypassing Brick's bidirectional
|
||||
/// sync. AppRepository.upsert would re-POST rows to Supabase, causing RLS
|
||||
/// violations for other users' records and deadlocks from concurrent writes.
|
||||
static Future<void> _localUpsert<T extends OfflineFirstWithSupabaseModel>(
|
||||
T model,
|
||||
) async {
|
||||
await AppRepository.instance.sqliteProvider
|
||||
.upsert<T>(model, repository: AppRepository.instance);
|
||||
}
|
||||
|
||||
static Future<void> _safe(String label, Future<void> Function() task) async {
|
||||
try {
|
||||
await task();
|
||||
} catch (e, st) {
|
||||
debugPrint('[CacheWarmer] $label failed: $e');
|
||||
assert(() {
|
||||
debugPrint('$st');
|
||||
return true;
|
||||
}());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,502 @@
|
||||
// GENERATED CODE EDIT WITH CAUTION
|
||||
// THIS FILE **WILL NOT** BE REGENERATED
|
||||
// This file should be version controlled and can be manually edited.
|
||||
part of 'schema.g.dart';
|
||||
|
||||
// While migrations are intelligently created, the difference between some commands, such as
|
||||
// DropTable vs. RenameTable, cannot be determined. For this reason, please review migrations after
|
||||
// they are created to ensure the correct inference was made.
|
||||
|
||||
// The migration version must **always** mirror the file name
|
||||
|
||||
const List<MigrationCommand> _migration_20260411041808_up = [
|
||||
InsertTable('Announcement'),
|
||||
InsertTable('AnnouncementComment'),
|
||||
InsertTable('AttendanceLog'),
|
||||
InsertTable('ChatMessage'),
|
||||
InsertTable('DutySchedule'),
|
||||
InsertTable('ItServiceRequest'),
|
||||
InsertTable('ItServiceRequestAction'),
|
||||
InsertTable('ItServiceRequestActivityLog'),
|
||||
InsertTable('ItServiceRequestAssignment'),
|
||||
InsertTable('LeaveOfAbsence'),
|
||||
InsertTable('NotificationItem'),
|
||||
InsertTable('Office'),
|
||||
InsertTable('PassSlip'),
|
||||
InsertTable('Profile'),
|
||||
InsertTable('Service'),
|
||||
InsertTable('SwapRequest'),
|
||||
InsertTable('Task'),
|
||||
InsertTable('TaskActivityLog'),
|
||||
InsertTable('Team'),
|
||||
InsertTable('Ticket'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'Announcement'),
|
||||
InsertColumn('author_id', Column.varchar, onTable: 'Announcement'),
|
||||
InsertColumn('title', Column.varchar, onTable: 'Announcement'),
|
||||
InsertColumn('body', Column.varchar, onTable: 'Announcement'),
|
||||
InsertColumn('visible_roles', Column.varchar, onTable: 'Announcement'),
|
||||
InsertColumn('is_template', Column.boolean, onTable: 'Announcement'),
|
||||
InsertColumn('template_id', Column.varchar, onTable: 'Announcement'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'Announcement'),
|
||||
InsertColumn('updated_at', Column.datetime, onTable: 'Announcement'),
|
||||
InsertColumn('banner_enabled', Column.boolean, onTable: 'Announcement'),
|
||||
InsertColumn('banner_show_at', Column.datetime, onTable: 'Announcement'),
|
||||
InsertColumn('banner_hide_at', Column.datetime, onTable: 'Announcement'),
|
||||
InsertColumn('push_interval_minutes', Column.integer, onTable: 'Announcement'),
|
||||
InsertColumn('is_banner_active', Column.boolean, onTable: 'Announcement'),
|
||||
InsertColumn('hash_code', Column.integer, onTable: 'Announcement'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'AnnouncementComment'),
|
||||
InsertColumn('announcement_id', Column.varchar, onTable: 'AnnouncementComment'),
|
||||
InsertColumn('author_id', Column.varchar, onTable: 'AnnouncementComment'),
|
||||
InsertColumn('body', Column.varchar, onTable: 'AnnouncementComment'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'AnnouncementComment'),
|
||||
InsertColumn('hash_code', Column.integer, onTable: 'AnnouncementComment'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'AttendanceLog'),
|
||||
InsertColumn('user_id', Column.varchar, onTable: 'AttendanceLog'),
|
||||
InsertColumn('duty_schedule_id', Column.varchar, onTable: 'AttendanceLog'),
|
||||
InsertColumn('shift_type', Column.varchar, onTable: 'AttendanceLog'),
|
||||
InsertColumn('check_in_at', Column.datetime, onTable: 'AttendanceLog'),
|
||||
InsertColumn('check_in_lat', Column.Double, onTable: 'AttendanceLog'),
|
||||
InsertColumn('check_in_lng', Column.Double, onTable: 'AttendanceLog'),
|
||||
InsertColumn('check_out_at', Column.datetime, onTable: 'AttendanceLog'),
|
||||
InsertColumn('check_out_lat', Column.Double, onTable: 'AttendanceLog'),
|
||||
InsertColumn('check_out_lng', Column.Double, onTable: 'AttendanceLog'),
|
||||
InsertColumn('justification', Column.varchar, onTable: 'AttendanceLog'),
|
||||
InsertColumn('check_out_justification', Column.varchar, onTable: 'AttendanceLog'),
|
||||
InsertColumn('verification_status', Column.varchar, onTable: 'AttendanceLog'),
|
||||
InsertColumn('check_in_verification_photo_url', Column.varchar, onTable: 'AttendanceLog'),
|
||||
InsertColumn('check_out_verification_photo_url', Column.varchar, onTable: 'AttendanceLog'),
|
||||
InsertColumn('is_checked_out', Column.boolean, onTable: 'AttendanceLog'),
|
||||
InsertColumn('is_verified', Column.boolean, onTable: 'AttendanceLog'),
|
||||
InsertColumn('is_unverified', Column.boolean, onTable: 'AttendanceLog'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'ChatMessage'),
|
||||
InsertColumn('thread_id', Column.varchar, onTable: 'ChatMessage'),
|
||||
InsertColumn('sender_id', Column.varchar, onTable: 'ChatMessage'),
|
||||
InsertColumn('body', Column.varchar, onTable: 'ChatMessage'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'ChatMessage'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'DutySchedule'),
|
||||
InsertColumn('user_id', Column.varchar, onTable: 'DutySchedule'),
|
||||
InsertColumn('shift_type', Column.varchar, onTable: 'DutySchedule'),
|
||||
InsertColumn('start_time', Column.datetime, onTable: 'DutySchedule'),
|
||||
InsertColumn('end_time', Column.datetime, onTable: 'DutySchedule'),
|
||||
InsertColumn('status', Column.varchar, onTable: 'DutySchedule'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'DutySchedule'),
|
||||
InsertColumn('check_in_at', Column.datetime, onTable: 'DutySchedule'),
|
||||
InsertColumn('reliever_ids', Column.varchar, onTable: 'DutySchedule'),
|
||||
InsertColumn('swap_request_id', Column.varchar, onTable: 'DutySchedule'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('request_number', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('services', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('services_other', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('event_name', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('event_details', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('event_date', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('event_end_date', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('dry_run_date', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('dry_run_end_date', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('contact_person', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('contact_number', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('remarks', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('office_id', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('requested_by', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('requested_by_user_id', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('approved_by', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('approved_by_user_id', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('approved_at', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('status', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('outside_premise_allowed', Column.boolean, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('cancellation_reason', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('cancelled_at', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('creator_id', Column.varchar, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('updated_at', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('completed_at', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('date_time_received', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('date_time_checked', Column.datetime, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('hash_code', Column.integer, onTable: 'ItServiceRequest'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'ItServiceRequestAction'),
|
||||
InsertColumn('request_id', Column.varchar, onTable: 'ItServiceRequestAction'),
|
||||
InsertColumn('user_id', Column.varchar, onTable: 'ItServiceRequestAction'),
|
||||
InsertColumn('action_taken', Column.varchar, onTable: 'ItServiceRequestAction'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'ItServiceRequestAction'),
|
||||
InsertColumn('updated_at', Column.datetime, onTable: 'ItServiceRequestAction'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'ItServiceRequestActivityLog'),
|
||||
InsertColumn('request_id', Column.varchar, onTable: 'ItServiceRequestActivityLog'),
|
||||
InsertColumn('actor_id', Column.varchar, onTable: 'ItServiceRequestActivityLog'),
|
||||
InsertColumn('action_type', Column.varchar, onTable: 'ItServiceRequestActivityLog'),
|
||||
InsertColumn('meta', Column.varchar, onTable: 'ItServiceRequestActivityLog'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'ItServiceRequestActivityLog'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'ItServiceRequestAssignment'),
|
||||
InsertColumn('request_id', Column.varchar, onTable: 'ItServiceRequestAssignment'),
|
||||
InsertColumn('user_id', Column.varchar, onTable: 'ItServiceRequestAssignment'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'ItServiceRequestAssignment'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('user_id', Column.varchar, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('leave_type', Column.varchar, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('justification', Column.varchar, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('start_time', Column.datetime, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('end_time', Column.datetime, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('status', Column.varchar, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('filed_by', Column.varchar, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('leave_type_label', Column.varchar, onTable: 'LeaveOfAbsence'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('user_id', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('actor_id', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('ticket_id', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('task_id', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('leave_id', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('pass_slip_id', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('it_service_request_id', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('announcement_id', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('message_id', Column.integer, onTable: 'NotificationItem'),
|
||||
InsertColumn('type', Column.varchar, onTable: 'NotificationItem'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'NotificationItem'),
|
||||
InsertColumn('read_at', Column.datetime, onTable: 'NotificationItem'),
|
||||
InsertColumn('is_unread', Column.boolean, onTable: 'NotificationItem'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'Office'),
|
||||
InsertColumn('name', Column.varchar, onTable: 'Office'),
|
||||
InsertColumn('service_id', Column.varchar, onTable: 'Office'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'PassSlip'),
|
||||
InsertColumn('user_id', Column.varchar, onTable: 'PassSlip'),
|
||||
InsertColumn('duty_schedule_id', Column.varchar, onTable: 'PassSlip'),
|
||||
InsertColumn('reason', Column.varchar, onTable: 'PassSlip'),
|
||||
InsertColumn('status', Column.varchar, onTable: 'PassSlip'),
|
||||
InsertColumn('requested_at', Column.datetime, onTable: 'PassSlip'),
|
||||
InsertColumn('approved_by', Column.varchar, onTable: 'PassSlip'),
|
||||
InsertColumn('approved_at', Column.datetime, onTable: 'PassSlip'),
|
||||
InsertColumn('slip_start', Column.datetime, onTable: 'PassSlip'),
|
||||
InsertColumn('slip_end', Column.datetime, onTable: 'PassSlip'),
|
||||
InsertColumn('requested_start', Column.datetime, onTable: 'PassSlip'),
|
||||
InsertColumn('is_active', Column.boolean, onTable: 'PassSlip'),
|
||||
InsertColumn('is_exceeded', Column.boolean, onTable: 'PassSlip'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'Profile'),
|
||||
InsertColumn('role', Column.varchar, onTable: 'Profile'),
|
||||
InsertColumn('full_name', Column.varchar, onTable: 'Profile'),
|
||||
InsertColumn('religion', Column.varchar, onTable: 'Profile'),
|
||||
InsertColumn('allow_tracking', Column.boolean, onTable: 'Profile'),
|
||||
InsertColumn('avatar_url', Column.varchar, onTable: 'Profile'),
|
||||
InsertColumn('face_photo_url', Column.varchar, onTable: 'Profile'),
|
||||
InsertColumn('face_enrolled_at', Column.datetime, onTable: 'Profile'),
|
||||
InsertColumn('has_face_enrolled', Column.boolean, onTable: 'Profile'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'Service'),
|
||||
InsertColumn('name', Column.varchar, onTable: 'Service'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('requester_id', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('recipient_id', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('requester_schedule_id', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('target_schedule_id', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('status', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'SwapRequest'),
|
||||
InsertColumn('updated_at', Column.datetime, onTable: 'SwapRequest'),
|
||||
InsertColumn('chat_thread_id', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('shift_type', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('shift_start_time', Column.datetime, onTable: 'SwapRequest'),
|
||||
InsertColumn('reliever_ids', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('approved_by', Column.varchar, onTable: 'SwapRequest'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('ticket_id', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('task_number', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('title', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('description', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('office_id', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('status', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('priority', Column.integer, onTable: 'Task'),
|
||||
InsertColumn('queue_order', Column.integer, onTable: 'Task'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'Task'),
|
||||
InsertColumn('creator_id', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('started_at', Column.datetime, onTable: 'Task'),
|
||||
InsertColumn('completed_at', Column.datetime, onTable: 'Task'),
|
||||
InsertColumn('requested_by', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('noted_by', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('received_by', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('request_type', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('request_type_other', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('request_category', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('action_taken', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('cancellation_reason', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('cancelled_at', Column.datetime, onTable: 'Task'),
|
||||
InsertColumn('it_job_printed', Column.boolean, onTable: 'Task'),
|
||||
InsertColumn('it_job_printed_at', Column.datetime, onTable: 'Task'),
|
||||
InsertColumn('it_job_received_by_id', Column.varchar, onTable: 'Task'),
|
||||
InsertColumn('hash_code', Column.integer, onTable: 'Task'),
|
||||
InsertColumn('has_incomplete_details', Column.boolean, onTable: 'Task'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'TaskActivityLog'),
|
||||
InsertColumn('task_id', Column.varchar, onTable: 'TaskActivityLog'),
|
||||
InsertColumn('actor_id', Column.varchar, onTable: 'TaskActivityLog'),
|
||||
InsertColumn('action_type', Column.varchar, onTable: 'TaskActivityLog'),
|
||||
InsertColumn('meta', Column.varchar, onTable: 'TaskActivityLog'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'TaskActivityLog'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'Team'),
|
||||
InsertColumn('name', Column.varchar, onTable: 'Team'),
|
||||
InsertColumn('leader_id', Column.varchar, onTable: 'Team'),
|
||||
InsertColumn('office_ids', Column.varchar, onTable: 'Team'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'Team'),
|
||||
InsertColumn('color', Column.varchar, onTable: 'Team'),
|
||||
InsertColumn('id', Column.varchar, onTable: 'Ticket'),
|
||||
InsertColumn('subject', Column.varchar, onTable: 'Ticket'),
|
||||
InsertColumn('description', Column.varchar, onTable: 'Ticket'),
|
||||
InsertColumn('office_id', Column.varchar, onTable: 'Ticket'),
|
||||
InsertColumn('status', Column.varchar, onTable: 'Ticket'),
|
||||
InsertColumn('created_at', Column.datetime, onTable: 'Ticket'),
|
||||
InsertColumn('creator_id', Column.varchar, onTable: 'Ticket'),
|
||||
InsertColumn('responded_at', Column.datetime, onTable: 'Ticket'),
|
||||
InsertColumn('promoted_at', Column.datetime, onTable: 'Ticket'),
|
||||
InsertColumn('closed_at', Column.datetime, onTable: 'Ticket'),
|
||||
InsertColumn('hash_code', Column.integer, onTable: 'Ticket')
|
||||
];
|
||||
|
||||
const List<MigrationCommand> _migration_20260411041808_down = [
|
||||
DropTable('Announcement'),
|
||||
DropTable('AnnouncementComment'),
|
||||
DropTable('AttendanceLog'),
|
||||
DropTable('ChatMessage'),
|
||||
DropTable('DutySchedule'),
|
||||
DropTable('ItServiceRequest'),
|
||||
DropTable('ItServiceRequestAction'),
|
||||
DropTable('ItServiceRequestActivityLog'),
|
||||
DropTable('ItServiceRequestAssignment'),
|
||||
DropTable('LeaveOfAbsence'),
|
||||
DropTable('NotificationItem'),
|
||||
DropTable('Office'),
|
||||
DropTable('PassSlip'),
|
||||
DropTable('Profile'),
|
||||
DropTable('Service'),
|
||||
DropTable('SwapRequest'),
|
||||
DropTable('Task'),
|
||||
DropTable('TaskActivityLog'),
|
||||
DropTable('Team'),
|
||||
DropTable('Ticket'),
|
||||
DropColumn('id', onTable: 'Announcement'),
|
||||
DropColumn('author_id', onTable: 'Announcement'),
|
||||
DropColumn('title', onTable: 'Announcement'),
|
||||
DropColumn('body', onTable: 'Announcement'),
|
||||
DropColumn('visible_roles', onTable: 'Announcement'),
|
||||
DropColumn('is_template', onTable: 'Announcement'),
|
||||
DropColumn('template_id', onTable: 'Announcement'),
|
||||
DropColumn('created_at', onTable: 'Announcement'),
|
||||
DropColumn('updated_at', onTable: 'Announcement'),
|
||||
DropColumn('banner_enabled', onTable: 'Announcement'),
|
||||
DropColumn('banner_show_at', onTable: 'Announcement'),
|
||||
DropColumn('banner_hide_at', onTable: 'Announcement'),
|
||||
DropColumn('push_interval_minutes', onTable: 'Announcement'),
|
||||
DropColumn('is_banner_active', onTable: 'Announcement'),
|
||||
DropColumn('hash_code', onTable: 'Announcement'),
|
||||
DropColumn('id', onTable: 'AnnouncementComment'),
|
||||
DropColumn('announcement_id', onTable: 'AnnouncementComment'),
|
||||
DropColumn('author_id', onTable: 'AnnouncementComment'),
|
||||
DropColumn('body', onTable: 'AnnouncementComment'),
|
||||
DropColumn('created_at', onTable: 'AnnouncementComment'),
|
||||
DropColumn('hash_code', onTable: 'AnnouncementComment'),
|
||||
DropColumn('id', onTable: 'AttendanceLog'),
|
||||
DropColumn('user_id', onTable: 'AttendanceLog'),
|
||||
DropColumn('duty_schedule_id', onTable: 'AttendanceLog'),
|
||||
DropColumn('shift_type', onTable: 'AttendanceLog'),
|
||||
DropColumn('check_in_at', onTable: 'AttendanceLog'),
|
||||
DropColumn('check_in_lat', onTable: 'AttendanceLog'),
|
||||
DropColumn('check_in_lng', onTable: 'AttendanceLog'),
|
||||
DropColumn('check_out_at', onTable: 'AttendanceLog'),
|
||||
DropColumn('check_out_lat', onTable: 'AttendanceLog'),
|
||||
DropColumn('check_out_lng', onTable: 'AttendanceLog'),
|
||||
DropColumn('justification', onTable: 'AttendanceLog'),
|
||||
DropColumn('check_out_justification', onTable: 'AttendanceLog'),
|
||||
DropColumn('verification_status', onTable: 'AttendanceLog'),
|
||||
DropColumn('check_in_verification_photo_url', onTable: 'AttendanceLog'),
|
||||
DropColumn('check_out_verification_photo_url', onTable: 'AttendanceLog'),
|
||||
DropColumn('is_checked_out', onTable: 'AttendanceLog'),
|
||||
DropColumn('is_verified', onTable: 'AttendanceLog'),
|
||||
DropColumn('is_unverified', onTable: 'AttendanceLog'),
|
||||
DropColumn('id', onTable: 'ChatMessage'),
|
||||
DropColumn('thread_id', onTable: 'ChatMessage'),
|
||||
DropColumn('sender_id', onTable: 'ChatMessage'),
|
||||
DropColumn('body', onTable: 'ChatMessage'),
|
||||
DropColumn('created_at', onTable: 'ChatMessage'),
|
||||
DropColumn('id', onTable: 'DutySchedule'),
|
||||
DropColumn('user_id', onTable: 'DutySchedule'),
|
||||
DropColumn('shift_type', onTable: 'DutySchedule'),
|
||||
DropColumn('start_time', onTable: 'DutySchedule'),
|
||||
DropColumn('end_time', onTable: 'DutySchedule'),
|
||||
DropColumn('status', onTable: 'DutySchedule'),
|
||||
DropColumn('created_at', onTable: 'DutySchedule'),
|
||||
DropColumn('check_in_at', onTable: 'DutySchedule'),
|
||||
DropColumn('reliever_ids', onTable: 'DutySchedule'),
|
||||
DropColumn('swap_request_id', onTable: 'DutySchedule'),
|
||||
DropColumn('id', onTable: 'ItServiceRequest'),
|
||||
DropColumn('request_number', onTable: 'ItServiceRequest'),
|
||||
DropColumn('services', onTable: 'ItServiceRequest'),
|
||||
DropColumn('services_other', onTable: 'ItServiceRequest'),
|
||||
DropColumn('event_name', onTable: 'ItServiceRequest'),
|
||||
DropColumn('event_details', onTable: 'ItServiceRequest'),
|
||||
DropColumn('event_date', onTable: 'ItServiceRequest'),
|
||||
DropColumn('event_end_date', onTable: 'ItServiceRequest'),
|
||||
DropColumn('dry_run_date', onTable: 'ItServiceRequest'),
|
||||
DropColumn('dry_run_end_date', onTable: 'ItServiceRequest'),
|
||||
DropColumn('contact_person', onTable: 'ItServiceRequest'),
|
||||
DropColumn('contact_number', onTable: 'ItServiceRequest'),
|
||||
DropColumn('remarks', onTable: 'ItServiceRequest'),
|
||||
DropColumn('office_id', onTable: 'ItServiceRequest'),
|
||||
DropColumn('requested_by', onTable: 'ItServiceRequest'),
|
||||
DropColumn('requested_by_user_id', onTable: 'ItServiceRequest'),
|
||||
DropColumn('approved_by', onTable: 'ItServiceRequest'),
|
||||
DropColumn('approved_by_user_id', onTable: 'ItServiceRequest'),
|
||||
DropColumn('approved_at', onTable: 'ItServiceRequest'),
|
||||
DropColumn('status', onTable: 'ItServiceRequest'),
|
||||
DropColumn('outside_premise_allowed', onTable: 'ItServiceRequest'),
|
||||
DropColumn('cancellation_reason', onTable: 'ItServiceRequest'),
|
||||
DropColumn('cancelled_at', onTable: 'ItServiceRequest'),
|
||||
DropColumn('creator_id', onTable: 'ItServiceRequest'),
|
||||
DropColumn('created_at', onTable: 'ItServiceRequest'),
|
||||
DropColumn('updated_at', onTable: 'ItServiceRequest'),
|
||||
DropColumn('completed_at', onTable: 'ItServiceRequest'),
|
||||
DropColumn('date_time_received', onTable: 'ItServiceRequest'),
|
||||
DropColumn('date_time_checked', onTable: 'ItServiceRequest'),
|
||||
DropColumn('hash_code', onTable: 'ItServiceRequest'),
|
||||
DropColumn('id', onTable: 'ItServiceRequestAction'),
|
||||
DropColumn('request_id', onTable: 'ItServiceRequestAction'),
|
||||
DropColumn('user_id', onTable: 'ItServiceRequestAction'),
|
||||
DropColumn('action_taken', onTable: 'ItServiceRequestAction'),
|
||||
DropColumn('created_at', onTable: 'ItServiceRequestAction'),
|
||||
DropColumn('updated_at', onTable: 'ItServiceRequestAction'),
|
||||
DropColumn('id', onTable: 'ItServiceRequestActivityLog'),
|
||||
DropColumn('request_id', onTable: 'ItServiceRequestActivityLog'),
|
||||
DropColumn('actor_id', onTable: 'ItServiceRequestActivityLog'),
|
||||
DropColumn('action_type', onTable: 'ItServiceRequestActivityLog'),
|
||||
DropColumn('meta', onTable: 'ItServiceRequestActivityLog'),
|
||||
DropColumn('created_at', onTable: 'ItServiceRequestActivityLog'),
|
||||
DropColumn('id', onTable: 'ItServiceRequestAssignment'),
|
||||
DropColumn('request_id', onTable: 'ItServiceRequestAssignment'),
|
||||
DropColumn('user_id', onTable: 'ItServiceRequestAssignment'),
|
||||
DropColumn('created_at', onTable: 'ItServiceRequestAssignment'),
|
||||
DropColumn('id', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('user_id', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('leave_type', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('justification', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('start_time', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('end_time', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('status', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('filed_by', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('created_at', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('leave_type_label', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('id', onTable: 'NotificationItem'),
|
||||
DropColumn('user_id', onTable: 'NotificationItem'),
|
||||
DropColumn('actor_id', onTable: 'NotificationItem'),
|
||||
DropColumn('ticket_id', onTable: 'NotificationItem'),
|
||||
DropColumn('task_id', onTable: 'NotificationItem'),
|
||||
DropColumn('leave_id', onTable: 'NotificationItem'),
|
||||
DropColumn('pass_slip_id', onTable: 'NotificationItem'),
|
||||
DropColumn('it_service_request_id', onTable: 'NotificationItem'),
|
||||
DropColumn('announcement_id', onTable: 'NotificationItem'),
|
||||
DropColumn('message_id', onTable: 'NotificationItem'),
|
||||
DropColumn('type', onTable: 'NotificationItem'),
|
||||
DropColumn('created_at', onTable: 'NotificationItem'),
|
||||
DropColumn('read_at', onTable: 'NotificationItem'),
|
||||
DropColumn('is_unread', onTable: 'NotificationItem'),
|
||||
DropColumn('id', onTable: 'Office'),
|
||||
DropColumn('name', onTable: 'Office'),
|
||||
DropColumn('service_id', onTable: 'Office'),
|
||||
DropColumn('id', onTable: 'PassSlip'),
|
||||
DropColumn('user_id', onTable: 'PassSlip'),
|
||||
DropColumn('duty_schedule_id', onTable: 'PassSlip'),
|
||||
DropColumn('reason', onTable: 'PassSlip'),
|
||||
DropColumn('status', onTable: 'PassSlip'),
|
||||
DropColumn('requested_at', onTable: 'PassSlip'),
|
||||
DropColumn('approved_by', onTable: 'PassSlip'),
|
||||
DropColumn('approved_at', onTable: 'PassSlip'),
|
||||
DropColumn('slip_start', onTable: 'PassSlip'),
|
||||
DropColumn('slip_end', onTable: 'PassSlip'),
|
||||
DropColumn('requested_start', onTable: 'PassSlip'),
|
||||
DropColumn('is_active', onTable: 'PassSlip'),
|
||||
DropColumn('is_exceeded', onTable: 'PassSlip'),
|
||||
DropColumn('id', onTable: 'Profile'),
|
||||
DropColumn('role', onTable: 'Profile'),
|
||||
DropColumn('full_name', onTable: 'Profile'),
|
||||
DropColumn('religion', onTable: 'Profile'),
|
||||
DropColumn('allow_tracking', onTable: 'Profile'),
|
||||
DropColumn('avatar_url', onTable: 'Profile'),
|
||||
DropColumn('face_photo_url', onTable: 'Profile'),
|
||||
DropColumn('face_enrolled_at', onTable: 'Profile'),
|
||||
DropColumn('has_face_enrolled', onTable: 'Profile'),
|
||||
DropColumn('id', onTable: 'Service'),
|
||||
DropColumn('name', onTable: 'Service'),
|
||||
DropColumn('id', onTable: 'SwapRequest'),
|
||||
DropColumn('requester_id', onTable: 'SwapRequest'),
|
||||
DropColumn('recipient_id', onTable: 'SwapRequest'),
|
||||
DropColumn('requester_schedule_id', onTable: 'SwapRequest'),
|
||||
DropColumn('target_schedule_id', onTable: 'SwapRequest'),
|
||||
DropColumn('status', onTable: 'SwapRequest'),
|
||||
DropColumn('created_at', onTable: 'SwapRequest'),
|
||||
DropColumn('updated_at', onTable: 'SwapRequest'),
|
||||
DropColumn('chat_thread_id', onTable: 'SwapRequest'),
|
||||
DropColumn('shift_type', onTable: 'SwapRequest'),
|
||||
DropColumn('shift_start_time', onTable: 'SwapRequest'),
|
||||
DropColumn('reliever_ids', onTable: 'SwapRequest'),
|
||||
DropColumn('approved_by', onTable: 'SwapRequest'),
|
||||
DropColumn('id', onTable: 'Task'),
|
||||
DropColumn('ticket_id', onTable: 'Task'),
|
||||
DropColumn('task_number', onTable: 'Task'),
|
||||
DropColumn('title', onTable: 'Task'),
|
||||
DropColumn('description', onTable: 'Task'),
|
||||
DropColumn('office_id', onTable: 'Task'),
|
||||
DropColumn('status', onTable: 'Task'),
|
||||
DropColumn('priority', onTable: 'Task'),
|
||||
DropColumn('queue_order', onTable: 'Task'),
|
||||
DropColumn('created_at', onTable: 'Task'),
|
||||
DropColumn('creator_id', onTable: 'Task'),
|
||||
DropColumn('started_at', onTable: 'Task'),
|
||||
DropColumn('completed_at', onTable: 'Task'),
|
||||
DropColumn('requested_by', onTable: 'Task'),
|
||||
DropColumn('noted_by', onTable: 'Task'),
|
||||
DropColumn('received_by', onTable: 'Task'),
|
||||
DropColumn('request_type', onTable: 'Task'),
|
||||
DropColumn('request_type_other', onTable: 'Task'),
|
||||
DropColumn('request_category', onTable: 'Task'),
|
||||
DropColumn('action_taken', onTable: 'Task'),
|
||||
DropColumn('cancellation_reason', onTable: 'Task'),
|
||||
DropColumn('cancelled_at', onTable: 'Task'),
|
||||
DropColumn('it_job_printed', onTable: 'Task'),
|
||||
DropColumn('it_job_printed_at', onTable: 'Task'),
|
||||
DropColumn('it_job_received_by_id', onTable: 'Task'),
|
||||
DropColumn('hash_code', onTable: 'Task'),
|
||||
DropColumn('has_incomplete_details', onTable: 'Task'),
|
||||
DropColumn('id', onTable: 'TaskActivityLog'),
|
||||
DropColumn('task_id', onTable: 'TaskActivityLog'),
|
||||
DropColumn('actor_id', onTable: 'TaskActivityLog'),
|
||||
DropColumn('action_type', onTable: 'TaskActivityLog'),
|
||||
DropColumn('meta', onTable: 'TaskActivityLog'),
|
||||
DropColumn('created_at', onTable: 'TaskActivityLog'),
|
||||
DropColumn('id', onTable: 'Team'),
|
||||
DropColumn('name', onTable: 'Team'),
|
||||
DropColumn('leader_id', onTable: 'Team'),
|
||||
DropColumn('office_ids', onTable: 'Team'),
|
||||
DropColumn('created_at', onTable: 'Team'),
|
||||
DropColumn('color', onTable: 'Team'),
|
||||
DropColumn('id', onTable: 'Ticket'),
|
||||
DropColumn('subject', onTable: 'Ticket'),
|
||||
DropColumn('description', onTable: 'Ticket'),
|
||||
DropColumn('office_id', onTable: 'Ticket'),
|
||||
DropColumn('status', onTable: 'Ticket'),
|
||||
DropColumn('created_at', onTable: 'Ticket'),
|
||||
DropColumn('creator_id', onTable: 'Ticket'),
|
||||
DropColumn('responded_at', onTable: 'Ticket'),
|
||||
DropColumn('promoted_at', onTable: 'Ticket'),
|
||||
DropColumn('closed_at', onTable: 'Ticket'),
|
||||
DropColumn('hash_code', onTable: 'Ticket')
|
||||
];
|
||||
|
||||
//
|
||||
// DO NOT EDIT BELOW THIS LINE
|
||||
//
|
||||
|
||||
@Migratable(
|
||||
version: '20260411041808',
|
||||
up: _migration_20260411041808_up,
|
||||
down: _migration_20260411041808_down,
|
||||
)
|
||||
class Migration20260411041808 extends Migration {
|
||||
const Migration20260411041808()
|
||||
: super(
|
||||
version: 20260411041808,
|
||||
up: _migration_20260411041808_up,
|
||||
down: _migration_20260411041808_down,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
// GENERATED CODE EDIT WITH CAUTION
|
||||
// THIS FILE **WILL NOT** BE REGENERATED
|
||||
// This file should be version controlled and can be manually edited.
|
||||
part of 'schema.g.dart';
|
||||
|
||||
// While migrations are intelligently created, the difference between some commands, such as
|
||||
// DropTable vs. RenameTable, cannot be determined. For this reason, please review migrations after
|
||||
// they are created to ensure the correct inference was made.
|
||||
|
||||
// The migration version must **always** mirror the file name
|
||||
|
||||
const List<MigrationCommand> _migration_20260411042152_up = [
|
||||
DropColumn('is_banner_active', onTable: 'Announcement'),
|
||||
DropColumn('hash_code', onTable: 'Announcement'),
|
||||
DropColumn('hash_code', onTable: 'AnnouncementComment'),
|
||||
DropColumn('is_checked_out', onTable: 'AttendanceLog'),
|
||||
DropColumn('is_verified', onTable: 'AttendanceLog'),
|
||||
DropColumn('is_unverified', onTable: 'AttendanceLog'),
|
||||
DropColumn('hash_code', onTable: 'ItServiceRequest'),
|
||||
DropColumn('leave_type_label', onTable: 'LeaveOfAbsence'),
|
||||
DropColumn('is_unread', onTable: 'NotificationItem'),
|
||||
DropColumn('is_active', onTable: 'PassSlip'),
|
||||
DropColumn('is_exceeded', onTable: 'PassSlip'),
|
||||
DropColumn('has_face_enrolled', onTable: 'Profile'),
|
||||
DropColumn('hash_code', onTable: 'Task'),
|
||||
DropColumn('has_incomplete_details', onTable: 'Task'),
|
||||
DropColumn('hash_code', onTable: 'Ticket')
|
||||
];
|
||||
|
||||
const List<MigrationCommand> _migration_20260411042152_down = [
|
||||
|
||||
];
|
||||
|
||||
//
|
||||
// DO NOT EDIT BELOW THIS LINE
|
||||
//
|
||||
|
||||
@Migratable(
|
||||
version: '20260411042152',
|
||||
up: _migration_20260411042152_up,
|
||||
down: _migration_20260411042152_down,
|
||||
)
|
||||
class Migration20260411042152 extends Migration {
|
||||
const Migration20260411042152()
|
||||
: super(
|
||||
version: 20260411042152,
|
||||
up: _migration_20260411042152_up,
|
||||
down: _migration_20260411042152_down,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,478 @@
|
||||
// GENERATED CODE DO NOT EDIT
|
||||
// This file should be version controlled
|
||||
import 'package:brick_sqlite/db.dart';
|
||||
part '20260411041808.migration.dart';
|
||||
part '20260411042152.migration.dart';
|
||||
|
||||
/// All intelligently-generated migrations from all `@Migratable` classes on disk
|
||||
final migrations = <Migration>{
|
||||
const Migration20260411041808(),
|
||||
const Migration20260411042152(),
|
||||
};
|
||||
|
||||
/// A consumable database structure including the latest generated migration.
|
||||
final schema = Schema(
|
||||
20260411042152,
|
||||
generatorVersion: 1,
|
||||
tables: <SchemaTable>{
|
||||
SchemaTable(
|
||||
'Announcement',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('author_id', Column.varchar),
|
||||
SchemaColumn('title', Column.varchar),
|
||||
SchemaColumn('body', Column.varchar),
|
||||
SchemaColumn('visible_roles', Column.varchar),
|
||||
SchemaColumn('is_template', Column.boolean),
|
||||
SchemaColumn('template_id', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
SchemaColumn('updated_at', Column.datetime),
|
||||
SchemaColumn('banner_enabled', Column.boolean),
|
||||
SchemaColumn('banner_show_at', Column.datetime),
|
||||
SchemaColumn('banner_hide_at', Column.datetime),
|
||||
SchemaColumn('push_interval_minutes', Column.integer),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'AnnouncementComment',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('announcement_id', Column.varchar),
|
||||
SchemaColumn('author_id', Column.varchar),
|
||||
SchemaColumn('body', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'AttendanceLog',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('user_id', Column.varchar),
|
||||
SchemaColumn('duty_schedule_id', Column.varchar),
|
||||
SchemaColumn('shift_type', Column.varchar),
|
||||
SchemaColumn('check_in_at', Column.datetime),
|
||||
SchemaColumn('check_in_lat', Column.Double),
|
||||
SchemaColumn('check_in_lng', Column.Double),
|
||||
SchemaColumn('check_out_at', Column.datetime),
|
||||
SchemaColumn('check_out_lat', Column.Double),
|
||||
SchemaColumn('check_out_lng', Column.Double),
|
||||
SchemaColumn('justification', Column.varchar),
|
||||
SchemaColumn('check_out_justification', Column.varchar),
|
||||
SchemaColumn('verification_status', Column.varchar),
|
||||
SchemaColumn('check_in_verification_photo_url', Column.varchar),
|
||||
SchemaColumn('check_out_verification_photo_url', Column.varchar),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'ChatMessage',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('thread_id', Column.varchar),
|
||||
SchemaColumn('sender_id', Column.varchar),
|
||||
SchemaColumn('body', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'DutySchedule',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('user_id', Column.varchar),
|
||||
SchemaColumn('shift_type', Column.varchar),
|
||||
SchemaColumn('start_time', Column.datetime),
|
||||
SchemaColumn('end_time', Column.datetime),
|
||||
SchemaColumn('status', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
SchemaColumn('check_in_at', Column.datetime),
|
||||
SchemaColumn('reliever_ids', Column.varchar),
|
||||
SchemaColumn('swap_request_id', Column.varchar),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'ItServiceRequest',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('request_number', Column.varchar),
|
||||
SchemaColumn('services', Column.varchar),
|
||||
SchemaColumn('services_other', Column.varchar),
|
||||
SchemaColumn('event_name', Column.varchar),
|
||||
SchemaColumn('event_details', Column.varchar),
|
||||
SchemaColumn('event_date', Column.datetime),
|
||||
SchemaColumn('event_end_date', Column.datetime),
|
||||
SchemaColumn('dry_run_date', Column.datetime),
|
||||
SchemaColumn('dry_run_end_date', Column.datetime),
|
||||
SchemaColumn('contact_person', Column.varchar),
|
||||
SchemaColumn('contact_number', Column.varchar),
|
||||
SchemaColumn('remarks', Column.varchar),
|
||||
SchemaColumn('office_id', Column.varchar),
|
||||
SchemaColumn('requested_by', Column.varchar),
|
||||
SchemaColumn('requested_by_user_id', Column.varchar),
|
||||
SchemaColumn('approved_by', Column.varchar),
|
||||
SchemaColumn('approved_by_user_id', Column.varchar),
|
||||
SchemaColumn('approved_at', Column.datetime),
|
||||
SchemaColumn('status', Column.varchar),
|
||||
SchemaColumn('outside_premise_allowed', Column.boolean),
|
||||
SchemaColumn('cancellation_reason', Column.varchar),
|
||||
SchemaColumn('cancelled_at', Column.datetime),
|
||||
SchemaColumn('creator_id', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
SchemaColumn('updated_at', Column.datetime),
|
||||
SchemaColumn('completed_at', Column.datetime),
|
||||
SchemaColumn('date_time_received', Column.datetime),
|
||||
SchemaColumn('date_time_checked', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'ItServiceRequestAction',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('request_id', Column.varchar),
|
||||
SchemaColumn('user_id', Column.varchar),
|
||||
SchemaColumn('action_taken', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
SchemaColumn('updated_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'ItServiceRequestActivityLog',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('request_id', Column.varchar),
|
||||
SchemaColumn('actor_id', Column.varchar),
|
||||
SchemaColumn('action_type', Column.varchar),
|
||||
SchemaColumn('meta', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'ItServiceRequestAssignment',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('request_id', Column.varchar),
|
||||
SchemaColumn('user_id', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'LeaveOfAbsence',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('user_id', Column.varchar),
|
||||
SchemaColumn('leave_type', Column.varchar),
|
||||
SchemaColumn('justification', Column.varchar),
|
||||
SchemaColumn('start_time', Column.datetime),
|
||||
SchemaColumn('end_time', Column.datetime),
|
||||
SchemaColumn('status', Column.varchar),
|
||||
SchemaColumn('filed_by', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'NotificationItem',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('user_id', Column.varchar),
|
||||
SchemaColumn('actor_id', Column.varchar),
|
||||
SchemaColumn('ticket_id', Column.varchar),
|
||||
SchemaColumn('task_id', Column.varchar),
|
||||
SchemaColumn('leave_id', Column.varchar),
|
||||
SchemaColumn('pass_slip_id', Column.varchar),
|
||||
SchemaColumn('it_service_request_id', Column.varchar),
|
||||
SchemaColumn('announcement_id', Column.varchar),
|
||||
SchemaColumn('message_id', Column.integer),
|
||||
SchemaColumn('type', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
SchemaColumn('read_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'Office',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('name', Column.varchar),
|
||||
SchemaColumn('service_id', Column.varchar),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'PassSlip',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('user_id', Column.varchar),
|
||||
SchemaColumn('duty_schedule_id', Column.varchar),
|
||||
SchemaColumn('reason', Column.varchar),
|
||||
SchemaColumn('status', Column.varchar),
|
||||
SchemaColumn('requested_at', Column.datetime),
|
||||
SchemaColumn('approved_by', Column.varchar),
|
||||
SchemaColumn('approved_at', Column.datetime),
|
||||
SchemaColumn('slip_start', Column.datetime),
|
||||
SchemaColumn('slip_end', Column.datetime),
|
||||
SchemaColumn('requested_start', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'Profile',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('role', Column.varchar),
|
||||
SchemaColumn('full_name', Column.varchar),
|
||||
SchemaColumn('religion', Column.varchar),
|
||||
SchemaColumn('allow_tracking', Column.boolean),
|
||||
SchemaColumn('avatar_url', Column.varchar),
|
||||
SchemaColumn('face_photo_url', Column.varchar),
|
||||
SchemaColumn('face_enrolled_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'Service',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('name', Column.varchar),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'SwapRequest',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('requester_id', Column.varchar),
|
||||
SchemaColumn('recipient_id', Column.varchar),
|
||||
SchemaColumn('requester_schedule_id', Column.varchar),
|
||||
SchemaColumn('target_schedule_id', Column.varchar),
|
||||
SchemaColumn('status', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
SchemaColumn('updated_at', Column.datetime),
|
||||
SchemaColumn('chat_thread_id', Column.varchar),
|
||||
SchemaColumn('shift_type', Column.varchar),
|
||||
SchemaColumn('shift_start_time', Column.datetime),
|
||||
SchemaColumn('reliever_ids', Column.varchar),
|
||||
SchemaColumn('approved_by', Column.varchar),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'Task',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('ticket_id', Column.varchar),
|
||||
SchemaColumn('task_number', Column.varchar),
|
||||
SchemaColumn('title', Column.varchar),
|
||||
SchemaColumn('description', Column.varchar),
|
||||
SchemaColumn('office_id', Column.varchar),
|
||||
SchemaColumn('status', Column.varchar),
|
||||
SchemaColumn('priority', Column.integer),
|
||||
SchemaColumn('queue_order', Column.integer),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
SchemaColumn('creator_id', Column.varchar),
|
||||
SchemaColumn('started_at', Column.datetime),
|
||||
SchemaColumn('completed_at', Column.datetime),
|
||||
SchemaColumn('requested_by', Column.varchar),
|
||||
SchemaColumn('noted_by', Column.varchar),
|
||||
SchemaColumn('received_by', Column.varchar),
|
||||
SchemaColumn('request_type', Column.varchar),
|
||||
SchemaColumn('request_type_other', Column.varchar),
|
||||
SchemaColumn('request_category', Column.varchar),
|
||||
SchemaColumn('action_taken', Column.varchar),
|
||||
SchemaColumn('cancellation_reason', Column.varchar),
|
||||
SchemaColumn('cancelled_at', Column.datetime),
|
||||
SchemaColumn('it_job_printed', Column.boolean),
|
||||
SchemaColumn('it_job_printed_at', Column.datetime),
|
||||
SchemaColumn('it_job_received_by_id', Column.varchar),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'TaskActivityLog',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('task_id', Column.varchar),
|
||||
SchemaColumn('actor_id', Column.varchar),
|
||||
SchemaColumn('action_type', Column.varchar),
|
||||
SchemaColumn('meta', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'Team',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('name', Column.varchar),
|
||||
SchemaColumn('leader_id', Column.varchar),
|
||||
SchemaColumn('office_ids', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
SchemaColumn('color', Column.varchar),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
SchemaTable(
|
||||
'Ticket',
|
||||
columns: <SchemaColumn>{
|
||||
SchemaColumn(
|
||||
'_brick_id',
|
||||
Column.integer,
|
||||
autoincrement: true,
|
||||
nullable: false,
|
||||
isPrimaryKey: true,
|
||||
),
|
||||
SchemaColumn('id', Column.varchar),
|
||||
SchemaColumn('subject', Column.varchar),
|
||||
SchemaColumn('description', Column.varchar),
|
||||
SchemaColumn('office_id', Column.varchar),
|
||||
SchemaColumn('status', Column.varchar),
|
||||
SchemaColumn('created_at', Column.datetime),
|
||||
SchemaColumn('creator_id', Column.varchar),
|
||||
SchemaColumn('responded_at', Column.datetime),
|
||||
SchemaColumn('promoted_at', Column.datetime),
|
||||
SchemaColumn('closed_at', Column.datetime),
|
||||
},
|
||||
indices: <SchemaIndex>{},
|
||||
),
|
||||
},
|
||||
);
|
||||
@@ -0,0 +1,160 @@
|
||||
import 'package:brick_offline_first_with_supabase/brick_offline_first_with_supabase.dart';
|
||||
import 'package:brick_offline_first_with_rest/offline_queue.dart';
|
||||
import 'package:brick_sqlite/brick_sqlite.dart';
|
||||
import 'package:brick_sqlite/memory_cache_provider.dart';
|
||||
// Hide the brick_supabase @Supabase annotation to avoid conflict with
|
||||
// supabase_flutter's Supabase singleton class.
|
||||
import 'package:brick_supabase/brick_supabase.dart' hide Supabase;
|
||||
import 'package:flutter/foundation.dart' show kIsWeb, debugPrint;
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:sqflite/sqflite.dart' show databaseFactory;
|
||||
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
// Generated by `flutter pub run build_runner build`.
|
||||
// Run: flutter pub run build_runner build --delete-conflicting-outputs
|
||||
// ignore: uri_does_not_exist
|
||||
import 'brick.g.dart';
|
||||
// migrations + schema are generated into db/schema.g.dart
|
||||
// ignore: uri_does_not_exist
|
||||
import 'db/schema.g.dart';
|
||||
|
||||
export 'package:brick_offline_first_with_supabase/brick_offline_first_with_supabase.dart'
|
||||
show OfflineFirstWithSupabaseModel;
|
||||
export 'package:brick_supabase/brick_supabase.dart'
|
||||
show SupabaseSerializable;
|
||||
export 'package:brick_offline_first_with_supabase/brick_offline_first_with_supabase.dart'
|
||||
show ConnectOfflineFirstWithSupabase;
|
||||
export 'package:brick_sqlite/brick_sqlite.dart' show SqliteSerializable;
|
||||
export 'package:brick_offline_first/brick_offline_first.dart'
|
||||
show OfflineFirstGetPolicy;
|
||||
|
||||
/// Singleton offline-first repository backed by Supabase + local SQLite.
|
||||
///
|
||||
/// Initialization sequence in [main]:
|
||||
/// ```dart
|
||||
/// // 1. Get the Brick HTTP client (mobile only; null on web)
|
||||
/// final httpClient = AppRepository.createHttpClient();
|
||||
///
|
||||
/// // 2. Initialize Supabase WITH the Brick HTTP client so all REST
|
||||
/// // writes are intercepted and queued when offline.
|
||||
/// await Supabase.initialize(url: ..., anonKey: ..., httpClient: httpClient);
|
||||
///
|
||||
/// // 3. Configure the repository (reads model dictionary from brick.g.dart)
|
||||
/// await AppRepository.configure();
|
||||
/// ```
|
||||
class AppRepository extends OfflineFirstWithSupabaseRepository {
|
||||
static AppRepository? _instance;
|
||||
static RestOfflineRequestQueue? _pendingQueue;
|
||||
|
||||
/// The singleton. Throws if [configure] was not called first.
|
||||
static AppRepository get instance {
|
||||
assert(_instance != null, 'Call AppRepository.configure() first');
|
||||
return _instance!;
|
||||
}
|
||||
|
||||
/// True when this platform supports offline SQLite storage (i.e. not web).
|
||||
static bool get isOfflineSupported => !kIsWeb;
|
||||
|
||||
/// True after [configure] has completed successfully.
|
||||
static bool get isConfigured => _instance != null;
|
||||
|
||||
/// The Brick HTTP offline queue. `null` before [configure] or on web.
|
||||
///
|
||||
/// Call [RestOfflineRequestQueue.stop] when offline to silence retry logs
|
||||
/// and avoid hammering a network that is known to be unavailable.
|
||||
/// Call [RestOfflineRequestQueue.start] when back online to replay queued
|
||||
/// writes. The stored requests are preserved in both states.
|
||||
static RestOfflineRequestQueue? get offlineQueue =>
|
||||
_instance?.offlineRequestQueue;
|
||||
|
||||
AppRepository._({
|
||||
required super.supabaseProvider,
|
||||
required super.sqliteProvider,
|
||||
required super.migrations,
|
||||
required super.offlineRequestQueue,
|
||||
super.memoryCacheProvider,
|
||||
});
|
||||
|
||||
/// Creates and returns the Brick-managed HTTP client to pass to
|
||||
/// [Supabase.initialize]. Returns `null` on web (SQLite unavailable).
|
||||
///
|
||||
/// Must be called *before* [Supabase.initialize] and *before* [configure].
|
||||
static http.Client? createHttpClient() {
|
||||
if (kIsWeb) return null;
|
||||
final (client, queue) = OfflineFirstWithSupabaseRepository.clientQueue(
|
||||
databaseFactory: databaseFactory,
|
||||
// Only retry on truly transient server errors.
|
||||
// 400/409 indicate a permanent failure (bad payload or conflict) and
|
||||
// should NOT be retried — they will never self-heal and cause infinite
|
||||
// retry loops that spam the logs.
|
||||
reattemptForStatusCodes: const [408, 429, 500, 502, 503, 504],
|
||||
);
|
||||
_pendingQueue = queue;
|
||||
return client;
|
||||
}
|
||||
|
||||
/// Configures the repository singleton.
|
||||
///
|
||||
/// Must be called *after* [Supabase.initialize]. Reads the Brick-generated
|
||||
/// model dictionaries from `brick.g.dart` (created by build_runner).
|
||||
static Future<void> configure() async {
|
||||
if (_instance != null) return;
|
||||
if (kIsWeb) {
|
||||
debugPrint('[AppRepository] web — offline queue disabled');
|
||||
return;
|
||||
}
|
||||
|
||||
final queue = _pendingQueue;
|
||||
if (queue == null) {
|
||||
throw StateError(
|
||||
'Call AppRepository.createHttpClient() before configure()',
|
||||
);
|
||||
}
|
||||
|
||||
_instance = AppRepository._(
|
||||
supabaseProvider: SupabaseProvider(
|
||||
Supabase.instance.client,
|
||||
modelDictionary: supabaseModelDictionary,
|
||||
),
|
||||
sqliteProvider: SqliteProvider(
|
||||
'tasq_offline.sqlite',
|
||||
databaseFactory: databaseFactory,
|
||||
modelDictionary: sqliteModelDictionary,
|
||||
),
|
||||
migrations: migrations,
|
||||
offlineRequestQueue: queue,
|
||||
memoryCacheProvider: MemoryCacheProvider(),
|
||||
);
|
||||
|
||||
await _instance!.initialize();
|
||||
_pendingQueue = null;
|
||||
debugPrint('[AppRepository] initialized — offline queue active');
|
||||
}
|
||||
}
|
||||
|
||||
/// Mirrors a Supabase realtime stream into the Brick local SQLite cache.
|
||||
///
|
||||
/// Wrap any `client.from('t').stream(...)` source so every emission is
|
||||
/// upserted into Brick. The cache stays fresh during normal online use, which
|
||||
/// means a cold launch with no network can read a recent snapshot via
|
||||
/// `OfflineFirstGetPolicy.localOnly` instead of rendering an empty list.
|
||||
///
|
||||
/// Cache writes are fire-and-forget — they never block UI updates and any
|
||||
/// upsert error is silently logged (mirroring is best-effort).
|
||||
extension AppRepositoryStreamMirror on AppRepository {
|
||||
Stream<List<T>> mirroredStream<T extends OfflineFirstWithSupabaseModel>(
|
||||
Stream<List<T>> source,
|
||||
) async* {
|
||||
await for (final batch in source) {
|
||||
for (final item in batch) {
|
||||
// Fire-and-forget; never block the UI on cache writes.
|
||||
// ignore: discarded_futures
|
||||
upsert<T>(item).catchError((Object e) {
|
||||
debugPrint('[AppRepository] mirror upsert<$T> failed: $e');
|
||||
return item;
|
||||
});
|
||||
}
|
||||
yield batch;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user