Files
tasq/lib/brick/adapters/announcement_adapter.g.dart
2026-04-27 06:20:39 +08:00

320 lines
9.6 KiB
Dart

// 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,
);
}