import 'package:equatable/equatable.dart';

abstract class EditorSessionState extends Equatable {
  const EditorSessionState();

  @override
  List<Object> get props => [];
}

class EditorSessionInitial extends EditorSessionState {}

class EditorSessionStarting extends EditorSessionState {}

class EditorSessionActive extends EditorSessionState {
  final Uri editUrl;
  final String token;

  const EditorSessionActive({required this.editUrl, required this.token});

  @override
  List<Object> get props => [editUrl, token];
}

class EditorSessionReadOnly extends EditorSessionState {
  final Uri viewUrl;
  final String token;

  const EditorSessionReadOnly({required this.viewUrl, required this.token});

  @override
  List<Object> get props => [viewUrl, token];
}

class EditorSessionFailed extends EditorSessionState {
  final String message;

  const EditorSessionFailed({required this.message});

  @override
  List<Object> get props => [message];
}

class EditorSessionExpired extends EditorSessionState {}
