feat: add OrderType enum and integrate orderType in OrderItem and ViewOrdersCubit
This commit is contained in:
@@ -40,6 +40,7 @@ export 'src/entities/orders/recurring_order.dart';
|
||||
export 'src/entities/orders/recurring_order_position.dart';
|
||||
export 'src/entities/orders/permanent_order.dart';
|
||||
export 'src/entities/orders/permanent_order_position.dart';
|
||||
export 'src/entities/orders/order_type.dart';
|
||||
export 'src/entities/orders/order_item.dart';
|
||||
|
||||
// Skills & Certs
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
import 'order_type.dart';
|
||||
|
||||
/// Represents a customer's view of an order or shift.
|
||||
///
|
||||
/// This entity captures the details necessary for the dashboard/view orders screen,
|
||||
@@ -9,6 +11,7 @@ class OrderItem extends Equatable {
|
||||
const OrderItem({
|
||||
required this.id,
|
||||
required this.orderId,
|
||||
required this.orderType,
|
||||
required this.title,
|
||||
required this.clientName,
|
||||
required this.status,
|
||||
@@ -31,6 +34,9 @@ class OrderItem extends Equatable {
|
||||
/// Parent order identifier.
|
||||
final String orderId;
|
||||
|
||||
/// The type of order (e.g., ONE_TIME, PERMANENT).
|
||||
final OrderType orderType;
|
||||
|
||||
/// Title or name of the role.
|
||||
final String title;
|
||||
|
||||
@@ -77,6 +83,7 @@ class OrderItem extends Equatable {
|
||||
List<Object?> get props => <Object?>[
|
||||
id,
|
||||
orderId,
|
||||
orderType,
|
||||
title,
|
||||
clientName,
|
||||
status,
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/// Defines the type of an order.
|
||||
enum OrderType {
|
||||
/// A single occurrence shift.
|
||||
oneTime,
|
||||
|
||||
/// A long-term or permanent staffing position.
|
||||
permanent,
|
||||
|
||||
/// Shifts that repeat on a defined schedule.
|
||||
recurring,
|
||||
|
||||
/// A quickly created shift.
|
||||
rapid;
|
||||
|
||||
/// Creates an [OrderType] from a string value (typically from the backend).
|
||||
static OrderType fromString(String value) {
|
||||
switch (value.toUpperCase()) {
|
||||
case 'ONE_TIME':
|
||||
return OrderType.oneTime;
|
||||
case 'PERMANENT':
|
||||
return OrderType.permanent;
|
||||
case 'RECURRING':
|
||||
return OrderType.recurring;
|
||||
case 'RAPID':
|
||||
return OrderType.rapid;
|
||||
default:
|
||||
return OrderType.oneTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
|
||||
return domain.OrderItem(
|
||||
id: _shiftRoleKey(shiftRole.shiftId, shiftRole.roleId),
|
||||
orderId: shiftRole.shift.order.id,
|
||||
orderType: domain.OrderType.fromString(shiftRole.shift.order.orderType.stringValue),
|
||||
title: '${shiftRole.role.name} - $eventName',
|
||||
clientName: businessName,
|
||||
status: status,
|
||||
|
||||
@@ -178,6 +178,7 @@ class ViewOrdersCubit extends Cubit<ViewOrdersState>
|
||||
return OrderItem(
|
||||
id: order.id,
|
||||
orderId: order.orderId,
|
||||
orderType: order.orderType,
|
||||
title: order.title,
|
||||
clientName: order.clientName,
|
||||
status: status,
|
||||
|
||||
Reference in New Issue
Block a user