/// 最近小程序 Domain 实体
class RecentMiniApp {
  final String id;
  final String? name;
  final String? openuid;
  final String? devId;
  final String? icon;
  final String? iconGaussian;
  final String? downloadUrl;
  final String? description;
  final int? version;
  final int? typ;
  final int? flag;
  final int? reviewStatus;
  final int? favoriteAt;
  final int? isActive;
  final int? createdAt;
  final int? updatedAt;
  final int? deletedAt;
  final double? score;
  final String? channels;
  final String? devName;
  final String? pictureGaussian;
  final String? picture;
  final int? commentNum;
  final int? lastLoginAt;
  final String? screen;

  const RecentMiniApp({
    required this.id,
    this.name,
    this.openuid,
    this.devId,
    this.icon,
    this.iconGaussian,
    this.downloadUrl,
    this.description,
    this.version,
    this.typ,
    this.flag,
    this.reviewStatus,
    this.favoriteAt,
    this.isActive,
    this.createdAt,
    this.updatedAt,
    this.deletedAt,
    this.score,
    this.channels,
    this.devName,
    this.pictureGaussian,
    this.picture,
    this.commentNum,
    this.lastLoginAt,
    this.screen,
  });

  RecentMiniApp copyWith({
    String? id,
    String? name,
    String? openuid,
    String? devId,
    String? icon,
    String? iconGaussian,
    String? downloadUrl,
    String? description,
    int? version,
    int? typ,
    int? flag,
    int? reviewStatus,
    int? favoriteAt,
    int? isActive,
    int? createdAt,
    int? updatedAt,
    int? deletedAt,
    double? score,
    String? channels,
    String? devName,
    String? pictureGaussian,
    String? picture,
    int? commentNum,
    int? lastLoginAt,
    String? screen,
  }) {
    return RecentMiniApp(
      id: id ?? this.id,
      name: name ?? this.name,
      openuid: openuid ?? this.openuid,
      devId: devId ?? this.devId,
      icon: icon ?? this.icon,
      iconGaussian: iconGaussian ?? this.iconGaussian,
      downloadUrl: downloadUrl ?? this.downloadUrl,
      description: description ?? this.description,
      version: version ?? this.version,
      typ: typ ?? this.typ,
      flag: flag ?? this.flag,
      reviewStatus: reviewStatus ?? this.reviewStatus,
      favoriteAt: favoriteAt ?? this.favoriteAt,
      isActive: isActive ?? this.isActive,
      createdAt: createdAt ?? this.createdAt,
      updatedAt: updatedAt ?? this.updatedAt,
      deletedAt: deletedAt ?? this.deletedAt,
      score: score ?? this.score,
      channels: channels ?? this.channels,
      devName: devName ?? this.devName,
      pictureGaussian: pictureGaussian ?? this.pictureGaussian,
      picture: picture ?? this.picture,
      commentNum: commentNum ?? this.commentNum,
      lastLoginAt: lastLoginAt ?? this.lastLoginAt,
      screen: screen ?? this.screen,
    );
  }
}