From da8f9a44369bdb1e36c48bfeeab8a1d07ecaccd9 Mon Sep 17 00:00:00 2001 From: Suriya Date: Thu, 19 Feb 2026 13:56:35 +0530 Subject: [PATCH] chore: restore stashed work - new order usecases and domain entities --- .../src/entities/orders/permanent_order.dart | 76 +++---------------- .../src/entities/orders/recurring_order.dart | 33 ++++++++ .../create_permanent_order_usecase.dart | 11 ++- .../create_recurring_order_usecase.dart | 11 ++- 4 files changed, 52 insertions(+), 79 deletions(-) diff --git a/apps/mobile/packages/domain/lib/src/entities/orders/permanent_order.dart b/apps/mobile/packages/domain/lib/src/entities/orders/permanent_order.dart index f7712bc4..c9b85fff 100644 --- a/apps/mobile/packages/domain/lib/src/entities/orders/permanent_order.dart +++ b/apps/mobile/packages/domain/lib/src/entities/orders/permanent_order.dart @@ -1,12 +1,12 @@ import 'package:equatable/equatable.dart'; -import 'permanent_order_position.dart'; +import 'one_time_order.dart'; +import 'one_time_order_position.dart'; -/// Represents a permanent staffing request spanning a date range. +/// Represents a customer's request for permanent/ongoing staffing. class PermanentOrder extends Equatable { const PermanentOrder({ required this.startDate, required this.permanentDays, - required this.location, required this.positions, this.hub, this.eventName, @@ -14,35 +14,21 @@ class PermanentOrder extends Equatable { this.roleRates = const {}, }); - /// Start date for the permanent schedule. final DateTime startDate; - - /// Days of the week to repeat on (e.g., ["SUN", "MON", ...]). + + /// List of days (e.g., ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']) final List permanentDays; - - /// The primary location where the work will take place. - final String location; - - /// The list of positions and headcounts required for this order. - final List positions; - - /// Selected hub details for this order. - final PermanentOrderHubDetails? hub; - - /// Optional order name. + + final List positions; + final OneTimeOrderHubDetails? hub; final String? eventName; - - /// Selected vendor id for this order. final String? vendorId; - - /// Role hourly rates keyed by role id. final Map roleRates; @override - List get props => [ + List get props => [ startDate, permanentDays, - location, positions, hub, eventName, @@ -50,47 +36,3 @@ class PermanentOrder extends Equatable { roleRates, ]; } - -/// Minimal hub details used during permanent order creation. -class PermanentOrderHubDetails extends Equatable { - const PermanentOrderHubDetails({ - required this.id, - required this.name, - required this.address, - this.placeId, - this.latitude, - this.longitude, - this.city, - this.state, - this.street, - this.country, - this.zipCode, - }); - - final String id; - final String name; - final String address; - final String? placeId; - final double? latitude; - final double? longitude; - final String? city; - final String? state; - final String? street; - final String? country; - final String? zipCode; - - @override - List get props => [ - id, - name, - address, - placeId, - latitude, - longitude, - city, - state, - street, - country, - zipCode, - ]; -} diff --git a/apps/mobile/packages/domain/lib/src/entities/orders/recurring_order.dart b/apps/mobile/packages/domain/lib/src/entities/orders/recurring_order.dart index f11b63ec..df942ad3 100644 --- a/apps/mobile/packages/domain/lib/src/entities/orders/recurring_order.dart +++ b/apps/mobile/packages/domain/lib/src/entities/orders/recurring_order.dart @@ -1,13 +1,23 @@ import 'package:equatable/equatable.dart'; +<<<<<<< Updated upstream import 'recurring_order_position.dart'; /// Represents a recurring staffing request spanning a date range. +======= +import 'one_time_order.dart'; +import 'one_time_order_position.dart'; + +/// Represents a customer's request for recurring staffing. +>>>>>>> Stashed changes class RecurringOrder extends Equatable { const RecurringOrder({ required this.startDate, required this.endDate, required this.recurringDays, +<<<<<<< Updated upstream required this.location, +======= +>>>>>>> Stashed changes required this.positions, this.hub, this.eventName, @@ -15,6 +25,7 @@ class RecurringOrder extends Equatable { this.roleRates = const {}, }); +<<<<<<< Updated upstream /// Start date for the recurring schedule. final DateTime startDate; @@ -48,6 +59,25 @@ class RecurringOrder extends Equatable { endDate, recurringDays, location, +======= + final DateTime startDate; + final DateTime endDate; + + /// List of days (e.g., ['Monday', 'Wednesday']) or bitmask. + final List recurringDays; + + final List positions; + final OneTimeOrderHubDetails? hub; + final String? eventName; + final String? vendorId; + final Map roleRates; + + @override + List get props => [ + startDate, + endDate, + recurringDays, +>>>>>>> Stashed changes positions, hub, eventName, @@ -55,6 +85,7 @@ class RecurringOrder extends Equatable { roleRates, ]; } +<<<<<<< Updated upstream /// Minimal hub details used during recurring order creation. class RecurringOrderHubDetails extends Equatable { @@ -99,3 +130,5 @@ class RecurringOrderHubDetails extends Equatable { zipCode, ]; } +======= +>>>>>>> Stashed changes diff --git a/apps/mobile/packages/features/client/create_order/lib/src/domain/usecases/create_permanent_order_usecase.dart b/apps/mobile/packages/features/client/create_order/lib/src/domain/usecases/create_permanent_order_usecase.dart index b3afda92..68aa0aa1 100644 --- a/apps/mobile/packages/features/client/create_order/lib/src/domain/usecases/create_permanent_order_usecase.dart +++ b/apps/mobile/packages/features/client/create_order/lib/src/domain/usecases/create_permanent_order_usecase.dart @@ -1,16 +1,15 @@ import 'package:krow_core/core.dart'; -import '../arguments/permanent_order_arguments.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../repositories/client_create_order_repository_interface.dart'; /// Use case for creating a permanent staffing order. -class CreatePermanentOrderUseCase - implements UseCase { - /// Creates a [CreatePermanentOrderUseCase]. +class CreatePermanentOrderUseCase implements UseCase, PermanentOrder> { const CreatePermanentOrderUseCase(this._repository); + final ClientCreateOrderRepositoryInterface _repository; @override - Future call(PermanentOrderArguments input) { - return _repository.createPermanentOrder(input.order); + Future call(PermanentOrder params) { + return _repository.createPermanentOrder(params); } } diff --git a/apps/mobile/packages/features/client/create_order/lib/src/domain/usecases/create_recurring_order_usecase.dart b/apps/mobile/packages/features/client/create_order/lib/src/domain/usecases/create_recurring_order_usecase.dart index f24c5841..193b20ef 100644 --- a/apps/mobile/packages/features/client/create_order/lib/src/domain/usecases/create_recurring_order_usecase.dart +++ b/apps/mobile/packages/features/client/create_order/lib/src/domain/usecases/create_recurring_order_usecase.dart @@ -1,16 +1,15 @@ import 'package:krow_core/core.dart'; -import '../arguments/recurring_order_arguments.dart'; +import 'package:krow_domain/krow_domain.dart'; import '../repositories/client_create_order_repository_interface.dart'; /// Use case for creating a recurring staffing order. -class CreateRecurringOrderUseCase - implements UseCase { - /// Creates a [CreateRecurringOrderUseCase]. +class CreateRecurringOrderUseCase implements UseCase, RecurringOrder> { const CreateRecurringOrderUseCase(this._repository); + final ClientCreateOrderRepositoryInterface _repository; @override - Future call(RecurringOrderArguments input) { - return _repository.createRecurringOrder(input.order); + Future call(RecurringOrder params) { + return _repository.createRecurringOrder(params); } }