Files
syncrow-web/lib/pages/spaces_management/bloc/space_management_event.dart
2024-11-22 00:29:35 +04:00

109 lines
2.4 KiB
Dart

import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:syncrow_web/pages/spaces_management/model/space_model.dart'; // Import for Offset
abstract class SpaceManagementEvent extends Equatable {
const SpaceManagementEvent();
@override
List<Object> get props => [];
}
class LoadCommunityAndSpacesEvent extends SpaceManagementEvent {}
class DeleteCommunityEvent extends SpaceManagementEvent {
final String communityUuid;
const DeleteCommunityEvent({
required this.communityUuid,
});
@override
List<Object> get props => [communityUuid];
}
class CreateSpaceEvent extends SpaceManagementEvent {
final String name;
final String icon;
final Offset position;
final int? parentIndex;
final String? direction;
const CreateSpaceEvent({
required this.name,
required this.icon,
required this.position,
this.parentIndex,
this.direction,
});
@override
List<Object> get props => [
name,
icon,
position,
parentIndex ?? -1, // Use a fallback value if nullable
direction ?? '', // Use a fallback value if nullable
];
}
class SaveSpacesEvent extends SpaceManagementEvent {
final List<SpaceModel> spaces;
final String communityUuid;
const SaveSpacesEvent({
required this.spaces,
required this.communityUuid,
});
@override
List<Object> get props => [spaces, communityUuid];
}
class UpdateSpacePositionEvent extends SpaceManagementEvent {
final int index;
final Offset newPosition;
const UpdateSpacePositionEvent(this.index, this.newPosition);
@override
List<Object> get props => [index, newPosition];
}
class CreateCommunityEvent extends SpaceManagementEvent {
final String name;
final String description;
const CreateCommunityEvent({
required this.name,
required this.description,
});
@override
List<Object> get props => [name, description];
}
class FetchProductsEvent extends SpaceManagementEvent {}
class LoadSpaceHierarchyEvent extends SpaceManagementEvent {
final String communityId;
const LoadSpaceHierarchyEvent({required this.communityId});
@override
List<Object> get props => [communityId];
}
class UpdateCommunityEvent extends SpaceManagementEvent {
final String communityUuid;
final String name;
const UpdateCommunityEvent({
required this.communityUuid,
required this.name,
});
@override
List<Object> get props => [communityUuid, name];
}