Files
.github
.vscode
android
assets
buildtools
ios
lib
database
models
activity.dart
activity.freezed.dart
activity.g.dart
auth.dart
auth.freezed.dart
auth.g.dart
badge.dart
chat.dart
chat.freezed.dart
chat.g.dart
file.dart
file.freezed.dart
file.g.dart
post.dart
post.freezed.dart
post.g.dart
realm.dart
realm.freezed.dart
realm.g.dart
relationship.dart
relationship.freezed.dart
relationship.g.dart
sticker.dart
sticker.freezed.dart
sticker.g.dart
user.dart
user.freezed.dart
user.g.dart
wallet.dart
wallet.freezed.dart
wallet.g.dart
pods
screens
services
widgets
firebase_options.dart
main.dart
route.dart
route.gr.dart
linux
macos
web
windows
.gitignore
.metadata
README.md
analysis_options.yaml
build.yaml
devtools_options.yaml
firebase.json
pubspec.lock
pubspec.yaml
App/lib/models/sticker.dart
LittleSheep a2053aa772 🐛 Fixes and optimzation on post
♻️ Replace freezed abstract classes with sealed
2025-05-24 22:38:07 +08:00

43 lines
1.1 KiB
Dart

import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:island/models/file.dart';
import 'package:island/models/post.dart';
part 'sticker.freezed.dart';
part 'sticker.g.dart';
@freezed
sealed class SnSticker with _$SnSticker {
const factory SnSticker({
required String id,
required String slug,
required String imageId,
required SnCloudFile image,
required String packId,
required SnStickerPack? pack,
required DateTime createdAt,
required DateTime updatedAt,
required DateTime? deletedAt,
}) = _SnSticker;
factory SnSticker.fromJson(Map<String, dynamic> json) =>
_$SnStickerFromJson(json);
}
@freezed
sealed class SnStickerPack with _$SnStickerPack {
const factory SnStickerPack({
required String id,
required String name,
required String description,
required String prefix,
required String publisherId,
required SnPublisher? publisher,
required DateTime createdAt,
required DateTime updatedAt,
required DateTime? deletedAt,
}) = _SnStickerPack;
factory SnStickerPack.fromJson(Map<String, dynamic> json) =>
_$SnStickerPackFromJson(json);
}