diff --git a/apps/mobile/packages/core/lib/core.dart b/apps/mobile/packages/core/lib/core.dart index 61f255d1..129afe0a 100644 --- a/apps/mobile/packages/core/lib/core.dart +++ b/apps/mobile/packages/core/lib/core.dart @@ -26,9 +26,6 @@ export 'src/services/api_service/endpoints/auth_endpoints.dart'; export 'src/services/api_service/endpoints/client_endpoints.dart'; export 'src/services/api_service/endpoints/core_endpoints.dart'; export 'src/services/api_service/endpoints/staff_endpoints.dart'; -// Backward-compatible facades (deprecated) -export 'src/services/api_service/core_api_services/core_api_endpoints.dart'; -export 'src/services/api_service/core_api_services/v2_api_endpoints.dart'; export 'src/services/api_service/core_api_services/file_upload/file_upload_service.dart'; export 'src/services/api_service/core_api_services/file_upload/file_upload_response.dart'; export 'src/services/api_service/core_api_services/signed_url/signed_url_service.dart'; diff --git a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/core_api_endpoints.dart b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/core_api_endpoints.dart deleted file mode 100644 index a5b53e05..00000000 --- a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/core_api_endpoints.dart +++ /dev/null @@ -1,41 +0,0 @@ -import 'package:krow_core/src/services/api_service/endpoints/core_endpoints.dart'; - -/// Backward-compatible facade that re-exports all Core API endpoints as -/// [String] paths. -/// -/// New code should use [CoreEndpoints] directly. -@Deprecated('Use CoreEndpoints directly') -class CoreApiEndpoints { - CoreApiEndpoints._(); - - /// Upload a file. - static String get uploadFile => CoreEndpoints.uploadFile.path; - - /// Create a signed URL for a file. - static String get createSignedUrl => CoreEndpoints.createSignedUrl.path; - - /// Invoke a Large Language Model. - static String get invokeLlm => CoreEndpoints.invokeLlm.path; - - /// Root for verification operations. - static String get verifications => CoreEndpoints.verifications.path; - - /// Get status of a verification job. - static String verificationStatus(String id) => - CoreEndpoints.verificationStatus(id).path; - - /// Review a verification decision. - static String verificationReview(String id) => - CoreEndpoints.verificationReview(id).path; - - /// Retry a verification job. - static String verificationRetry(String id) => - CoreEndpoints.verificationRetry(id).path; - - /// Transcribe audio to text for rapid orders. - static String get transcribeRapidOrder => - CoreEndpoints.transcribeRapidOrder.path; - - /// Parse text to structured rapid order. - static String get parseRapidOrder => CoreEndpoints.parseRapidOrder.path; -} diff --git a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/file_upload/file_upload_service.dart b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/file_upload/file_upload_service.dart index 09dc2854..84ffd05f 100644 --- a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/file_upload/file_upload_service.dart +++ b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/file_upload/file_upload_service.dart @@ -1,6 +1,6 @@ import 'package:dio/dio.dart'; import 'package:krow_domain/krow_domain.dart'; -import '../core_api_endpoints.dart'; +import '../../endpoints/core_endpoints.dart'; import 'file_upload_response.dart'; /// Service for uploading files to the Core API. @@ -26,7 +26,7 @@ class FileUploadService extends BaseCoreService { if (category != null) 'category': category, }); - return api.post(CoreApiEndpoints.uploadFile, data: formData); + return api.post(CoreEndpoints.uploadFile.path, data: formData); }); if (res.code.startsWith('2')) { diff --git a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/llm/llm_service.dart b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/llm/llm_service.dart index 5bf6208d..db5ab3a7 100644 --- a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/llm/llm_service.dart +++ b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/llm/llm_service.dart @@ -1,5 +1,5 @@ import 'package:krow_domain/krow_domain.dart'; -import '../core_api_endpoints.dart'; +import '../../endpoints/core_endpoints.dart'; import 'llm_response.dart'; /// Service for invoking Large Language Models (LLM). @@ -19,7 +19,7 @@ class LlmService extends BaseCoreService { }) async { final ApiResponse res = await action(() async { return api.post( - CoreApiEndpoints.invokeLlm, + CoreEndpoints.invokeLlm.path, data: { 'prompt': prompt, if (responseJsonSchema != null) diff --git a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/rapid_order/rapid_order_service.dart b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/rapid_order/rapid_order_service.dart index 5715d9ec..92e8d249 100644 --- a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/rapid_order/rapid_order_service.dart +++ b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/rapid_order/rapid_order_service.dart @@ -1,5 +1,5 @@ import 'package:krow_domain/krow_domain.dart'; -import '../core_api_endpoints.dart'; +import '../../endpoints/core_endpoints.dart'; import 'rapid_order_response.dart'; /// Service for handling RAPID order operations (Transcription and Parsing). @@ -19,7 +19,7 @@ class RapidOrderService extends BaseCoreService { }) async { final ApiResponse res = await action(() async { return api.post( - CoreApiEndpoints.transcribeRapidOrder, + CoreEndpoints.transcribeRapidOrder.path, data: { 'audioFileUri': audioFileUri, 'locale': locale, @@ -51,7 +51,7 @@ class RapidOrderService extends BaseCoreService { }) async { final ApiResponse res = await action(() async { return api.post( - CoreApiEndpoints.parseRapidOrder, + CoreEndpoints.parseRapidOrder.path, data: { 'text': text, 'locale': locale, diff --git a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/signed_url/signed_url_service.dart b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/signed_url/signed_url_service.dart index f25fea52..24af5336 100644 --- a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/signed_url/signed_url_service.dart +++ b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/signed_url/signed_url_service.dart @@ -1,5 +1,5 @@ import 'package:krow_domain/krow_domain.dart'; -import '../core_api_endpoints.dart'; +import '../../endpoints/core_endpoints.dart'; import 'signed_url_response.dart'; /// Service for creating signed URLs for Cloud Storage objects. @@ -17,7 +17,7 @@ class SignedUrlService extends BaseCoreService { }) async { final ApiResponse res = await action(() async { return api.post( - CoreApiEndpoints.createSignedUrl, + CoreEndpoints.createSignedUrl.path, data: { 'fileUri': fileUri, 'expiresInSeconds': expiresInSeconds, diff --git a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/v2_api_endpoints.dart b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/v2_api_endpoints.dart deleted file mode 100644 index 930ea8aa..00000000 --- a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/v2_api_endpoints.dart +++ /dev/null @@ -1,358 +0,0 @@ -import 'package:krow_core/src/services/api_service/endpoints/auth_endpoints.dart'; -import 'package:krow_core/src/services/api_service/endpoints/client_endpoints.dart'; -import 'package:krow_core/src/services/api_service/endpoints/staff_endpoints.dart'; - -/// Backward-compatible facade that re-exports all V2 endpoints as [String] -/// paths. -/// -/// New code should use [AuthEndpoints], [StaffEndpoints], or -/// [ClientEndpoints] directly. -@Deprecated( - 'Use AuthEndpoints, StaffEndpoints, or ClientEndpoints directly', -) -class V2ApiEndpoints { - V2ApiEndpoints._(); - - // ── Auth ────────────────────────────────────────────────────────────── - - /// Client email/password sign-in. - static String get clientSignIn => AuthEndpoints.clientSignIn.path; - - /// Client business registration. - static String get clientSignUp => AuthEndpoints.clientSignUp.path; - - /// Client sign-out. - static String get clientSignOut => AuthEndpoints.clientSignOut.path; - - /// Start staff phone verification (SMS). - static String get staffPhoneStart => AuthEndpoints.staffPhoneStart.path; - - /// Complete staff phone verification. - static String get staffPhoneVerify => AuthEndpoints.staffPhoneVerify.path; - - /// Generic sign-out. - static String get signOut => AuthEndpoints.signOut.path; - - /// Staff-specific sign-out. - static String get staffSignOut => AuthEndpoints.staffSignOut.path; - - /// Get current session data. - static String get session => AuthEndpoints.session.path; - - // ── Staff Read ──────────────────────────────────────────────────────── - - /// Staff session data. - static String get staffSession => StaffEndpoints.session.path; - - /// Staff dashboard overview. - static String get staffDashboard => StaffEndpoints.dashboard.path; - - /// Staff profile completion status. - static String get staffProfileCompletion => - StaffEndpoints.profileCompletion.path; - - /// Staff availability schedule. - static String get staffAvailability => StaffEndpoints.availability.path; - - /// Today's shifts for clock-in. - static String get staffClockInShiftsToday => - StaffEndpoints.clockInShiftsToday.path; - - /// Current clock-in status. - static String get staffClockInStatus => StaffEndpoints.clockInStatus.path; - - /// Payments summary. - static String get staffPaymentsSummary => - StaffEndpoints.paymentsSummary.path; - - /// Payments history. - static String get staffPaymentsHistory => - StaffEndpoints.paymentsHistory.path; - - /// Payments chart data. - static String get staffPaymentsChart => StaffEndpoints.paymentsChart.path; - - /// Assigned shifts. - static String get staffShiftsAssigned => - StaffEndpoints.shiftsAssigned.path; - - /// Open shifts available to apply. - static String get staffShiftsOpen => StaffEndpoints.shiftsOpen.path; - - /// Pending shift assignments. - static String get staffShiftsPending => StaffEndpoints.shiftsPending.path; - - /// Cancelled shifts. - static String get staffShiftsCancelled => - StaffEndpoints.shiftsCancelled.path; - - /// Completed shifts. - static String get staffShiftsCompleted => - StaffEndpoints.shiftsCompleted.path; - - /// Shift details by ID. - static String staffShiftDetails(String shiftId) => - StaffEndpoints.shiftDetails(shiftId).path; - - /// Staff profile sections overview. - static String get staffProfileSections => - StaffEndpoints.profileSections.path; - - /// Personal info. - static String get staffPersonalInfo => StaffEndpoints.personalInfo.path; - - /// Industries/experience. - static String get staffIndustries => StaffEndpoints.industries.path; - - /// Skills. - static String get staffSkills => StaffEndpoints.skills.path; - - /// Documents. - static String get staffDocuments => StaffEndpoints.documents.path; - - /// Attire items. - static String get staffAttire => StaffEndpoints.attire.path; - - /// Tax forms. - static String get staffTaxForms => StaffEndpoints.taxForms.path; - - /// Emergency contacts. - static String get staffEmergencyContacts => - StaffEndpoints.emergencyContacts.path; - - /// Certificates. - static String get staffCertificates => StaffEndpoints.certificates.path; - - /// Bank accounts. - static String get staffBankAccounts => StaffEndpoints.bankAccounts.path; - - /// Benefits. - static String get staffBenefits => StaffEndpoints.benefits.path; - - /// Time card. - static String get staffTimeCard => StaffEndpoints.timeCard.path; - - /// Privacy settings. - static String get staffPrivacy => StaffEndpoints.privacy.path; - - /// FAQs. - static String get staffFaqs => StaffEndpoints.faqs.path; - - /// FAQs search. - static String get staffFaqsSearch => StaffEndpoints.faqsSearch.path; - - // ── Staff Write ─────────────────────────────────────────────────────── - - /// Staff profile setup. - static String get staffProfileSetup => StaffEndpoints.profileSetup.path; - - /// Clock in. - static String get staffClockIn => StaffEndpoints.clockIn.path; - - /// Clock out. - static String get staffClockOut => StaffEndpoints.clockOut.path; - - /// Quick-set availability. - static String get staffAvailabilityQuickSet => - StaffEndpoints.availabilityQuickSet.path; - - /// Apply for a shift. - static String staffShiftApply(String shiftId) => - StaffEndpoints.shiftApply(shiftId).path; - - /// Accept a shift. - static String staffShiftAccept(String shiftId) => - StaffEndpoints.shiftAccept(shiftId).path; - - /// Decline a shift. - static String staffShiftDecline(String shiftId) => - StaffEndpoints.shiftDecline(shiftId).path; - - /// Request a shift swap. - static String staffShiftRequestSwap(String shiftId) => - StaffEndpoints.shiftRequestSwap(shiftId).path; - - /// Update emergency contact by ID. - static String staffEmergencyContactUpdate(String contactId) => - StaffEndpoints.emergencyContactUpdate(contactId).path; - - /// Update tax form by type. - static String staffTaxFormUpdate(String formType) => - StaffEndpoints.taxFormUpdate(formType).path; - - /// Submit tax form by type. - static String staffTaxFormSubmit(String formType) => - StaffEndpoints.taxFormSubmit(formType).path; - - /// Upload staff profile photo. - static String get staffProfilePhoto => StaffEndpoints.profilePhoto.path; - - /// Upload document by ID. - static String staffDocumentUpload(String documentId) => - StaffEndpoints.documentUpload(documentId).path; - - /// Upload attire by ID. - static String staffAttireUpload(String documentId) => - StaffEndpoints.attireUpload(documentId).path; - - /// Delete certificate by ID. - static String staffCertificateDelete(String certificateId) => - StaffEndpoints.certificateDelete(certificateId).path; - - // ── Client Read ─────────────────────────────────────────────────────── - - /// Client session data. - static String get clientSession => ClientEndpoints.session.path; - - /// Client dashboard. - static String get clientDashboard => ClientEndpoints.dashboard.path; - - /// Client reorders. - static String get clientReorders => ClientEndpoints.reorders.path; - - /// Billing accounts. - static String get clientBillingAccounts => - ClientEndpoints.billingAccounts.path; - - /// Pending invoices. - static String get clientBillingInvoicesPending => - ClientEndpoints.billingInvoicesPending.path; - - /// Invoice history. - static String get clientBillingInvoicesHistory => - ClientEndpoints.billingInvoicesHistory.path; - - /// Current bill. - static String get clientBillingCurrentBill => - ClientEndpoints.billingCurrentBill.path; - - /// Savings data. - static String get clientBillingSavings => - ClientEndpoints.billingSavings.path; - - /// Spend breakdown. - static String get clientBillingSpendBreakdown => - ClientEndpoints.billingSpendBreakdown.path; - - /// Coverage overview. - static String get clientCoverage => ClientEndpoints.coverage.path; - - /// Coverage stats. - static String get clientCoverageStats => - ClientEndpoints.coverageStats.path; - - /// Core team. - static String get clientCoverageCoreTeam => - ClientEndpoints.coverageCoreTeam.path; - - /// Hubs list. - static String get clientHubs => ClientEndpoints.hubs.path; - - /// Cost centers. - static String get clientCostCenters => ClientEndpoints.costCenters.path; - - /// Vendors. - static String get clientVendors => ClientEndpoints.vendors.path; - - /// Vendor roles by ID. - static String clientVendorRoles(String vendorId) => - ClientEndpoints.vendorRoles(vendorId).path; - - /// Hub managers by ID. - static String clientHubManagers(String hubId) => - ClientEndpoints.hubManagers(hubId).path; - - /// Team members. - static String get clientTeamMembers => ClientEndpoints.teamMembers.path; - - /// View orders. - static String get clientOrdersView => ClientEndpoints.ordersView.path; - - /// Order reorder preview. - static String clientOrderReorderPreview(String orderId) => - ClientEndpoints.orderReorderPreview(orderId).path; - - /// Reports summary. - static String get clientReportsSummary => - ClientEndpoints.reportsSummary.path; - - /// Daily ops report. - static String get clientReportsDailyOps => - ClientEndpoints.reportsDailyOps.path; - - /// Spend report. - static String get clientReportsSpend => ClientEndpoints.reportsSpend.path; - - /// Coverage report. - static String get clientReportsCoverage => - ClientEndpoints.reportsCoverage.path; - - /// Forecast report. - static String get clientReportsForecast => - ClientEndpoints.reportsForecast.path; - - /// Performance report. - static String get clientReportsPerformance => - ClientEndpoints.reportsPerformance.path; - - /// No-show report. - static String get clientReportsNoShow => - ClientEndpoints.reportsNoShow.path; - - // ── Client Write ────────────────────────────────────────────────────── - - /// Create one-time order. - static String get clientOrdersOneTime => - ClientEndpoints.ordersOneTime.path; - - /// Create recurring order. - static String get clientOrdersRecurring => - ClientEndpoints.ordersRecurring.path; - - /// Create permanent order. - static String get clientOrdersPermanent => - ClientEndpoints.ordersPermanent.path; - - /// Edit order by ID. - static String clientOrderEdit(String orderId) => - ClientEndpoints.orderEdit(orderId).path; - - /// Cancel order by ID. - static String clientOrderCancel(String orderId) => - ClientEndpoints.orderCancel(orderId).path; - - /// Create hub. - static String get clientHubCreate => ClientEndpoints.hubCreate.path; - - /// Update hub by ID. - static String clientHubUpdate(String hubId) => - ClientEndpoints.hubUpdate(hubId).path; - - /// Delete hub by ID. - static String clientHubDelete(String hubId) => - ClientEndpoints.hubDelete(hubId).path; - - /// Assign NFC to hub. - static String clientHubAssignNfc(String hubId) => - ClientEndpoints.hubAssignNfc(hubId).path; - - /// Assign managers to hub. - static String clientHubAssignManagers(String hubId) => - ClientEndpoints.hubAssignManagers(hubId).path; - - /// Approve invoice. - static String clientInvoiceApprove(String invoiceId) => - ClientEndpoints.invoiceApprove(invoiceId).path; - - /// Dispute invoice. - static String clientInvoiceDispute(String invoiceId) => - ClientEndpoints.invoiceDispute(invoiceId).path; - - /// Submit coverage review. - static String get clientCoverageReviews => - ClientEndpoints.coverageReviews.path; - - /// Cancel late worker assignment. - static String clientCoverageCancelLateWorker(String assignmentId) => - ClientEndpoints.coverageCancelLateWorker(assignmentId).path; -} diff --git a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/verification/verification_service.dart b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/verification/verification_service.dart index 3dd72b79..db35f5dc 100644 --- a/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/verification/verification_service.dart +++ b/apps/mobile/packages/core/lib/src/services/api_service/core_api_services/verification/verification_service.dart @@ -1,5 +1,5 @@ import 'package:krow_domain/krow_domain.dart'; -import '../core_api_endpoints.dart'; +import '../../endpoints/core_endpoints.dart'; import 'verification_response.dart'; /// Service for handling async verification jobs. @@ -22,7 +22,7 @@ class VerificationService extends BaseCoreService { }) async { final ApiResponse res = await action(() async { return api.post( - CoreApiEndpoints.verifications, + CoreEndpoints.verifications.path, data: { 'type': type, 'subjectType': subjectType, @@ -44,7 +44,7 @@ class VerificationService extends BaseCoreService { /// Polls the status of a specific verification. Future getStatus(String verificationId) async { final ApiResponse res = await action(() async { - return api.get(CoreApiEndpoints.verificationStatus(verificationId)); + return api.get(CoreEndpoints.verificationStatus(verificationId).path); }); if (res.code.startsWith('2')) { @@ -65,7 +65,7 @@ class VerificationService extends BaseCoreService { }) async { final ApiResponse res = await action(() async { return api.post( - CoreApiEndpoints.verificationReview(verificationId), + CoreEndpoints.verificationReview(verificationId).path, data: { 'decision': decision, if (note != null) 'note': note, @@ -84,7 +84,7 @@ class VerificationService extends BaseCoreService { /// Retries a verification job that failed or needs re-processing. Future retryVerification(String verificationId) async { final ApiResponse res = await action(() async { - return api.post(CoreApiEndpoints.verificationRetry(verificationId)); + return api.post(CoreEndpoints.verificationRetry(verificationId).path); }); if (res.code.startsWith('2')) { diff --git a/apps/mobile/packages/core/lib/src/services/session/v2_session_service.dart b/apps/mobile/packages/core/lib/src/services/session/v2_session_service.dart index 0e55469a..28881cf8 100644 --- a/apps/mobile/packages/core/lib/src/services/session/v2_session_service.dart +++ b/apps/mobile/packages/core/lib/src/services/session/v2_session_service.dart @@ -3,7 +3,7 @@ import 'package:flutter/foundation.dart'; import 'package:krow_domain/krow_domain.dart'; import '../api_service/api_service.dart'; -import '../api_service/core_api_services/v2_api_endpoints.dart'; +import '../api_service/endpoints/auth_endpoints.dart'; import '../api_service/mixins/session_handler_mixin.dart'; import 'client_session_store.dart'; import 'staff_session_store.dart'; @@ -51,7 +51,7 @@ class V2SessionService with SessionHandlerMixin { return null; } - final ApiResponse response = await api.get(V2ApiEndpoints.session); + final ApiResponse response = await api.get(AuthEndpoints.session.path); if (response.data is Map) { final Map data = @@ -99,7 +99,7 @@ class V2SessionService with SessionHandlerMixin { final BaseApiService? api = _apiService; if (api != null) { try { - await api.post(V2ApiEndpoints.signOut); + await api.post(AuthEndpoints.signOut.path); } catch (e) { debugPrint('[V2SessionService] Server sign-out failed: $e'); } diff --git a/apps/mobile/packages/features/client/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart b/apps/mobile/packages/features/client/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart index 4f84d295..b1f85552 100644 --- a/apps/mobile/packages/features/client/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart +++ b/apps/mobile/packages/features/client/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart @@ -45,7 +45,7 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { // Step 1: Call V2 sign-in endpoint — server handles Firebase Auth // via Identity Toolkit and returns a full auth envelope. final ApiResponse response = await _apiService.post( - V2ApiEndpoints.clientSignIn, + AuthEndpoints.clientSignIn.path, data: { 'email': email, 'password': password, @@ -107,7 +107,7 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { // - Creates user, tenant, business, memberships in one transaction // - Returns full auth envelope with session tokens final ApiResponse response = await _apiService.post( - V2ApiEndpoints.clientSignUp, + AuthEndpoints.clientSignUp.path, data: { 'companyName': companyName, 'email': email, @@ -172,7 +172,7 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { Future signOut() async { try { // Step 1: Call V2 sign-out endpoint for server-side token revocation. - await _apiService.post(V2ApiEndpoints.clientSignOut); + await _apiService.post(AuthEndpoints.clientSignOut.path); } catch (e) { developer.log( 'V2 sign-out request failed: $e', diff --git a/apps/mobile/packages/features/client/billing/lib/src/data/repositories_impl/billing_repository_impl.dart b/apps/mobile/packages/features/client/billing/lib/src/data/repositories_impl/billing_repository_impl.dart index c8e8eea3..ac5b928b 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/data/repositories_impl/billing_repository_impl.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/data/repositories_impl/billing_repository_impl.dart @@ -5,7 +5,7 @@ import 'package:billing/src/domain/repositories/billing_repository.dart'; /// Implementation of [BillingRepository] using the V2 REST API. /// -/// All backend calls go through [BaseApiService] with [V2ApiEndpoints]. +/// All backend calls go through [BaseApiService] with [ClientEndpoints]. class BillingRepositoryImpl implements BillingRepository { /// Creates a [BillingRepositoryImpl]. BillingRepositoryImpl({required BaseApiService apiService}) @@ -17,7 +17,7 @@ class BillingRepositoryImpl implements BillingRepository { @override Future> getBankAccounts() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientBillingAccounts); + await _apiService.get(ClientEndpoints.billingAccounts.path); final List items = (response.data as Map)['items'] as List; return items @@ -29,7 +29,7 @@ class BillingRepositoryImpl implements BillingRepository { @override Future> getPendingInvoices() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientBillingInvoicesPending); + await _apiService.get(ClientEndpoints.billingInvoicesPending.path); final List items = (response.data as Map)['items'] as List; return items @@ -41,7 +41,7 @@ class BillingRepositoryImpl implements BillingRepository { @override Future> getInvoiceHistory() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientBillingInvoicesHistory); + await _apiService.get(ClientEndpoints.billingInvoicesHistory.path); final List items = (response.data as Map)['items'] as List; return items @@ -53,7 +53,7 @@ class BillingRepositoryImpl implements BillingRepository { @override Future getCurrentBillCents() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientBillingCurrentBill); + await _apiService.get(ClientEndpoints.billingCurrentBill.path); final Map data = response.data as Map; return (data['currentBillCents'] as num).toInt(); @@ -62,7 +62,7 @@ class BillingRepositoryImpl implements BillingRepository { @override Future getSavingsCents() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientBillingSavings); + await _apiService.get(ClientEndpoints.billingSavings.path); final Map data = response.data as Map; return (data['savingsCents'] as num).toInt(); @@ -74,7 +74,7 @@ class BillingRepositoryImpl implements BillingRepository { required String endDate, }) async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientBillingSpendBreakdown, + ClientEndpoints.billingSpendBreakdown.path, params: { 'startDate': startDate, 'endDate': endDate, @@ -90,13 +90,13 @@ class BillingRepositoryImpl implements BillingRepository { @override Future approveInvoice(String id) async { - await _apiService.post(V2ApiEndpoints.clientInvoiceApprove(id)); + await _apiService.post(ClientEndpoints.invoiceApprove(id).path); } @override Future disputeInvoice(String id, String reason) async { await _apiService.post( - V2ApiEndpoints.clientInvoiceDispute(id), + ClientEndpoints.invoiceDispute(id).path, data: {'reason': reason}, ); } diff --git a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/completion_review/completion_review_worker_card.dart b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/completion_review/completion_review_worker_card.dart index 8c146aea..39204a24 100644 --- a/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/completion_review/completion_review_worker_card.dart +++ b/apps/mobile/packages/features/client/billing/lib/src/presentation/widgets/completion_review/completion_review_worker_card.dart @@ -1,4 +1,3 @@ -import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; /// Card showing a single worker's details in the completion review. diff --git a/apps/mobile/packages/features/client/client_coverage/lib/src/data/repositories_impl/coverage_repository_impl.dart b/apps/mobile/packages/features/client/client_coverage/lib/src/data/repositories_impl/coverage_repository_impl.dart index c6fa62fd..c331e9c4 100644 --- a/apps/mobile/packages/features/client/client_coverage/lib/src/data/repositories_impl/coverage_repository_impl.dart +++ b/apps/mobile/packages/features/client/client_coverage/lib/src/data/repositories_impl/coverage_repository_impl.dart @@ -5,7 +5,7 @@ import 'package:client_coverage/src/domain/repositories/coverage_repository.dart /// V2 API implementation of [CoverageRepository]. /// -/// Uses [BaseApiService] with [V2ApiEndpoints] for all backend access. +/// Uses [BaseApiService] with [ClientEndpoints] for all backend access. class CoverageRepositoryImpl implements CoverageRepository { /// Creates a [CoverageRepositoryImpl]. CoverageRepositoryImpl({required BaseApiService apiService}) @@ -20,7 +20,7 @@ class CoverageRepositoryImpl implements CoverageRepository { final String dateStr = '${date.year}-${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')}'; final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientCoverage, + ClientEndpoints.coverage.path, params: {'date': dateStr}, ); final List items = response.data['items'] as List; @@ -35,7 +35,7 @@ class CoverageRepositoryImpl implements CoverageRepository { final String dateStr = '${date.year}-${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')}'; final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientCoverageStats, + ClientEndpoints.coverageStats.path, params: {'date': dateStr}, ); return CoverageStats.fromJson(response.data as Map); @@ -67,7 +67,7 @@ class CoverageRepositoryImpl implements CoverageRepository { body['markAsFavorite'] = markAsFavorite; } await _apiService.post( - V2ApiEndpoints.clientCoverageReviews, + ClientEndpoints.coverageReviews.path, data: body, ); } @@ -82,7 +82,7 @@ class CoverageRepositoryImpl implements CoverageRepository { body['reason'] = reason; } await _apiService.post( - V2ApiEndpoints.clientCoverageCancelLateWorker(assignmentId), + ClientEndpoints.coverageCancelLateWorker(assignmentId).path, data: body, ); } diff --git a/apps/mobile/packages/features/client/home/lib/src/data/repositories_impl/home_repository_impl.dart b/apps/mobile/packages/features/client/home/lib/src/data/repositories_impl/home_repository_impl.dart index dfaf734e..e6b9d1ed 100644 --- a/apps/mobile/packages/features/client/home/lib/src/data/repositories_impl/home_repository_impl.dart +++ b/apps/mobile/packages/features/client/home/lib/src/data/repositories_impl/home_repository_impl.dart @@ -18,7 +18,7 @@ class HomeRepositoryImpl implements HomeRepositoryInterface { @override Future getDashboard() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientDashboard); + await _apiService.get(ClientEndpoints.dashboard.path); final Map data = response.data as Map; return ClientDashboard.fromJson(data); } @@ -26,7 +26,7 @@ class HomeRepositoryImpl implements HomeRepositoryInterface { @override Future> getRecentReorders() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientReorders); + await _apiService.get(ClientEndpoints.reorders.path); final Map body = response.data as Map; final List items = body['items'] as List; return items diff --git a/apps/mobile/packages/features/client/hubs/lib/src/data/repositories_impl/hub_repository_impl.dart b/apps/mobile/packages/features/client/hubs/lib/src/data/repositories_impl/hub_repository_impl.dart index 8ab96984..ecd06f76 100644 --- a/apps/mobile/packages/features/client/hubs/lib/src/data/repositories_impl/hub_repository_impl.dart +++ b/apps/mobile/packages/features/client/hubs/lib/src/data/repositories_impl/hub_repository_impl.dart @@ -5,7 +5,7 @@ import 'package:client_hubs/src/domain/repositories/hub_repository_interface.dar /// Implementation of [HubRepositoryInterface] using the V2 REST API. /// -/// All backend calls go through [BaseApiService] with [V2ApiEndpoints]. +/// All backend calls go through [BaseApiService] with [ClientEndpoints]. class HubRepositoryImpl implements HubRepositoryInterface { /// Creates a [HubRepositoryImpl]. HubRepositoryImpl({required BaseApiService apiService}) @@ -17,7 +17,7 @@ class HubRepositoryImpl implements HubRepositoryInterface { @override Future> getHubs() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientHubs); + await _apiService.get(ClientEndpoints.hubs.path); final List items = (response.data as Map)['items'] as List; return items @@ -28,7 +28,7 @@ class HubRepositoryImpl implements HubRepositoryInterface { @override Future> getCostCenters() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientCostCenters); + await _apiService.get(ClientEndpoints.costCenters.path); final List items = (response.data as Map)['items'] as List; return items @@ -52,7 +52,7 @@ class HubRepositoryImpl implements HubRepositoryInterface { String? costCenterId, }) async { final ApiResponse response = await _apiService.post( - V2ApiEndpoints.clientHubCreate, + ClientEndpoints.hubCreate.path, data: { 'name': name, 'fullAddress': fullAddress, @@ -88,7 +88,7 @@ class HubRepositoryImpl implements HubRepositoryInterface { String? costCenterId, }) async { final ApiResponse response = await _apiService.put( - V2ApiEndpoints.clientHubUpdate(hubId), + ClientEndpoints.hubUpdate(hubId).path, data: { 'hubId': hubId, if (name != null) 'name': name, @@ -111,7 +111,7 @@ class HubRepositoryImpl implements HubRepositoryInterface { @override Future deleteHub(String hubId) async { - await _apiService.delete(V2ApiEndpoints.clientHubDelete(hubId)); + await _apiService.delete(ClientEndpoints.hubDelete(hubId).path); } @override @@ -120,7 +120,7 @@ class HubRepositoryImpl implements HubRepositoryInterface { required String nfcTagId, }) async { await _apiService.post( - V2ApiEndpoints.clientHubAssignNfc(hubId), + ClientEndpoints.hubAssignNfc(hubId).path, data: {'nfcTagId': nfcTagId}, ); } @@ -128,7 +128,7 @@ class HubRepositoryImpl implements HubRepositoryInterface { @override Future> getManagers(String hubId) async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.clientHubManagers(hubId)); + await _apiService.get(ClientEndpoints.hubManagers(hubId).path); final List items = (response.data as Map)['items'] as List; return items @@ -143,7 +143,7 @@ class HubRepositoryImpl implements HubRepositoryInterface { required List businessMembershipIds, }) async { await _apiService.post( - V2ApiEndpoints.clientHubAssignManagers(hubId), + ClientEndpoints.hubAssignManagers(hubId).path, data: { 'businessMembershipIds': businessMembershipIds, }, diff --git a/apps/mobile/packages/features/client/hubs/lib/src/presentation/widgets/hub_address_autocomplete.dart b/apps/mobile/packages/features/client/hubs/lib/src/presentation/widgets/hub_address_autocomplete.dart index 7bad9647..cb129673 100644 --- a/apps/mobile/packages/features/client/hubs/lib/src/presentation/widgets/hub_address_autocomplete.dart +++ b/apps/mobile/packages/features/client/hubs/lib/src/presentation/widgets/hub_address_autocomplete.dart @@ -4,8 +4,6 @@ import 'package:google_places_flutter/google_places_flutter.dart'; import 'package:google_places_flutter/model/prediction.dart'; import 'package:krow_core/core.dart'; -import 'package:client_hubs/src/util/hubs_constants.dart'; - class HubAddressAutocomplete extends StatelessWidget { const HubAddressAutocomplete({ required this.controller, diff --git a/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart b/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart index 040cf7d7..6efc9179 100644 --- a/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart +++ b/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart @@ -24,17 +24,17 @@ class ClientCreateOrderRepositoryImpl @override Future createOneTimeOrder(Map payload) async { - await _api.post(V2ApiEndpoints.clientOrdersOneTime, data: payload); + await _api.post(ClientEndpoints.ordersOneTime.path, data: payload); } @override Future createRecurringOrder(Map payload) async { - await _api.post(V2ApiEndpoints.clientOrdersRecurring, data: payload); + await _api.post(ClientEndpoints.ordersRecurring.path, data: payload); } @override Future createPermanentOrder(Map payload) async { - await _api.post(V2ApiEndpoints.clientOrdersPermanent, data: payload); + await _api.post(ClientEndpoints.ordersPermanent.path, data: payload); } @override @@ -82,7 +82,7 @@ class ClientCreateOrderRepositoryImpl @override Future getOrderDetailsForReorder(String orderId) async { final ApiResponse response = await _api.get( - V2ApiEndpoints.clientOrderReorderPreview(orderId), + ClientEndpoints.orderReorderPreview(orderId).path, ); return OrderPreview.fromJson(response.data as Map); } diff --git a/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_order_query_repository_impl.dart b/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_order_query_repository_impl.dart index 311e3a62..b1d62cb8 100644 --- a/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_order_query_repository_impl.dart +++ b/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_order_query_repository_impl.dart @@ -8,7 +8,7 @@ import '../../domain/repositories/client_order_query_repository_interface.dart'; /// V2 API implementation of [ClientOrderQueryRepositoryInterface]. /// -/// Delegates all backend calls to [BaseApiService] with [V2ApiEndpoints]. +/// Delegates all backend calls to [BaseApiService] with [ClientEndpoints]. class ClientOrderQueryRepositoryImpl implements ClientOrderQueryRepositoryInterface { /// Creates an instance backed by the given [apiService]. @@ -19,7 +19,7 @@ class ClientOrderQueryRepositoryImpl @override Future> getVendors() async { - final ApiResponse response = await _api.get(V2ApiEndpoints.clientVendors); + final ApiResponse response = await _api.get(ClientEndpoints.vendors.path); final Map data = response.data as Map; final List items = data['items'] as List; return items @@ -30,7 +30,7 @@ class ClientOrderQueryRepositoryImpl @override Future> getRolesByVendor(String vendorId) async { final ApiResponse response = - await _api.get(V2ApiEndpoints.clientVendorRoles(vendorId)); + await _api.get(ClientEndpoints.vendorRoles(vendorId).path); final Map data = response.data as Map; final List items = data['items'] as List; return items.map((dynamic json) { @@ -46,7 +46,7 @@ class ClientOrderQueryRepositoryImpl @override Future> getHubs() async { - final ApiResponse response = await _api.get(V2ApiEndpoints.clientHubs); + final ApiResponse response = await _api.get(ClientEndpoints.hubs.path); final Map data = response.data as Map; final List items = data['items'] as List; return items.map((dynamic json) { @@ -71,7 +71,7 @@ class ClientOrderQueryRepositoryImpl @override Future> getManagersByHub(String hubId) async { final ApiResponse response = - await _api.get(V2ApiEndpoints.clientHubManagers(hubId)); + await _api.get(ClientEndpoints.hubManagers(hubId).path); final Map data = response.data as Map; final List items = data['items'] as List; return items.map((dynamic json) { diff --git a/apps/mobile/packages/features/client/orders/view_orders/lib/src/data/repositories/view_orders_repository_impl.dart b/apps/mobile/packages/features/client/orders/view_orders/lib/src/data/repositories/view_orders_repository_impl.dart index 1173cd20..a12fce25 100644 --- a/apps/mobile/packages/features/client/orders/view_orders/lib/src/data/repositories/view_orders_repository_impl.dart +++ b/apps/mobile/packages/features/client/orders/view_orders/lib/src/data/repositories/view_orders_repository_impl.dart @@ -20,7 +20,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository { required DateTime end, }) async { final ApiResponse response = await _api.get( - V2ApiEndpoints.clientOrdersView, + ClientEndpoints.ordersView.path, params: { 'startDate': start.toIso8601String(), 'endDate': end.toIso8601String(), @@ -40,7 +40,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository { required Map payload, }) async { final ApiResponse response = await _api.post( - V2ApiEndpoints.clientOrderEdit(orderId), + ClientEndpoints.orderEdit(orderId).path, data: payload, ); final Map data = response.data as Map; @@ -53,7 +53,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository { String? reason, }) async { await _api.post( - V2ApiEndpoints.clientOrderCancel(orderId), + ClientEndpoints.orderCancel(orderId).path, data: { if (reason != null) 'reason': reason, }, @@ -62,7 +62,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository { @override Future> getVendors() async { - final ApiResponse response = await _api.get(V2ApiEndpoints.clientVendors); + final ApiResponse response = await _api.get(ClientEndpoints.vendors.path); final Map data = response.data as Map; final List items = data['items'] as List; return items @@ -73,7 +73,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository { @override Future>> getRolesByVendor(String vendorId) async { final ApiResponse response = - await _api.get(V2ApiEndpoints.clientVendorRoles(vendorId)); + await _api.get(ClientEndpoints.vendorRoles(vendorId).path); final Map data = response.data as Map; final List items = data['items'] as List; return items.cast>(); @@ -81,7 +81,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository { @override Future>> getHubs() async { - final ApiResponse response = await _api.get(V2ApiEndpoints.clientHubs); + final ApiResponse response = await _api.get(ClientEndpoints.hubs.path); final Map data = response.data as Map; final List items = data['items'] as List; return items.cast>(); @@ -90,7 +90,7 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository { @override Future>> getManagersByHub(String hubId) async { final ApiResponse response = - await _api.get(V2ApiEndpoints.clientHubManagers(hubId)); + await _api.get(ClientEndpoints.hubManagers(hubId).path); final Map data = response.data as Map; final List items = data['items'] as List; return items.cast>(); diff --git a/apps/mobile/packages/features/client/reports/lib/src/data/repositories_impl/reports_repository_impl.dart b/apps/mobile/packages/features/client/reports/lib/src/data/repositories_impl/reports_repository_impl.dart index 13cf5a2d..f067d464 100644 --- a/apps/mobile/packages/features/client/reports/lib/src/data/repositories_impl/reports_repository_impl.dart +++ b/apps/mobile/packages/features/client/reports/lib/src/data/repositories_impl/reports_repository_impl.dart @@ -5,7 +5,7 @@ import 'package:client_reports/src/domain/repositories/reports_repository.dart'; /// V2 API implementation of [ReportsRepository]. /// -/// Each method hits its corresponding `V2ApiEndpoints.clientReports*` endpoint, +/// Each method hits its corresponding `ClientEndpoints.reports*` endpoint, /// passing date-range query parameters, and deserialises the JSON response /// into the relevant domain entity. class ReportsRepositoryImpl implements ReportsRepository { @@ -32,7 +32,7 @@ class ReportsRepositoryImpl implements ReportsRepository { required DateTime date, }) async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientReportsDailyOps, + ClientEndpoints.reportsDailyOps.path, params: {'date': _iso(date)}, ); final Map data = response.data as Map; @@ -45,7 +45,7 @@ class ReportsRepositoryImpl implements ReportsRepository { required DateTime endDate, }) async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientReportsSpend, + ClientEndpoints.reportsSpend.path, params: _rangeParams(startDate, endDate), ); final Map data = response.data as Map; @@ -58,7 +58,7 @@ class ReportsRepositoryImpl implements ReportsRepository { required DateTime endDate, }) async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientReportsCoverage, + ClientEndpoints.reportsCoverage.path, params: _rangeParams(startDate, endDate), ); final Map data = response.data as Map; @@ -71,7 +71,7 @@ class ReportsRepositoryImpl implements ReportsRepository { required DateTime endDate, }) async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientReportsForecast, + ClientEndpoints.reportsForecast.path, params: _rangeParams(startDate, endDate), ); final Map data = response.data as Map; @@ -84,7 +84,7 @@ class ReportsRepositoryImpl implements ReportsRepository { required DateTime endDate, }) async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientReportsPerformance, + ClientEndpoints.reportsPerformance.path, params: _rangeParams(startDate, endDate), ); final Map data = response.data as Map; @@ -97,7 +97,7 @@ class ReportsRepositoryImpl implements ReportsRepository { required DateTime endDate, }) async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientReportsNoShow, + ClientEndpoints.reportsNoShow.path, params: _rangeParams(startDate, endDate), ); final Map data = response.data as Map; @@ -110,7 +110,7 @@ class ReportsRepositoryImpl implements ReportsRepository { required DateTime endDate, }) async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.clientReportsSummary, + ClientEndpoints.reportsSummary.path, params: _rangeParams(startDate, endDate), ); final Map data = response.data as Map; diff --git a/apps/mobile/packages/features/client/settings/lib/src/data/repositories_impl/settings_repository_impl.dart b/apps/mobile/packages/features/client/settings/lib/src/data/repositories_impl/settings_repository_impl.dart index e620bf94..ce114987 100644 --- a/apps/mobile/packages/features/client/settings/lib/src/data/repositories_impl/settings_repository_impl.dart +++ b/apps/mobile/packages/features/client/settings/lib/src/data/repositories_impl/settings_repository_impl.dart @@ -22,7 +22,7 @@ class SettingsRepositoryImpl implements SettingsRepositoryInterface { Future signOut() async { try { // Step 1: Call V2 sign-out endpoint for server-side token revocation. - await _apiService.post(V2ApiEndpoints.clientSignOut); + await _apiService.post(AuthEndpoints.clientSignOut.path); } catch (e) { developer.log( 'V2 sign-out request failed: $e', diff --git a/apps/mobile/packages/features/client/settings/lib/src/presentation/widgets/client_settings_page/settings_logout.dart b/apps/mobile/packages/features/client/settings/lib/src/presentation/widgets/client_settings_page/settings_logout.dart index ea359254..648a1acc 100644 --- a/apps/mobile/packages/features/client/settings/lib/src/presentation/widgets/client_settings_page/settings_logout.dart +++ b/apps/mobile/packages/features/client/settings/lib/src/presentation/widgets/client_settings_page/settings_logout.dart @@ -3,7 +3,7 @@ import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_modular/flutter_modular.dart'; -import 'package:krow_core/core.dart'; + import '../../blocs/client_settings_bloc.dart'; /// A widget that displays the log out button. diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart b/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart index 69ba37ea..6db9cd94 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/auth_repository_impl.dart @@ -63,7 +63,7 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { try { final domain.ApiResponse startResponse = await _apiService.post( - V2ApiEndpoints.staffPhoneStart, + AuthEndpoints.staffPhoneStart.path, data: { 'phoneNumber': phoneNumber, }, @@ -182,7 +182,7 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { // Step 3: Call V2 verify endpoint with the Firebase ID token. final String v2Mode = mode == AuthMode.signup ? 'sign-up' : 'sign-in'; final domain.ApiResponse response = await _apiService.post( - V2ApiEndpoints.staffPhoneVerify, + AuthEndpoints.staffPhoneVerify.path, data: { 'idToken': idToken, 'mode': v2Mode, @@ -233,7 +233,7 @@ class AuthRepositoryImpl implements AuthRepositoryInterface { @override Future signOut() async { try { - await _apiService.post(V2ApiEndpoints.staffSignOut); + await _apiService.post(AuthEndpoints.staffSignOut.path); } catch (_) { // Sign-out should not fail even if the API call fails. // The local sign-out below will clear the session regardless. diff --git a/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/profile_setup_repository_impl.dart b/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/profile_setup_repository_impl.dart index 5b27ec68..ecb52730 100644 --- a/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/profile_setup_repository_impl.dart +++ b/apps/mobile/packages/features/staff/authentication/lib/src/data/repositories_impl/profile_setup_repository_impl.dart @@ -27,7 +27,7 @@ class ProfileSetupRepositoryImpl implements ProfileSetupRepository { required List skills, }) async { final ApiResponse response = await _apiService.post( - V2ApiEndpoints.staffProfileSetup, + StaffEndpoints.profileSetup.path, data: { 'fullName': fullName, if (bio != null && bio.isNotEmpty) 'bio': bio, diff --git a/apps/mobile/packages/features/staff/availability/lib/src/data/repositories_impl/availability_repository_impl.dart b/apps/mobile/packages/features/staff/availability/lib/src/data/repositories_impl/availability_repository_impl.dart index 6857561b..fc0b6669 100644 --- a/apps/mobile/packages/features/staff/availability/lib/src/data/repositories_impl/availability_repository_impl.dart +++ b/apps/mobile/packages/features/staff/availability/lib/src/data/repositories_impl/availability_repository_impl.dart @@ -25,7 +25,7 @@ class AvailabilityRepositoryImpl implements AvailabilityRepository { final String endDate = _toIsoDate(end); final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffAvailability, + StaffEndpoints.availability.path, params: { 'startDate': startDate, 'endDate': endDate, @@ -48,7 +48,7 @@ class AvailabilityRepositoryImpl implements AvailabilityRepository { required List slots, }) async { final ApiResponse response = await _apiService.put( - V2ApiEndpoints.staffAvailability, + StaffEndpoints.availability.path, data: { 'dayOfWeek': dayOfWeek, 'availabilityStatus': status.toJson(), @@ -86,7 +86,7 @@ class AvailabilityRepositoryImpl implements AvailabilityRepository { } await _apiService.post( - V2ApiEndpoints.staffAvailabilityQuickSet, + StaffEndpoints.availabilityQuickSet.path, data: data, ); } diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/data/repositories_impl/clock_in_repository_impl.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/data/repositories_impl/clock_in_repository_impl.dart index c0cfe0c2..efc2599b 100644 --- a/apps/mobile/packages/features/staff/clock_in/lib/src/data/repositories_impl/clock_in_repository_impl.dart +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/data/repositories_impl/clock_in_repository_impl.dart @@ -5,7 +5,7 @@ import 'package:staff_clock_in/src/domain/repositories/clock_in_repository_inter /// Implementation of [ClockInRepositoryInterface] using the V2 REST API. /// -/// All backend calls go through [BaseApiService] with [V2ApiEndpoints]. +/// All backend calls go through [BaseApiService] with [StaffEndpoints]. /// The old Data Connect implementation has been removed. class ClockInRepositoryImpl implements ClockInRepositoryInterface { /// Creates a [ClockInRepositoryImpl] backed by the V2 API. @@ -17,7 +17,7 @@ class ClockInRepositoryImpl implements ClockInRepositoryInterface { @override Future> getTodaysShifts() async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffClockInShiftsToday, + StaffEndpoints.clockInShiftsToday.path, ); final List items = response.data['items'] as List; // TODO: Ask BE to add latitude, longitude, hourlyRate, and clientName @@ -33,7 +33,7 @@ class ClockInRepositoryImpl implements ClockInRepositoryInterface { @override Future getAttendanceStatus() async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffClockInStatus, + StaffEndpoints.clockInStatus.path, ); return AttendanceStatus.fromJson(response.data as Map); } @@ -44,7 +44,7 @@ class ClockInRepositoryImpl implements ClockInRepositoryInterface { String? notes, }) async { await _apiService.post( - V2ApiEndpoints.staffClockIn, + StaffEndpoints.clockIn.path, data: { 'shiftId': shiftId, 'sourceType': 'GEO', @@ -62,7 +62,7 @@ class ClockInRepositoryImpl implements ClockInRepositoryInterface { String? shiftId, }) async { await _apiService.post( - V2ApiEndpoints.staffClockOut, + StaffEndpoints.clockOut.path, data: { if (shiftId != null) 'shiftId': shiftId, 'sourceType': 'GEO', diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/clock_in_page_skeleton/clock_in_page_skeleton.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/clock_in_page_skeleton/clock_in_page_skeleton.dart index b4c0aade..e64b461f 100644 --- a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/clock_in_page_skeleton/clock_in_page_skeleton.dart +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/clock_in_page_skeleton/clock_in_page_skeleton.dart @@ -16,19 +16,19 @@ class ClockInPageSkeleton extends StatelessWidget { @override Widget build(BuildContext context) { - return UiShimmer( + return const UiShimmer( child: SingleChildScrollView( - padding: const EdgeInsets.only( + padding: EdgeInsets.only( bottom: UiConstants.space24, top: UiConstants.space6, ), child: Padding( - padding: const EdgeInsets.symmetric( + padding: EdgeInsets.symmetric( horizontal: UiConstants.space5, ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, - children: const [ + children: [ // Date selector row DateSelectorSkeleton(), SizedBox(height: UiConstants.space5), diff --git a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/geofence_status_banner/geofence_override_modal.dart b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/geofence_status_banner/geofence_override_modal.dart index 56072000..58ba8f24 100644 --- a/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/geofence_status_banner/geofence_override_modal.dart +++ b/apps/mobile/packages/features/staff/clock_in/lib/src/presentation/widgets/geofence_status_banner/geofence_override_modal.dart @@ -2,8 +2,6 @@ import 'package:core_localization/core_localization.dart'; import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:flutter_modular/flutter_modular.dart'; -import 'package:krow_core/core.dart'; import '../../bloc/geofence/geofence_bloc.dart'; import '../../bloc/geofence/geofence_event.dart'; diff --git a/apps/mobile/packages/features/staff/home/lib/src/data/repositories/home_repository_impl.dart b/apps/mobile/packages/features/staff/home/lib/src/data/repositories/home_repository_impl.dart index b24461cf..9da08cc3 100644 --- a/apps/mobile/packages/features/staff/home/lib/src/data/repositories/home_repository_impl.dart +++ b/apps/mobile/packages/features/staff/home/lib/src/data/repositories/home_repository_impl.dart @@ -17,7 +17,7 @@ class HomeRepositoryImpl implements HomeRepository { @override Future getDashboard() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.staffDashboard); + await _apiService.get(StaffEndpoints.dashboard.path); final Map data = response.data as Map; return StaffDashboard.fromJson(data); } @@ -25,7 +25,7 @@ class HomeRepositoryImpl implements HomeRepository { @override Future getProfileCompletion() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.staffProfileCompletion); + await _apiService.get(StaffEndpoints.profileCompletion.path); final Map data = response.data as Map; final ProfileCompletion completion = ProfileCompletion.fromJson(data); return completion.completed; diff --git a/apps/mobile/packages/features/staff/payments/lib/src/data/repositories/payments_repository_impl.dart b/apps/mobile/packages/features/staff/payments/lib/src/data/repositories/payments_repository_impl.dart index 3530ef62..c20155e7 100644 --- a/apps/mobile/packages/features/staff/payments/lib/src/data/repositories/payments_repository_impl.dart +++ b/apps/mobile/packages/features/staff/payments/lib/src/data/repositories/payments_repository_impl.dart @@ -24,7 +24,7 @@ class PaymentsRepositoryImpl implements PaymentsRepository { if (endDate != null) 'endDate': endDate, }; final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffPaymentsSummary, + StaffEndpoints.paymentsSummary.path, params: params.isEmpty ? null : params, ); return PaymentSummary.fromJson(response.data as Map); @@ -40,7 +40,7 @@ class PaymentsRepositoryImpl implements PaymentsRepository { if (endDate != null) 'endDate': endDate, }; final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffPaymentsHistory, + StaffEndpoints.paymentsHistory.path, params: params.isEmpty ? null : params, ); final Map body = response.data as Map; @@ -63,7 +63,7 @@ class PaymentsRepositoryImpl implements PaymentsRepository { if (endDate != null) 'endDate': endDate, }; final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffPaymentsChart, + StaffEndpoints.paymentsChart.path, params: params, ); final Map body = response.data as Map; diff --git a/apps/mobile/packages/features/staff/profile/lib/src/data/repositories/profile_repository_impl.dart b/apps/mobile/packages/features/staff/profile/lib/src/data/repositories/profile_repository_impl.dart index 076db252..49b8012f 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/data/repositories/profile_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/data/repositories/profile_repository_impl.dart @@ -14,7 +14,7 @@ class ProfileRepositoryImpl { /// Fetches the staff profile from the V2 session endpoint. Future getStaffProfile() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffSession); + await _api.get(StaffEndpoints.session.path); final Map json = response.data['staff'] as Map; return Staff.fromJson(json); @@ -23,7 +23,7 @@ class ProfileRepositoryImpl { /// Fetches the profile section completion statuses. Future getProfileSections() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffProfileSections); + await _api.get(StaffEndpoints.profileSections.path); final Map json = response.data as Map; return ProfileSectionStatus.fromJson(json); @@ -31,6 +31,6 @@ class ProfileRepositoryImpl { /// Signs out the current user. Future signOut() async { - await _api.post(V2ApiEndpoints.signOut); + await _api.post(AuthEndpoints.signOut.path); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/certificates/lib/src/data/repositories_impl/certificates_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/certificates/lib/src/data/repositories_impl/certificates_repository_impl.dart index b1af3e9e..22ab7e00 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/certificates/lib/src/data/repositories_impl/certificates_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/certificates/lib/src/data/repositories_impl/certificates_repository_impl.dart @@ -27,7 +27,7 @@ class CertificatesRepositoryImpl implements CertificatesRepository { @override Future> getCertificates() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffCertificates); + await _api.get(StaffEndpoints.certificates.path); final List items = response.data['certificates'] as List; return items @@ -73,7 +73,7 @@ class CertificatesRepositoryImpl implements CertificatesRepository { // 4. Save certificate via V2 API await _api.post( - V2ApiEndpoints.staffCertificates, + StaffEndpoints.certificates.path, data: { 'certificateType': certificateType, 'name': name, @@ -95,7 +95,7 @@ class CertificatesRepositoryImpl implements CertificatesRepository { @override Future deleteCertificate({required String certificateId}) async { await _api.delete( - V2ApiEndpoints.staffCertificateDelete(certificateId), + StaffEndpoints.certificateDelete(certificateId).path, ); } } diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories_impl/documents_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories_impl/documents_repository_impl.dart index 5c8ea9d2..76c7023b 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories_impl/documents_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories_impl/documents_repository_impl.dart @@ -27,7 +27,7 @@ class DocumentsRepositoryImpl implements DocumentsRepository { @override Future> getDocuments() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffDocuments); + await _api.get(StaffEndpoints.documents.path); final List items = response.data['documents'] as List; return items .map((dynamic json) => @@ -64,7 +64,7 @@ class DocumentsRepositoryImpl implements DocumentsRepository { // 4. Submit upload result to V2 API await _api.put( - V2ApiEndpoints.staffDocumentUpload(documentId), + StaffEndpoints.documentUpload(documentId).path, data: { 'fileUri': signedUrlRes.signedUrl, 'verificationId': verificationRes.verificationId, diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart index ca1649a3..5961f3d8 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart @@ -18,7 +18,7 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { @override Future> getTaxForms() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffTaxForms); + await _api.get(StaffEndpoints.taxForms.path); final List items = response.data['taxForms'] as List; return items .map((dynamic json) => @@ -29,7 +29,7 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { @override Future updateTaxForm(TaxForm form) async { await _api.put( - V2ApiEndpoints.staffTaxFormUpdate(form.formType), + StaffEndpoints.taxFormUpdate(form.formType).path, data: form.toJson(), ); } @@ -37,7 +37,7 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { @override Future submitTaxForm(TaxForm form) async { await _api.post( - V2ApiEndpoints.staffTaxFormSubmit(form.formType), + StaffEndpoints.taxFormSubmit(form.formType).path, data: form.toJson(), ); } diff --git a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart index 03aa491a..46ac8b8f 100644 --- a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart @@ -16,7 +16,7 @@ class BankAccountRepositoryImpl implements BankAccountRepository { @override Future> getAccounts() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffBankAccounts); + await _api.get(StaffEndpoints.bankAccounts.path); final List items = response.data['accounts'] as List; return items .map((dynamic json) => @@ -27,7 +27,7 @@ class BankAccountRepositoryImpl implements BankAccountRepository { @override Future addAccount(BankAccount account) async { await _api.post( - V2ApiEndpoints.staffBankAccounts, + StaffEndpoints.bankAccounts.path, data: account.toJson(), ); } diff --git a/apps/mobile/packages/features/staff/profile_sections/finances/time_card/lib/src/data/repositories_impl/time_card_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/finances/time_card/lib/src/data/repositories_impl/time_card_repository_impl.dart index 5640aea7..82261445 100644 --- a/apps/mobile/packages/features/staff/profile_sections/finances/time_card/lib/src/data/repositories_impl/time_card_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/finances/time_card/lib/src/data/repositories_impl/time_card_repository_impl.dart @@ -16,7 +16,7 @@ class TimeCardRepositoryImpl implements TimeCardRepository { @override Future> getTimeCards(DateTime month) async { final ApiResponse response = await _api.get( - V2ApiEndpoints.staffTimeCard, + StaffEndpoints.timeCard.path, params: { 'year': month.year, 'month': month.month, diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/attire/lib/src/data/repositories_impl/attire_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/attire/lib/src/data/repositories_impl/attire_repository_impl.dart index 2846c6bd..ba00457c 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/attire/lib/src/data/repositories_impl/attire_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/attire/lib/src/data/repositories_impl/attire_repository_impl.dart @@ -27,7 +27,7 @@ class AttireRepositoryImpl implements AttireRepository { @override Future> getAttireOptions() async { - final ApiResponse response = await _api.get(V2ApiEndpoints.staffAttire); + final ApiResponse response = await _api.get(StaffEndpoints.attire.path); final List items = response.data['items'] as List; return items .map((dynamic json) => @@ -100,7 +100,7 @@ class AttireRepositoryImpl implements AttireRepository { // 5. Update attire item via V2 API await _api.put( - V2ApiEndpoints.staffAttireUpload(itemId), + StaffEndpoints.attireUpload(itemId).path, data: { 'photoUrl': photoUrl, 'verificationId': verifyRes.verificationId, diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart index a0b90d67..ba8f01a0 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart @@ -17,7 +17,7 @@ class EmergencyContactRepositoryImpl @override Future> getContacts() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffEmergencyContacts); + await _api.get(StaffEndpoints.emergencyContacts.path); final List items = response.data['contacts'] as List; return items .map((dynamic json) => @@ -28,7 +28,7 @@ class EmergencyContactRepositoryImpl @override Future saveContacts(List contacts) async { await _api.put( - V2ApiEndpoints.staffEmergencyContacts, + StaffEndpoints.emergencyContacts.path, data: { 'contacts': contacts.map((EmergencyContact c) => c.toJson()).toList(), diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart index f7cc838e..5e25f550 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart @@ -16,14 +16,14 @@ class ExperienceRepositoryImpl implements ExperienceRepositoryInterface { @override Future> getIndustries() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffIndustries); + await _api.get(StaffEndpoints.industries.path); final List items = response.data['industries'] as List; return items.map((dynamic e) => e.toString()).toList(); } @override Future> getSkills() async { - final ApiResponse response = await _api.get(V2ApiEndpoints.staffSkills); + final ApiResponse response = await _api.get(StaffEndpoints.skills.path); final List items = response.data['skills'] as List; return items.map((dynamic e) => e.toString()).toList(); } @@ -34,7 +34,7 @@ class ExperienceRepositoryImpl implements ExperienceRepositoryInterface { List skills, ) async { await _api.put( - V2ApiEndpoints.staffPersonalInfo, + StaffEndpoints.personalInfo.path, data: { 'industries': industries, 'skills': skills, diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_impl.dart index af633d67..ade14cba 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/profile_info/lib/src/data/repositories/personal_info_repository_impl.dart @@ -28,7 +28,7 @@ class PersonalInfoRepositoryImpl implements PersonalInfoRepositoryInterface { @override Future getStaffProfile() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffPersonalInfo); + await _api.get(StaffEndpoints.personalInfo.path); final Map json = response.data as Map; return StaffPersonalInfo.fromJson(json); @@ -40,7 +40,7 @@ class PersonalInfoRepositoryImpl implements PersonalInfoRepositoryInterface { required Map data, }) async { final ApiResponse response = await _api.put( - V2ApiEndpoints.staffPersonalInfo, + StaffEndpoints.personalInfo.path, data: data, ); final Map json = @@ -65,7 +65,7 @@ class PersonalInfoRepositoryImpl implements PersonalInfoRepositoryInterface { // 3. Submit the photo URL to the V2 API. await _api.post( - V2ApiEndpoints.staffProfilePhoto, + StaffEndpoints.profilePhoto.path, data: { 'fileUri': uploadRes.fileUri, 'photoUrl': photoUrl, diff --git a/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/data/repositories_impl/faqs_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/data/repositories_impl/faqs_repository_impl.dart index ec200d89..c8f26470 100644 --- a/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/data/repositories_impl/faqs_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/data/repositories_impl/faqs_repository_impl.dart @@ -18,7 +18,7 @@ class FaqsRepositoryImpl implements FaqsRepositoryInterface { Future> getFaqs() async { try { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.staffFaqs); + await _apiService.get(StaffEndpoints.faqs.path); return _parseCategories(response); } catch (_) { return []; @@ -29,7 +29,7 @@ class FaqsRepositoryImpl implements FaqsRepositoryInterface { Future> searchFaqs(String query) async { try { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffFaqsSearch, + StaffEndpoints.faqsSearch.path, params: {'q': query}, ); return _parseCategories(response); diff --git a/apps/mobile/packages/features/staff/profile_sections/support/privacy_security/lib/src/data/repositories_impl/privacy_settings_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/support/privacy_security/lib/src/data/repositories_impl/privacy_settings_repository_impl.dart index 8001306c..24b49a99 100644 --- a/apps/mobile/packages/features/staff/profile_sections/support/privacy_security/lib/src/data/repositories_impl/privacy_settings_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/support/privacy_security/lib/src/data/repositories_impl/privacy_settings_repository_impl.dart @@ -19,7 +19,7 @@ class PrivacySettingsRepositoryImpl @override Future getProfileVisibility() async { final ApiResponse response = - await _api.get(V2ApiEndpoints.staffPrivacy); + await _api.get(StaffEndpoints.privacy.path); final Map json = response.data as Map; final PrivacySettings settings = PrivacySettings.fromJson(json); @@ -29,7 +29,7 @@ class PrivacySettingsRepositoryImpl @override Future updateProfileVisibility(bool isVisible) async { await _api.put( - V2ApiEndpoints.staffPrivacy, + StaffEndpoints.privacy.path, data: {'profileVisible': isVisible}, ); return isVisible; diff --git a/apps/mobile/packages/features/staff/shifts/lib/src/data/repositories_impl/shifts_repository_impl.dart b/apps/mobile/packages/features/staff/shifts/lib/src/data/repositories_impl/shifts_repository_impl.dart index f891e208..4057a0af 100644 --- a/apps/mobile/packages/features/staff/shifts/lib/src/data/repositories_impl/shifts_repository_impl.dart +++ b/apps/mobile/packages/features/staff/shifts/lib/src/data/repositories_impl/shifts_repository_impl.dart @@ -5,7 +5,7 @@ import 'package:staff_shifts/src/domain/repositories/shifts_repository_interface /// V2 API implementation of [ShiftsRepositoryInterface]. /// -/// Uses [BaseApiService] with [V2ApiEndpoints] for all network access. +/// Uses [BaseApiService] with [StaffEndpoints] for all network access. class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { /// Creates a [ShiftsRepositoryImpl]. ShiftsRepositoryImpl({required BaseApiService apiService}) @@ -34,7 +34,7 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { required DateTime end, }) async { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffShiftsAssigned, + StaffEndpoints.shiftsAssigned.path, params: { 'startDate': start.toIso8601String(), 'endDate': end.toIso8601String(), @@ -59,7 +59,7 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { params['search'] = search; } final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffShiftsOpen, + StaffEndpoints.shiftsOpen.path, params: params, ); final List items = _extractItems(response.data); @@ -72,7 +72,7 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { @override Future> getPendingAssignments() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.staffShiftsPending); + await _apiService.get(StaffEndpoints.shiftsPending.path); final List items = _extractItems(response.data); return items .map((dynamic json) => @@ -83,7 +83,7 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { @override Future> getCancelledShifts() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.staffShiftsCancelled); + await _apiService.get(StaffEndpoints.shiftsCancelled.path); final List items = _extractItems(response.data); return items .map((dynamic json) => @@ -94,7 +94,7 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { @override Future> getCompletedShifts() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.staffShiftsCompleted); + await _apiService.get(StaffEndpoints.shiftsCompleted.path); final List items = _extractItems(response.data); return items .map((dynamic json) => @@ -105,7 +105,7 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { @override Future getShiftDetail(String shiftId) async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.staffShiftDetails(shiftId)); + await _apiService.get(StaffEndpoints.shiftDetails(shiftId).path); if (response.data == null) { return null; } @@ -119,7 +119,7 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { bool instantBook = false, }) async { await _apiService.post( - V2ApiEndpoints.staffShiftApply(shiftId), + StaffEndpoints.shiftApply(shiftId).path, data: { if (roleId != null) 'roleId': roleId, 'instantBook': instantBook, @@ -129,18 +129,18 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { @override Future acceptShift(String shiftId) async { - await _apiService.post(V2ApiEndpoints.staffShiftAccept(shiftId)); + await _apiService.post(StaffEndpoints.shiftAccept(shiftId).path); } @override Future declineShift(String shiftId) async { - await _apiService.post(V2ApiEndpoints.staffShiftDecline(shiftId)); + await _apiService.post(StaffEndpoints.shiftDecline(shiftId).path); } @override Future requestSwap(String shiftId, {String? reason}) async { await _apiService.post( - V2ApiEndpoints.staffShiftRequestSwap(shiftId), + StaffEndpoints.shiftRequestSwap(shiftId).path, data: { if (reason != null) 'reason': reason, }, @@ -150,7 +150,7 @@ class ShiftsRepositoryImpl implements ShiftsRepositoryInterface { @override Future getProfileCompletion() async { final ApiResponse response = - await _apiService.get(V2ApiEndpoints.staffProfileCompletion); + await _apiService.get(StaffEndpoints.profileCompletion.path); final Map data = response.data as Map; final ProfileCompletion completion = ProfileCompletion.fromJson(data); return completion.completed; diff --git a/apps/mobile/packages/features/staff/shifts/lib/src/domain/repositories/shifts_repository_interface.dart b/apps/mobile/packages/features/staff/shifts/lib/src/domain/repositories/shifts_repository_interface.dart index 8fdaa4b7..abd6a9ea 100644 --- a/apps/mobile/packages/features/staff/shifts/lib/src/domain/repositories/shifts_repository_interface.dart +++ b/apps/mobile/packages/features/staff/shifts/lib/src/domain/repositories/shifts_repository_interface.dart @@ -3,7 +3,7 @@ import 'package:krow_domain/krow_domain.dart'; /// Contract for accessing shift-related data from the V2 API. /// /// Implementations reside in the data layer and use [BaseApiService] -/// with V2ApiEndpoints. +/// with [StaffEndpoints]. abstract interface class ShiftsRepositoryInterface { /// Retrieves assigned shifts for the current staff within a date range. Future> getAssignedShifts({ diff --git a/apps/mobile/packages/features/staff/shifts/lib/src/presentation/widgets/tabs/find_shifts_tab.dart b/apps/mobile/packages/features/staff/shifts/lib/src/presentation/widgets/tabs/find_shifts_tab.dart index 60f0b0d2..134fe35b 100644 --- a/apps/mobile/packages/features/staff/shifts/lib/src/presentation/widgets/tabs/find_shifts_tab.dart +++ b/apps/mobile/packages/features/staff/shifts/lib/src/presentation/widgets/tabs/find_shifts_tab.dart @@ -1,13 +1,10 @@ import 'package:core_localization/core_localization.dart'; import 'package:design_system/design_system.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_modular/flutter_modular.dart'; import 'package:intl/intl.dart'; import 'package:krow_core/core.dart'; import 'package:krow_domain/krow_domain.dart'; - -import 'package:staff_shifts/src/presentation/blocs/shifts/shifts_bloc.dart'; import 'package:staff_shifts/src/presentation/widgets/shared/empty_state_view.dart'; /// Tab showing open shifts available for the worker to browse and apply. diff --git a/apps/mobile/packages/features/staff/staff_main/lib/src/data/repositories/staff_main_repository_impl.dart b/apps/mobile/packages/features/staff/staff_main/lib/src/data/repositories/staff_main_repository_impl.dart index 0cd9e379..24232d75 100644 --- a/apps/mobile/packages/features/staff/staff_main/lib/src/data/repositories/staff_main_repository_impl.dart +++ b/apps/mobile/packages/features/staff/staff_main/lib/src/data/repositories/staff_main_repository_impl.dart @@ -23,7 +23,7 @@ class StaffMainRepositoryImpl implements StaffMainRepositoryInterface { Future getProfileCompletion() async { try { final ApiResponse response = await _apiService.get( - V2ApiEndpoints.staffProfileCompletion, + StaffEndpoints.profileCompletion.path, ); if (response.data is Map) {