refactor: remove OrderType entity and update order types to use UiOrderType

This commit is contained in:
Achintha Isuru
2026-02-21 20:29:59 -05:00
parent 9817dbeec8
commit 6e50369e17
5 changed files with 20 additions and 35 deletions

View File

@@ -34,7 +34,6 @@ export 'src/entities/shifts/break/break.dart';
export 'src/adapters/shifts/break/break_adapter.dart'; export 'src/adapters/shifts/break/break_adapter.dart';
// Orders & Requests // Orders & Requests
export 'src/entities/orders/order_type.dart';
export 'src/entities/orders/one_time_order.dart'; export 'src/entities/orders/one_time_order.dart';
export 'src/entities/orders/one_time_order_position.dart'; export 'src/entities/orders/one_time_order_position.dart';
export 'src/entities/orders/recurring_order.dart'; export 'src/entities/orders/recurring_order.dart';

View File

@@ -1,25 +0,0 @@
import 'package:equatable/equatable.dart';
/// Represents a type of order that can be created (e.g., Rapid, One-Time).
///
/// This entity defines the identity and display metadata (keys) for the order type.
/// UI-specific properties like colors and icons are handled by the presentation layer.
class OrderType extends Equatable {
const OrderType({
required this.id,
required this.titleKey,
required this.descriptionKey,
});
/// Unique identifier for the order type.
final String id;
/// Translation key for the title.
final String titleKey;
/// Translation key for the description.
final String descriptionKey;
@override
List<Object?> get props => <Object?>[id, titleKey, descriptionKey];
}

View File

@@ -1,25 +1,35 @@
import 'package:krow_domain/krow_domain.dart' as domain; class UiOrderType {
const UiOrderType({
required this.id,
required this.titleKey,
required this.descriptionKey,
});
final String id;
final String titleKey;
final String descriptionKey;
}
/// Order type constants for the create order feature /// Order type constants for the create order feature
const List<domain.OrderType> orderTypes = <domain.OrderType>[ const List<UiOrderType> orderTypes = <UiOrderType>[
/// TODO: FEATURE_NOT_YET_IMPLEMENTED /// TODO: FEATURE_NOT_YET_IMPLEMENTED
// domain.OrderType( // UiOrderType(
// id: 'rapid', // id: 'rapid',
// titleKey: 'client_create_order.types.rapid', // titleKey: 'client_create_order.types.rapid',
// descriptionKey: 'client_create_order.types.rapid_desc', // descriptionKey: 'client_create_order.types.rapid_desc',
// ), // ),
domain.OrderType( UiOrderType(
id: 'one-time', id: 'one-time',
titleKey: 'client_create_order.types.one_time', titleKey: 'client_create_order.types.one_time',
descriptionKey: 'client_create_order.types.one_time_desc', descriptionKey: 'client_create_order.types.one_time_desc',
), ),
domain.OrderType( UiOrderType(
id: 'recurring', id: 'recurring',
titleKey: 'client_create_order.types.recurring', titleKey: 'client_create_order.types.recurring',
descriptionKey: 'client_create_order.types.recurring_desc', descriptionKey: 'client_create_order.types.recurring_desc',
), ),
domain.OrderType( UiOrderType(
id: 'permanent', id: 'permanent',
titleKey: 'client_create_order.types.permanent', titleKey: 'client_create_order.types.permanent',
descriptionKey: 'client_create_order.types.permanent_desc', descriptionKey: 'client_create_order.types.permanent_desc',

View File

@@ -68,7 +68,7 @@ class CreateOrderView extends StatelessWidget {
), ),
itemCount: orderTypes.length, itemCount: orderTypes.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
final OrderType type = orderTypes[index]; final UiOrderType type = orderTypes[index];
final OrderTypeUiMetadata ui = OrderTypeUiMetadata.fromId( final OrderTypeUiMetadata ui = OrderTypeUiMetadata.fromId(
id: type.id, id: type.id,
); );

View File

@@ -1,4 +1,5 @@
import 'package:firebase_data_connect/firebase_data_connect.dart' as fdc; import 'package:firebase_data_connect/firebase_data_connect.dart' as fdc;
import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:krow_data_connect/krow_data_connect.dart' as dc; import 'package:krow_data_connect/krow_data_connect.dart' as dc;
import 'package:krow_domain/krow_domain.dart' as domain; import 'package:krow_domain/krow_domain.dart' as domain;
@@ -31,7 +32,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
end: endTimestamp, end: endTimestamp,
) )
.execute(); .execute();
print( debugPrint(
'ViewOrders range start=${start.toIso8601String()} end=${end.toIso8601String()} shiftRoles=${result.data.shiftRoles.length}', 'ViewOrders range start=${start.toIso8601String()} end=${end.toIso8601String()} shiftRoles=${result.data.shiftRoles.length}',
); );
@@ -51,7 +52,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
// final String status = filled >= workersNeeded ? 'filled' : 'open'; // final String status = filled >= workersNeeded ? 'filled' : 'open';
final String status = shiftRole.shift.status?.stringValue ?? 'OPEN'; final String status = shiftRole.shift.status?.stringValue ?? 'OPEN';
print( debugPrint(
'ViewOrders item: date=$dateStr status=$status shiftId=${shiftRole.shiftId} ' 'ViewOrders item: date=$dateStr status=$status shiftId=${shiftRole.shiftId} '
'roleId=${shiftRole.roleId} start=${shiftRole.startTime?.toJson()} ' 'roleId=${shiftRole.roleId} start=${shiftRole.startTime?.toJson()} '
'end=${shiftRole.endTime?.toJson()} hours=$hours totalValue=$totalValue', 'end=${shiftRole.endTime?.toJson()} hours=$hours totalValue=$totalValue',