/// 音效 Domain 实体
class Sound {
  final int id;
  final String filePath;
  final int typ;
  final String name;
  final int createdAt;
  final int updatedAt;
  final int deletedAt;
  final int channelGroupId;
  final int isDefault;

  const Sound({
    required this.id,
    this.filePath = '',
    required this.typ,
    this.name = '',
    required this.createdAt,
    required this.updatedAt,
    this.deletedAt = 0,
    required this.channelGroupId,
    required this.isDefault,
  });

  Sound copyWith({
    int? id,
    String? filePath,
    int? typ,
    String? name,
    int? createdAt,
    int? updatedAt,
    int? deletedAt,
    int? channelGroupId,
    int? isDefault,
  }) {
    return Sound(
      id: id ?? this.id,
      filePath: filePath ?? this.filePath,
      typ: typ ?? this.typ,
      name: name ?? this.name,
      createdAt: createdAt ?? this.createdAt,
      updatedAt: updatedAt ?? this.updatedAt,
      deletedAt: deletedAt ?? this.deletedAt,
      channelGroupId: channelGroupId ?? this.channelGroupId,
      isDefault: isDefault ?? this.isDefault,
    );
  }
}