From bffc9b1686fa0b7b021e7bf687abc300f69147ee Mon Sep 17 00:00:00 2001
From: Dhananjaya99 <152056742+ashanruu@users.noreply.github.com>
Date: Mon, 28 Sep 2026 11:44:26 +0530
Subject: [PATCH] first commit
---
.../net8.0/Fitness_core_BE.GlobalUsings.g.cs | 17 +
...itness_core_BE.csproj.FileListAbsolute.txt | 0
.gitignore | 36 +
.postman/config.json | 17 +
AI/GeminiClient.cs | 68 +
AI/IAiClient.cs | 7 +
AI/MealPlanOrchestrator.cs | 213 +
AI/ModificationGuard.cs | 47 +
AI/WorkoutPlanOrchestrator.cs | 229 +
Auth/AgentApiKeyAuthenticationHandler.cs | 79 +
Auth/UserJwtAuthenticationHandler.cs | 97 +
CentralDbContext.cs | 223 +
Controllers/APIController.cs | 365 ++
Controllers/AdminBackgroundJobsController.cs | 145 +
Controllers/AdminBillingController.cs | 94 +
Controllers/AdminController.cs | 99 +
Controllers/AdminPaymentGatewayController.cs | 55 +
Controllers/AgentController.cs | 153 +
Controllers/BookingController.cs | 103 +
Controllers/BootstrapController.cs | 43 +
Controllers/ClientController.cs | 1222 +++++
Controllers/ClientInvoiceController.cs | 135 +
Controllers/CustomerController.cs | 715 +++
Controllers/CustomerPaymentsController.cs | 154 +
Controllers/FacilityController.cs | 100 +
Controllers/GymRoleController.cs | 67 +
Controllers/NavController.cs | 32 +
Controllers/PaymentsEnablementController.cs | 78 +
Controllers/PlaceController.cs | 71 +
.../SubscriptionRenewalApprovalController.cs | 39 +
Controllers/TimeBankCardController.cs | 63 +
Controllers/WorkerBillingController.cs | 31 +
CustomerProgressFormulas.txt | 68 +
DTOs/AccessDevice/AccessDeviceDtos.cs | 47 +
DTOs/Agent/AgentRequests.cs | 76 +
DTOs/Attendance/AttendanceCountDTO.cs | 9 +
DTOs/Attendance/AttendanceDTO.cs | 14 +
DTOs/Attendance/TodayAttendanceDTO.cs | 9 +
DTOs/Auth/AuthResponse.cs | 10 +
DTOs/Booking/BookingDto.cs | 31 +
DTOs/Booking/BookingRequests.cs | 44 +
DTOs/ClientInvoice/ClientInvoiceDto.cs | 15 +
DTOs/ClientInvoice/ClientInvoiceItemDto.cs | 11 +
.../CreateClientInvoiceRequest.cs | 7 +
.../UpdateClientInvoiceStatusRequest.cs | 8 +
DTOs/Customer/CreateCustomerRequest.cs | 14 +
DTOs/Customer/CustomerDto.cs | 11 +
DTOs/Customer/FollowedPlanDto.cs | 4 +
DTOs/Customer/MemberListRowDto.cs | 56 +
DTOs/Customer/UpdateCustomerRequest.cs | 14 +
.../CreateCustomerInvoiceRequest.cs | 7 +
DTOs/CustomerInvoice/CustomerInvoiceDto.cs | 17 +
.../CustomerInvoice/CustomerInvoiceItemDto.cs | 11 +
.../UpdateCustomerInvoiceStatusRequest.cs | 8 +
.../CustomerPlan/CreateCustomerPlanRequest.cs | 62 +
DTOs/CustomerPlan/CustomerPlanDto.cs | 33 +
.../SetCustomerPlanStatusRequest.cs | 14 +
.../CustomerPlan/UpdateCustomerPlanRequest.cs | 54 +
.../CreateCustomerSubscriptionRequest.cs | 17 +
.../CustomerSubscriptionDto.cs | 40 +
.../SubscriptionSummaryDto.cs | 62 +
DTOs/DocumentDownloadModel.cs | 9 +
DTOs/Facility/FacilityDtos.cs | 25 +
DTOs/Facility/FacilityRequests.cs | 51 +
DTOs/Ledger/LedgerDtos.cs | 40 +
DTOs/Meal/CustomerMealDto.cs | 16 +
DTOs/Meal/MealCategoryDto.cs | 11 +
DTOs/Meal/MealItemDto.cs | 19 +
DTOs/Meal/MealPlanDetailDto.cs | 22 +
DTOs/Meal/MealPlanDto.cs | 17 +
DTOs/Mobile/AuthRequests.cs | 65 +
DTOs/Mobile/ChatRequests.cs | 15 +
DTOs/Mobile/CustomerProfileRequests.cs | 72 +
DTOs/Mobile/GymOnboardingRequests.cs | 7 +
DTOs/Mobile/TicketRequests.cs | 20 +
.../PaymentGatewayClientDtos.cs | 89 +
DTOs/PaymentGateways/PaymentGatewayDtos.cs | 38 +
.../PaymentsEnablementDtos.cs | 37 +
DTOs/Place/PlaceDtos.cs | 15 +
DTOs/Place/PlaceRequests.cs | 32 +
.../ClientPaymentMethodDtos.cs | 53 +
DTOs/PlatformBilling/PlatformBillingDtos.cs | 137 +
DTOs/Rbac/RbacDtos.cs | 47 +
DTOs/Staff/CreateStaffRequest.cs | 27 +
DTOs/Staff/StaffDto.cs | 27 +
DTOs/Staff/StaffPayrollDtos.cs | 30 +
DTOs/Staff/UpdateStaffRequest.cs | 24 +
DTOs/Stats/ClientStatSummaryDto.cs | 21 +
DTOs/Stats/MonthlyRevenueStat.cs | 11 +
DTOs/Ticket/TicketDetailDto.cs | 48 +
DTOs/Ticket/TicketDto.cs | 31 +
DTOs/TimeBankCard/TimeBankCardDto.cs | 24 +
DTOs/TimeBankCard/TimeBankCardRequests.cs | 33 +
DTOs/Tute/UpdateTuteItemRequest.cs | 9 +
DTOs/Workout/CustomerWorkoutDto.cs | 16 +
DTOs/Workout/WorkoutCategoryDto.cs | 11 +
DTOs/Workout/WorkoutExerciseDto.cs | 17 +
DTOs/Workout/WorkoutItemDto.cs | 23 +
DTOs/Workout/WorkoutPlanDetailDto.cs | 18 +
DTOs/Workout/WorkoutPlanDto.cs | 17 +
Data/WorkoutPlanSeedData.cs | 308 ++
Domain/CustomerSubscriptionFactory.cs | 146 +
Domain/DiscountCalculator.cs | 19 +
Exceptions/CustomExceptions.cs | 28 +
Fitness-core-BE.sln | 24 +
Fitness_Core_API.postman_collection.json | 4278 +++++++++++++++++
Fitness_core_BE.csproj | 34 +
Helpers/ApiKeyHelper.cs | 43 +
Helpers/ApiResponseHelper.cs | 11 +
Helpers/AuthOtpResponseParser.cs | 50 +
Helpers/BookingViewHtml.cs | 88 +
Helpers/BusinessLogoHelper.cs | 23 +
Helpers/CustomerProgressHelper.cs | 514 ++
Helpers/DataExtractor.cs | 407 ++
Helpers/DeserializePayload.cs | 31 +
Helpers/EncryptionHelper.cs | 35 +
Helpers/FacePhotoValidator.cs | 157 +
Helpers/GlobalExceptionMiddleware.cs | 59 +
Helpers/GymFacilities.cs | 49 +
Helpers/InvoicePaymentTokenHelper.cs | 72 +
Helpers/JwtMiddleware.cs | 114 +
Helpers/PlatformInvoicePaymentTokenHelper.cs | 70 +
Helpers/RequestAccessTokenHelper.cs | 71 +
Helpers/RequireWorkerKeyAttribute.cs | 55 +
Helpers/RequiresPermissionAttribute.cs | 43 +
Helpers/SandboxTokenHelper.cs | 50 +
Helpers/TenantResolutionAttribute.cs | 54 +
Helpers/UserRoleHelper.cs | 149 +
Hubs/AccessHub.cs | 36 +
Hubs/ChatHub.cs | 191 +
Infra/Tenancy/ITenantContext.cs | 30 +
Infra/Tenancy/TenantSchemaIterator.cs | 99 +
Infra/UoW/EFUnitOfWork.cs | 75 +
Infra/UoW/IUnitOfWork.cs | 10 +
Interfaces/IAccessDeviceRepo.cs | 103 +
Interfaces/IActivityLogRepository.cs | 15 +
Interfaces/IAdminClientDirectoryRepository.cs | 11 +
Interfaces/IAdminSuggestionRepository.cs | 15 +
Interfaces/IAgentRepo.cs | 13 +
Interfaces/IAttendanceRepository.cs | 18 +
Interfaces/IBookingRepository.cs | 17 +
Interfaces/IChatRepo.cs | 14 +
Interfaces/IClientInvoiceRepository.cs | 13 +
Interfaces/IClientRepository.cs | 70 +
Interfaces/IClientStatRepository.cs | 21 +
Interfaces/ICustomerInvoiceRepository.cs | 53 +
Interfaces/ICustomerNotificationRepository.cs | 14 +
Interfaces/ICustomerPlanRepository.cs | 18 +
Interfaces/ICustomerRepository.cs | 76 +
Interfaces/ICustomerSubscriptionRepository.cs | 53 +
Interfaces/IDeviceCommandRepo.cs | 36 +
Interfaces/IDocumentRepository.cs | 13 +
Interfaces/IFacilityRepository.cs | 19 +
Interfaces/IFeedRepository.cs | 28 +
Interfaces/IGymRoleRepository.cs | 20 +
Interfaces/IMealRepository.cs | 34 +
Interfaces/INavItemRepository.cs | 9 +
Interfaces/IOverdueLockRepository.cs | 21 +
Interfaces/IPairingCodeRepo.cs | 11 +
Interfaces/IPaymentRepository.cs | 14 +
Interfaces/IPaymentsEnablementRepository.cs | 19 +
Interfaces/IPlaceRepo.cs | 25 +
Interfaces/IPlatformBillingRepository.cs | 66 +
Interfaces/IProfitLossRepository.cs | 24 +
Interfaces/IStaffRepository.cs | 20 +
Interfaces/ITermsRepository.cs | 14 +
Interfaces/ITicketRepository.cs | 26 +
Interfaces/ITimeBankCardRepository.cs | 13 +
Interfaces/IWorkoutRepository.cs | 34 +
Interfaces/Services/IAccessDeviceService.cs | 47 +
Interfaces/Services/IActivityLogService.cs | 10 +
.../Services/IAdminClientDirectoryService.cs | 16 +
.../Services/IAdminSuggestionService.cs | 11 +
Interfaces/Services/IAgentService.cs | 21 +
Interfaces/Services/IAttendanceService.cs | 9 +
Interfaces/Services/IAuthService.cs | 32 +
Interfaces/Services/IBookingService.cs | 28 +
Interfaces/Services/IBootstrapService.cs | 7 +
Interfaces/Services/IChatService.cs | 12 +
Interfaces/Services/IClientInvoiceService.cs | 14 +
.../Services/IClientPaymentMethodService.cs | 33 +
Interfaces/Services/IClientService.cs | 54 +
Interfaces/Services/IClientStatService.cs | 17 +
.../Services/ICustomerInvoiceService.cs | 14 +
Interfaces/Services/ICustomerPlanService.cs | 17 +
Interfaces/Services/ICustomerService.cs | 65 +
.../Services/ICustomerSubscriptionService.cs | 22 +
Interfaces/Services/IDocumentService.cs | 14 +
Interfaces/Services/IFacilityService.cs | 16 +
Interfaces/Services/IFeedService.cs | 17 +
Interfaces/Services/IGymRoleService.cs | 19 +
Interfaces/Services/IMealService.cs | 21 +
Interfaces/Services/INavigationService.cs | 9 +
Interfaces/Services/IPaymentGatewayClient.cs | 26 +
Interfaces/Services/IPaymentService.cs | 24 +
Interfaces/Services/IPaymentServiceClient.cs | 19 +
.../Services/IPaymentsEnablementService.cs | 20 +
.../Services/IPayoutKycReviewService.cs | 12 +
Interfaces/Services/IPermissionService.cs | 13 +
Interfaces/Services/IPlaceService.cs | 13 +
.../Services/IPlatformBillingService.cs | 28 +
Interfaces/Services/IProfitLossService.cs | 16 +
.../Services/IPushNotificationService.cs | 25 +
Interfaces/Services/IReceiptService.cs | 20 +
Interfaces/Services/IStaffService.cs | 20 +
.../ISubscriptionRenewalApprovalService.cs | 14 +
Interfaces/Services/IThirdPartyService.cs | 11 +
Interfaces/Services/ITicketService.cs | 18 +
Interfaces/Services/ITimeBankCardService.cs | 18 +
Interfaces/Services/IWorkoutService.cs | 21 +
Models/AIAgents.cs | 9 +
Models/AccessDevice.cs | 65 +
Models/AccessDeviceBinding.cs | 44 +
Models/AccessProfile.cs | 67 +
Models/ActivityLog.cs | 18 +
Models/Admin.cs | 19 +
Models/Agent.cs | 19 +
Models/Attendance.cs | 41 +
Models/Booking.cs | 68 +
Models/Chat.cs | 16 +
Models/ChatMessages.cs | 20 +
Models/Client.cs | 46 +
Models/ClientBusiness.cs | 53 +
Models/ClientCard.cs | 31 +
Models/ClientDeviceBilling.cs | 26 +
Models/ClientGymResponse.cs | 11 +
Models/ClientInvoice.cs | 31 +
Models/ClientInvoiceItem.cs | 18 +
Models/ClientPackage.cs | 46 +
Models/ClientPayoutKyc.cs | 48 +
Models/ClientSubItems.cs | 20 +
Models/ClientSubscription.cs | 29 +
Models/ClientTerms.cs | 24 +
Models/ClientWallet.cs | 21 +
Models/CusWeightLossProgress.cs | 20 +
Models/Customer.cs | 47 +
Models/CustomerAccess.cs | 18 +
Models/CustomerCards.cs | 36 +
Models/CustomerHealth.cs | 19 +
Models/CustomerInvoice.cs | 33 +
Models/CustomerInvoiceItem.cs | 18 +
Models/CustomerMeal.cs | 27 +
Models/CustomerNotification.cs | 33 +
Models/CustomerPlan.cs | 67 +
Models/CustomerPlanPlace.cs | 22 +
Models/CustomerSubItem.cs | 26 +
Models/CustomerSubscription.cs | 61 +
Models/CustomerTarget.cs | 25 +
Models/CustomerTermsAcceptance.cs | 26 +
Models/CustomerWorkout.cs | 28 +
Models/CustomerWorkoutExerciseCompletion.cs | 18 +
Models/DeviceCommand.cs | 36 +
Models/DevicePricingConfig.cs | 18 +
Models/DocumentTypes.cs | 11 +
Models/Enums/BeneficiaryType.cs | 8 +
Models/Enums/BusinessType.cs | 10 +
Models/Enums/CustomerOnboardingStatus.cs | 9 +
Models/Enums/FirstChargeStatus.cs | 9 +
Models/Enums/KycStatus.cs | 9 +
Models/Enums/OnboardingStatus.cs | 11 +
Models/Enums/PaymentTrack.cs | 8 +
Models/Enums/PayoutBatchStatus.cs | 9 +
Models/Enums/PriorityLevel.cs | 9 +
Models/Enums/ProgressGoalType.cs | 15 +
Models/Enums/Sex.cs | 8 +
Models/Enums/TicketStatusEnum.cs | 9 +
Models/Enums/WalletEntryType.cs | 8 +
Models/Facility.cs | 32 +
Models/FacilitySession.cs | 33 +
Models/FeedLike.cs | 19 +
Models/FeedPost.cs | 19 +
Models/GymRole.cs | 23 +
Models/GymRolePermission.cs | 20 +
Models/IOs/AdminSuggestionDtos.cs | 9 +
Models/IOs/ApiRequest.cs | 15 +
Models/IOs/ApiResponse.cs | 15 +
Models/IOs/ClientDtos.cs | 80 +
Models/IOs/SmsDtos.cs | 17 +
Models/JobRunLog.cs | 22 +
Models/LedgerEntry.cs | 27 +
Models/Meal.cs | 27 +
Models/MealCategory.cs | 15 +
Models/MealPlan.cs | 28 +
Models/NavItem.cs | 25 +
Models/PairingCode.cs | 20 +
Models/PaymentTransactions.cs | 48 +
Models/PayoutBatch.cs | 21 +
Models/Place.cs | 30 +
Models/Receipt/ReceiptModel.cs | 19 +
Models/Staff.cs | 30 +
Models/StaffPayRate.cs | 21 +
Models/StaffPayment.cs | 22 +
Models/SubscriptionInstallment.cs | 34 +
Models/SubscriptionMember.cs | 38 +
Models/TenantCustomerLink.cs | 33 +
Models/Ticket.cs | 30 +
Models/TicketCategory.cs | 16 +
Models/TicketMessage.cs | 22 +
Models/TicketStatus.cs | 16 +
Models/TimeBankCard.cs | 58 +
Models/TimeBankCardUsageLog.cs | 35 +
Models/UnlinkedDeviceEnrollment.cs | 36 +
Models/User.cs | 17 +
Models/UserDocument.cs | 19 +
Models/WalletLedgerEntry.cs | 26 +
Models/WorkoutCategory.cs | 15 +
Models/WorkoutExercise.cs | 25 +
Models/WorkoutItem.cs | 26 +
Models/WorkoutPlan.cs | 28 +
PROJECT_REFERENCE.md | 1268 +++++
Program.cs | 298 ++
Properties/launchSettings.json | 41 +
Repos/AccessDeviceRepo.cs | 487 ++
Repos/ActivityLogRepository.cs | 88 +
Repos/AdminClientDirectoryRepository.cs | 52 +
Repos/AdminSuggestionRepository.cs | 21 +
Repos/AgentRepo.cs | 54 +
Repos/AttendanceRepository.cs | 191 +
Repos/BookingRepository.cs | 54 +
Repos/ChatRepository.cs | 69 +
Repos/ClientInvoiceRepository.cs | 143 +
Repos/ClientRepository.cs | 826 ++++
Repos/ClientStatRepository.cs | 330 ++
Repos/CustomerInvoiceRepository.cs | 569 +++
Repos/CustomerNotificationRepository.cs | 48 +
Repos/CustomerPlanRepository.cs | 148 +
Repos/CustomerRepository.cs | 1035 ++++
Repos/CustomerSubscriptionRepository.cs | 240 +
Repos/DeviceCommandRepo.cs | 133 +
Repos/DocumentRepository.cs | 66 +
Repos/FacilityRepository.cs | 102 +
Repos/FeedRepository.cs | 220 +
Repos/GymRoleRepository.cs | 88 +
Repos/MealRepository.cs | 442 ++
Repos/NavItemRepository.cs | 25 +
Repos/OverdueLockRepository.cs | 113 +
Repos/PairingCodeRepo.cs | 39 +
Repos/PaymentRepository.cs | 84 +
Repos/PaymentsEnablementRepository.cs | 84 +
Repos/PlaceRepo.cs | 143 +
Repos/PlatformBillingRepository.cs | 264 +
Repos/ProfitLossRepository.cs | 124 +
Repos/StaffRepository.cs | 205 +
Repos/TermsRepository.cs | 57 +
Repos/TicketRepository.cs | 202 +
Repos/TimeBankCardRepository.cs | 50 +
Repos/WorkoutRepository.cs | 459 ++
Services/AccessDeviceService.cs | 803 ++++
Services/ActivityLogService.cs | 98 +
Services/AdminClientDirectoryService.cs | 194 +
Services/AdminSuggestionService.cs | 60 +
Services/AgentService.cs | 731 +++
Services/AttendanceService.cs | 73 +
Services/AuthService.cs | 689 +++
Services/BookingService.cs | 308 ++
Services/BootstrapService.cs | 89 +
Services/ChatService.cs | 138 +
Services/ClientInvoiceService.cs | 142 +
Services/ClientPaymentMethodService.cs | 246 +
Services/ClientService.cs | 1342 ++++++
Services/ClientStatService.cs | 149 +
Services/CustomerInvoiceService.cs | 231 +
Services/CustomerPlanService.cs | 440 ++
Services/CustomerService.cs | 1638 +++++++
Services/CustomerSubscriptionService.cs | 510 ++
Services/DocumentService.cs | 263 +
Services/FacilityService.cs | 262 +
Services/FeedService.cs | 355 ++
.../AccessDeviceFunctionHandler.cs | 128 +
.../FunctionHandler/ActivityLogFuncHandler.cs | 25 +
.../AttendanceFunctionHandler.cs | 90 +
Services/FunctionHandler/AuthFuncHandler.cs | 100 +
.../FunctionHandler/ChatFunctionHandler.cs | 81 +
Services/FunctionHandler/ClientFuncHandler.cs | 106 +
.../ClientInvoiceFunctionHandler.cs | 83 +
.../FunctionHandler/ClientStatFuncHandler.cs | 77 +
.../CustomerFunctionHandler.cs | 104 +
.../CustomerInvoiceFunctionHandler.cs | 83 +
.../CustomerPlanFunctionHandler.cs | 83 +
.../CustomerSubscriptionFunctionHandler.cs | 81 +
.../DocumentFunctionHandler.cs | 90 +
Services/FunctionHandler/FeedFuncHandler.cs | 96 +
.../FunctionHandler/MealFunctionHandler.cs | 88 +
.../FunctionHandler/PaymentFunctionHandler.cs | 83 +
.../FunctionHandler/StaffFunctionHandler.cs | 83 +
.../FunctionHandler/TicketFunctionhandler.cs | 87 +
.../FunctionHandler/UserRegisterHandler.cs | 78 +
.../FunctionHandler/WorkoutFunctionHandler.cs | 88 +
Services/GymRoleService.cs | 126 +
Services/JobRunHistory.cs | 49 +
Services/MealService.cs | 975 ++++
Services/NavigationService.cs | 49 +
Services/OverdueLockJob.cs | 86 +
Services/OverdueLockRunner.cs | 69 +
Services/PaymentGatewayClient.cs | 178 +
Services/PaymentService.cs | 691 +++
Services/PaymentServiceClient.cs | 104 +
Services/PaymentsEnablementService.cs | 187 +
Services/PayoutKycReviewService.cs | 114 +
Services/PermissionService.cs | 63 +
Services/PlaceService.cs | 175 +
Services/PlatformBillingService.cs | 752 +++
Services/ProfitLossService.cs | 161 +
Services/PushNotificationService.cs | 152 +
Services/ReceiptService.cs | 233 +
Services/StaffService.cs | 419 ++
.../SubscriptionRenewalApprovalService.cs | 256 +
Services/SubscriptionRenewalJob.cs | 154 +
Services/SubscriptionRenewalRunner.cs | 157 +
Services/ThirdPartyService.cs | 162 +
Services/TicketService.cs | 327 ++
Services/TimeBankCardService.cs | 164 +
Services/WorkoutService.cs | 1180 +++++
TenantDbContext.cs | 298 ++
appsettings.Development.json | 17 +
appsettings.json | 69 +
package-lock.json | 6 +
.../Client-Admin-API.postman_collection.json | 389 ++
...criptionRenewalJob.postman_collection.json | 176 +
scripts/add-face-photo-columns.sql | 93 +
scripts/agent-face-photo-contract.md | 150 +
scripts/check-layering.ps1 | 46 +
scripts/drop-phantom-category-tables.sql | 27 +
tools/Update-Md5Reference.ps1 | 221 +
424 files changed, 46474 insertions(+)
create mode 100644 .build-obj/Debug/net8.0/Fitness_core_BE.GlobalUsings.g.cs
create mode 100644 .build-obj/Debug/net8.0/Fitness_core_BE.csproj.FileListAbsolute.txt
create mode 100644 .gitignore
create mode 100644 .postman/config.json
create mode 100644 AI/GeminiClient.cs
create mode 100644 AI/IAiClient.cs
create mode 100644 AI/MealPlanOrchestrator.cs
create mode 100644 AI/ModificationGuard.cs
create mode 100644 AI/WorkoutPlanOrchestrator.cs
create mode 100644 Auth/AgentApiKeyAuthenticationHandler.cs
create mode 100644 Auth/UserJwtAuthenticationHandler.cs
create mode 100644 CentralDbContext.cs
create mode 100644 Controllers/APIController.cs
create mode 100644 Controllers/AdminBackgroundJobsController.cs
create mode 100644 Controllers/AdminBillingController.cs
create mode 100644 Controllers/AdminController.cs
create mode 100644 Controllers/AdminPaymentGatewayController.cs
create mode 100644 Controllers/AgentController.cs
create mode 100644 Controllers/BookingController.cs
create mode 100644 Controllers/BootstrapController.cs
create mode 100644 Controllers/ClientController.cs
create mode 100644 Controllers/ClientInvoiceController.cs
create mode 100644 Controllers/CustomerController.cs
create mode 100644 Controllers/CustomerPaymentsController.cs
create mode 100644 Controllers/FacilityController.cs
create mode 100644 Controllers/GymRoleController.cs
create mode 100644 Controllers/NavController.cs
create mode 100644 Controllers/PaymentsEnablementController.cs
create mode 100644 Controllers/PlaceController.cs
create mode 100644 Controllers/SubscriptionRenewalApprovalController.cs
create mode 100644 Controllers/TimeBankCardController.cs
create mode 100644 Controllers/WorkerBillingController.cs
create mode 100644 CustomerProgressFormulas.txt
create mode 100644 DTOs/AccessDevice/AccessDeviceDtos.cs
create mode 100644 DTOs/Agent/AgentRequests.cs
create mode 100644 DTOs/Attendance/AttendanceCountDTO.cs
create mode 100644 DTOs/Attendance/AttendanceDTO.cs
create mode 100644 DTOs/Attendance/TodayAttendanceDTO.cs
create mode 100644 DTOs/Auth/AuthResponse.cs
create mode 100644 DTOs/Booking/BookingDto.cs
create mode 100644 DTOs/Booking/BookingRequests.cs
create mode 100644 DTOs/ClientInvoice/ClientInvoiceDto.cs
create mode 100644 DTOs/ClientInvoice/ClientInvoiceItemDto.cs
create mode 100644 DTOs/ClientInvoice/CreateClientInvoiceRequest.cs
create mode 100644 DTOs/ClientInvoice/UpdateClientInvoiceStatusRequest.cs
create mode 100644 DTOs/Customer/CreateCustomerRequest.cs
create mode 100644 DTOs/Customer/CustomerDto.cs
create mode 100644 DTOs/Customer/FollowedPlanDto.cs
create mode 100644 DTOs/Customer/MemberListRowDto.cs
create mode 100644 DTOs/Customer/UpdateCustomerRequest.cs
create mode 100644 DTOs/CustomerInvoice/CreateCustomerInvoiceRequest.cs
create mode 100644 DTOs/CustomerInvoice/CustomerInvoiceDto.cs
create mode 100644 DTOs/CustomerInvoice/CustomerInvoiceItemDto.cs
create mode 100644 DTOs/CustomerInvoice/UpdateCustomerInvoiceStatusRequest.cs
create mode 100644 DTOs/CustomerPlan/CreateCustomerPlanRequest.cs
create mode 100644 DTOs/CustomerPlan/CustomerPlanDto.cs
create mode 100644 DTOs/CustomerPlan/SetCustomerPlanStatusRequest.cs
create mode 100644 DTOs/CustomerPlan/UpdateCustomerPlanRequest.cs
create mode 100644 DTOs/CustomerSubscription/CreateCustomerSubscriptionRequest.cs
create mode 100644 DTOs/CustomerSubscription/CustomerSubscriptionDto.cs
create mode 100644 DTOs/CustomerSubscription/SubscriptionSummaryDto.cs
create mode 100644 DTOs/DocumentDownloadModel.cs
create mode 100644 DTOs/Facility/FacilityDtos.cs
create mode 100644 DTOs/Facility/FacilityRequests.cs
create mode 100644 DTOs/Ledger/LedgerDtos.cs
create mode 100644 DTOs/Meal/CustomerMealDto.cs
create mode 100644 DTOs/Meal/MealCategoryDto.cs
create mode 100644 DTOs/Meal/MealItemDto.cs
create mode 100644 DTOs/Meal/MealPlanDetailDto.cs
create mode 100644 DTOs/Meal/MealPlanDto.cs
create mode 100644 DTOs/Mobile/AuthRequests.cs
create mode 100644 DTOs/Mobile/ChatRequests.cs
create mode 100644 DTOs/Mobile/CustomerProfileRequests.cs
create mode 100644 DTOs/Mobile/GymOnboardingRequests.cs
create mode 100644 DTOs/Mobile/TicketRequests.cs
create mode 100644 DTOs/PaymentGateways/PaymentGatewayClientDtos.cs
create mode 100644 DTOs/PaymentGateways/PaymentGatewayDtos.cs
create mode 100644 DTOs/PaymentsEnablement/PaymentsEnablementDtos.cs
create mode 100644 DTOs/Place/PlaceDtos.cs
create mode 100644 DTOs/Place/PlaceRequests.cs
create mode 100644 DTOs/PlatformBilling/ClientPaymentMethodDtos.cs
create mode 100644 DTOs/PlatformBilling/PlatformBillingDtos.cs
create mode 100644 DTOs/Rbac/RbacDtos.cs
create mode 100644 DTOs/Staff/CreateStaffRequest.cs
create mode 100644 DTOs/Staff/StaffDto.cs
create mode 100644 DTOs/Staff/StaffPayrollDtos.cs
create mode 100644 DTOs/Staff/UpdateStaffRequest.cs
create mode 100644 DTOs/Stats/ClientStatSummaryDto.cs
create mode 100644 DTOs/Stats/MonthlyRevenueStat.cs
create mode 100644 DTOs/Ticket/TicketDetailDto.cs
create mode 100644 DTOs/Ticket/TicketDto.cs
create mode 100644 DTOs/TimeBankCard/TimeBankCardDto.cs
create mode 100644 DTOs/TimeBankCard/TimeBankCardRequests.cs
create mode 100644 DTOs/Tute/UpdateTuteItemRequest.cs
create mode 100644 DTOs/Workout/CustomerWorkoutDto.cs
create mode 100644 DTOs/Workout/WorkoutCategoryDto.cs
create mode 100644 DTOs/Workout/WorkoutExerciseDto.cs
create mode 100644 DTOs/Workout/WorkoutItemDto.cs
create mode 100644 DTOs/Workout/WorkoutPlanDetailDto.cs
create mode 100644 DTOs/Workout/WorkoutPlanDto.cs
create mode 100644 Data/WorkoutPlanSeedData.cs
create mode 100644 Domain/CustomerSubscriptionFactory.cs
create mode 100644 Domain/DiscountCalculator.cs
create mode 100644 Exceptions/CustomExceptions.cs
create mode 100644 Fitness-core-BE.sln
create mode 100644 Fitness_Core_API.postman_collection.json
create mode 100644 Fitness_core_BE.csproj
create mode 100644 Helpers/ApiKeyHelper.cs
create mode 100644 Helpers/ApiResponseHelper.cs
create mode 100644 Helpers/AuthOtpResponseParser.cs
create mode 100644 Helpers/BookingViewHtml.cs
create mode 100644 Helpers/BusinessLogoHelper.cs
create mode 100644 Helpers/CustomerProgressHelper.cs
create mode 100644 Helpers/DataExtractor.cs
create mode 100644 Helpers/DeserializePayload.cs
create mode 100644 Helpers/EncryptionHelper.cs
create mode 100644 Helpers/FacePhotoValidator.cs
create mode 100644 Helpers/GlobalExceptionMiddleware.cs
create mode 100644 Helpers/GymFacilities.cs
create mode 100644 Helpers/InvoicePaymentTokenHelper.cs
create mode 100644 Helpers/JwtMiddleware.cs
create mode 100644 Helpers/PlatformInvoicePaymentTokenHelper.cs
create mode 100644 Helpers/RequestAccessTokenHelper.cs
create mode 100644 Helpers/RequireWorkerKeyAttribute.cs
create mode 100644 Helpers/RequiresPermissionAttribute.cs
create mode 100644 Helpers/SandboxTokenHelper.cs
create mode 100644 Helpers/TenantResolutionAttribute.cs
create mode 100644 Helpers/UserRoleHelper.cs
create mode 100644 Hubs/AccessHub.cs
create mode 100644 Hubs/ChatHub.cs
create mode 100644 Infra/Tenancy/ITenantContext.cs
create mode 100644 Infra/Tenancy/TenantSchemaIterator.cs
create mode 100644 Infra/UoW/EFUnitOfWork.cs
create mode 100644 Infra/UoW/IUnitOfWork.cs
create mode 100644 Interfaces/IAccessDeviceRepo.cs
create mode 100644 Interfaces/IActivityLogRepository.cs
create mode 100644 Interfaces/IAdminClientDirectoryRepository.cs
create mode 100644 Interfaces/IAdminSuggestionRepository.cs
create mode 100644 Interfaces/IAgentRepo.cs
create mode 100644 Interfaces/IAttendanceRepository.cs
create mode 100644 Interfaces/IBookingRepository.cs
create mode 100644 Interfaces/IChatRepo.cs
create mode 100644 Interfaces/IClientInvoiceRepository.cs
create mode 100644 Interfaces/IClientRepository.cs
create mode 100644 Interfaces/IClientStatRepository.cs
create mode 100644 Interfaces/ICustomerInvoiceRepository.cs
create mode 100644 Interfaces/ICustomerNotificationRepository.cs
create mode 100644 Interfaces/ICustomerPlanRepository.cs
create mode 100644 Interfaces/ICustomerRepository.cs
create mode 100644 Interfaces/ICustomerSubscriptionRepository.cs
create mode 100644 Interfaces/IDeviceCommandRepo.cs
create mode 100644 Interfaces/IDocumentRepository.cs
create mode 100644 Interfaces/IFacilityRepository.cs
create mode 100644 Interfaces/IFeedRepository.cs
create mode 100644 Interfaces/IGymRoleRepository.cs
create mode 100644 Interfaces/IMealRepository.cs
create mode 100644 Interfaces/INavItemRepository.cs
create mode 100644 Interfaces/IOverdueLockRepository.cs
create mode 100644 Interfaces/IPairingCodeRepo.cs
create mode 100644 Interfaces/IPaymentRepository.cs
create mode 100644 Interfaces/IPaymentsEnablementRepository.cs
create mode 100644 Interfaces/IPlaceRepo.cs
create mode 100644 Interfaces/IPlatformBillingRepository.cs
create mode 100644 Interfaces/IProfitLossRepository.cs
create mode 100644 Interfaces/IStaffRepository.cs
create mode 100644 Interfaces/ITermsRepository.cs
create mode 100644 Interfaces/ITicketRepository.cs
create mode 100644 Interfaces/ITimeBankCardRepository.cs
create mode 100644 Interfaces/IWorkoutRepository.cs
create mode 100644 Interfaces/Services/IAccessDeviceService.cs
create mode 100644 Interfaces/Services/IActivityLogService.cs
create mode 100644 Interfaces/Services/IAdminClientDirectoryService.cs
create mode 100644 Interfaces/Services/IAdminSuggestionService.cs
create mode 100644 Interfaces/Services/IAgentService.cs
create mode 100644 Interfaces/Services/IAttendanceService.cs
create mode 100644 Interfaces/Services/IAuthService.cs
create mode 100644 Interfaces/Services/IBookingService.cs
create mode 100644 Interfaces/Services/IBootstrapService.cs
create mode 100644 Interfaces/Services/IChatService.cs
create mode 100644 Interfaces/Services/IClientInvoiceService.cs
create mode 100644 Interfaces/Services/IClientPaymentMethodService.cs
create mode 100644 Interfaces/Services/IClientService.cs
create mode 100644 Interfaces/Services/IClientStatService.cs
create mode 100644 Interfaces/Services/ICustomerInvoiceService.cs
create mode 100644 Interfaces/Services/ICustomerPlanService.cs
create mode 100644 Interfaces/Services/ICustomerService.cs
create mode 100644 Interfaces/Services/ICustomerSubscriptionService.cs
create mode 100644 Interfaces/Services/IDocumentService.cs
create mode 100644 Interfaces/Services/IFacilityService.cs
create mode 100644 Interfaces/Services/IFeedService.cs
create mode 100644 Interfaces/Services/IGymRoleService.cs
create mode 100644 Interfaces/Services/IMealService.cs
create mode 100644 Interfaces/Services/INavigationService.cs
create mode 100644 Interfaces/Services/IPaymentGatewayClient.cs
create mode 100644 Interfaces/Services/IPaymentService.cs
create mode 100644 Interfaces/Services/IPaymentServiceClient.cs
create mode 100644 Interfaces/Services/IPaymentsEnablementService.cs
create mode 100644 Interfaces/Services/IPayoutKycReviewService.cs
create mode 100644 Interfaces/Services/IPermissionService.cs
create mode 100644 Interfaces/Services/IPlaceService.cs
create mode 100644 Interfaces/Services/IPlatformBillingService.cs
create mode 100644 Interfaces/Services/IProfitLossService.cs
create mode 100644 Interfaces/Services/IPushNotificationService.cs
create mode 100644 Interfaces/Services/IReceiptService.cs
create mode 100644 Interfaces/Services/IStaffService.cs
create mode 100644 Interfaces/Services/ISubscriptionRenewalApprovalService.cs
create mode 100644 Interfaces/Services/IThirdPartyService.cs
create mode 100644 Interfaces/Services/ITicketService.cs
create mode 100644 Interfaces/Services/ITimeBankCardService.cs
create mode 100644 Interfaces/Services/IWorkoutService.cs
create mode 100644 Models/AIAgents.cs
create mode 100644 Models/AccessDevice.cs
create mode 100644 Models/AccessDeviceBinding.cs
create mode 100644 Models/AccessProfile.cs
create mode 100644 Models/ActivityLog.cs
create mode 100644 Models/Admin.cs
create mode 100644 Models/Agent.cs
create mode 100644 Models/Attendance.cs
create mode 100644 Models/Booking.cs
create mode 100644 Models/Chat.cs
create mode 100644 Models/ChatMessages.cs
create mode 100644 Models/Client.cs
create mode 100644 Models/ClientBusiness.cs
create mode 100644 Models/ClientCard.cs
create mode 100644 Models/ClientDeviceBilling.cs
create mode 100644 Models/ClientGymResponse.cs
create mode 100644 Models/ClientInvoice.cs
create mode 100644 Models/ClientInvoiceItem.cs
create mode 100644 Models/ClientPackage.cs
create mode 100644 Models/ClientPayoutKyc.cs
create mode 100644 Models/ClientSubItems.cs
create mode 100644 Models/ClientSubscription.cs
create mode 100644 Models/ClientTerms.cs
create mode 100644 Models/ClientWallet.cs
create mode 100644 Models/CusWeightLossProgress.cs
create mode 100644 Models/Customer.cs
create mode 100644 Models/CustomerAccess.cs
create mode 100644 Models/CustomerCards.cs
create mode 100644 Models/CustomerHealth.cs
create mode 100644 Models/CustomerInvoice.cs
create mode 100644 Models/CustomerInvoiceItem.cs
create mode 100644 Models/CustomerMeal.cs
create mode 100644 Models/CustomerNotification.cs
create mode 100644 Models/CustomerPlan.cs
create mode 100644 Models/CustomerPlanPlace.cs
create mode 100644 Models/CustomerSubItem.cs
create mode 100644 Models/CustomerSubscription.cs
create mode 100644 Models/CustomerTarget.cs
create mode 100644 Models/CustomerTermsAcceptance.cs
create mode 100644 Models/CustomerWorkout.cs
create mode 100644 Models/CustomerWorkoutExerciseCompletion.cs
create mode 100644 Models/DeviceCommand.cs
create mode 100644 Models/DevicePricingConfig.cs
create mode 100644 Models/DocumentTypes.cs
create mode 100644 Models/Enums/BeneficiaryType.cs
create mode 100644 Models/Enums/BusinessType.cs
create mode 100644 Models/Enums/CustomerOnboardingStatus.cs
create mode 100644 Models/Enums/FirstChargeStatus.cs
create mode 100644 Models/Enums/KycStatus.cs
create mode 100644 Models/Enums/OnboardingStatus.cs
create mode 100644 Models/Enums/PaymentTrack.cs
create mode 100644 Models/Enums/PayoutBatchStatus.cs
create mode 100644 Models/Enums/PriorityLevel.cs
create mode 100644 Models/Enums/ProgressGoalType.cs
create mode 100644 Models/Enums/Sex.cs
create mode 100644 Models/Enums/TicketStatusEnum.cs
create mode 100644 Models/Enums/WalletEntryType.cs
create mode 100644 Models/Facility.cs
create mode 100644 Models/FacilitySession.cs
create mode 100644 Models/FeedLike.cs
create mode 100644 Models/FeedPost.cs
create mode 100644 Models/GymRole.cs
create mode 100644 Models/GymRolePermission.cs
create mode 100644 Models/IOs/AdminSuggestionDtos.cs
create mode 100644 Models/IOs/ApiRequest.cs
create mode 100644 Models/IOs/ApiResponse.cs
create mode 100644 Models/IOs/ClientDtos.cs
create mode 100644 Models/IOs/SmsDtos.cs
create mode 100644 Models/JobRunLog.cs
create mode 100644 Models/LedgerEntry.cs
create mode 100644 Models/Meal.cs
create mode 100644 Models/MealCategory.cs
create mode 100644 Models/MealPlan.cs
create mode 100644 Models/NavItem.cs
create mode 100644 Models/PairingCode.cs
create mode 100644 Models/PaymentTransactions.cs
create mode 100644 Models/PayoutBatch.cs
create mode 100644 Models/Place.cs
create mode 100644 Models/Receipt/ReceiptModel.cs
create mode 100644 Models/Staff.cs
create mode 100644 Models/StaffPayRate.cs
create mode 100644 Models/StaffPayment.cs
create mode 100644 Models/SubscriptionInstallment.cs
create mode 100644 Models/SubscriptionMember.cs
create mode 100644 Models/TenantCustomerLink.cs
create mode 100644 Models/Ticket.cs
create mode 100644 Models/TicketCategory.cs
create mode 100644 Models/TicketMessage.cs
create mode 100644 Models/TicketStatus.cs
create mode 100644 Models/TimeBankCard.cs
create mode 100644 Models/TimeBankCardUsageLog.cs
create mode 100644 Models/UnlinkedDeviceEnrollment.cs
create mode 100644 Models/User.cs
create mode 100644 Models/UserDocument.cs
create mode 100644 Models/WalletLedgerEntry.cs
create mode 100644 Models/WorkoutCategory.cs
create mode 100644 Models/WorkoutExercise.cs
create mode 100644 Models/WorkoutItem.cs
create mode 100644 Models/WorkoutPlan.cs
create mode 100644 PROJECT_REFERENCE.md
create mode 100644 Program.cs
create mode 100644 Properties/launchSettings.json
create mode 100644 Repos/AccessDeviceRepo.cs
create mode 100644 Repos/ActivityLogRepository.cs
create mode 100644 Repos/AdminClientDirectoryRepository.cs
create mode 100644 Repos/AdminSuggestionRepository.cs
create mode 100644 Repos/AgentRepo.cs
create mode 100644 Repos/AttendanceRepository.cs
create mode 100644 Repos/BookingRepository.cs
create mode 100644 Repos/ChatRepository.cs
create mode 100644 Repos/ClientInvoiceRepository.cs
create mode 100644 Repos/ClientRepository.cs
create mode 100644 Repos/ClientStatRepository.cs
create mode 100644 Repos/CustomerInvoiceRepository.cs
create mode 100644 Repos/CustomerNotificationRepository.cs
create mode 100644 Repos/CustomerPlanRepository.cs
create mode 100644 Repos/CustomerRepository.cs
create mode 100644 Repos/CustomerSubscriptionRepository.cs
create mode 100644 Repos/DeviceCommandRepo.cs
create mode 100644 Repos/DocumentRepository.cs
create mode 100644 Repos/FacilityRepository.cs
create mode 100644 Repos/FeedRepository.cs
create mode 100644 Repos/GymRoleRepository.cs
create mode 100644 Repos/MealRepository.cs
create mode 100644 Repos/NavItemRepository.cs
create mode 100644 Repos/OverdueLockRepository.cs
create mode 100644 Repos/PairingCodeRepo.cs
create mode 100644 Repos/PaymentRepository.cs
create mode 100644 Repos/PaymentsEnablementRepository.cs
create mode 100644 Repos/PlaceRepo.cs
create mode 100644 Repos/PlatformBillingRepository.cs
create mode 100644 Repos/ProfitLossRepository.cs
create mode 100644 Repos/StaffRepository.cs
create mode 100644 Repos/TermsRepository.cs
create mode 100644 Repos/TicketRepository.cs
create mode 100644 Repos/TimeBankCardRepository.cs
create mode 100644 Repos/WorkoutRepository.cs
create mode 100644 Services/AccessDeviceService.cs
create mode 100644 Services/ActivityLogService.cs
create mode 100644 Services/AdminClientDirectoryService.cs
create mode 100644 Services/AdminSuggestionService.cs
create mode 100644 Services/AgentService.cs
create mode 100644 Services/AttendanceService.cs
create mode 100644 Services/AuthService.cs
create mode 100644 Services/BookingService.cs
create mode 100644 Services/BootstrapService.cs
create mode 100644 Services/ChatService.cs
create mode 100644 Services/ClientInvoiceService.cs
create mode 100644 Services/ClientPaymentMethodService.cs
create mode 100644 Services/ClientService.cs
create mode 100644 Services/ClientStatService.cs
create mode 100644 Services/CustomerInvoiceService.cs
create mode 100644 Services/CustomerPlanService.cs
create mode 100644 Services/CustomerService.cs
create mode 100644 Services/CustomerSubscriptionService.cs
create mode 100644 Services/DocumentService.cs
create mode 100644 Services/FacilityService.cs
create mode 100644 Services/FeedService.cs
create mode 100644 Services/FunctionHandler/AccessDeviceFunctionHandler.cs
create mode 100644 Services/FunctionHandler/ActivityLogFuncHandler.cs
create mode 100644 Services/FunctionHandler/AttendanceFunctionHandler.cs
create mode 100644 Services/FunctionHandler/AuthFuncHandler.cs
create mode 100644 Services/FunctionHandler/ChatFunctionHandler.cs
create mode 100644 Services/FunctionHandler/ClientFuncHandler.cs
create mode 100644 Services/FunctionHandler/ClientInvoiceFunctionHandler.cs
create mode 100644 Services/FunctionHandler/ClientStatFuncHandler.cs
create mode 100644 Services/FunctionHandler/CustomerFunctionHandler.cs
create mode 100644 Services/FunctionHandler/CustomerInvoiceFunctionHandler.cs
create mode 100644 Services/FunctionHandler/CustomerPlanFunctionHandler.cs
create mode 100644 Services/FunctionHandler/CustomerSubscriptionFunctionHandler.cs
create mode 100644 Services/FunctionHandler/DocumentFunctionHandler.cs
create mode 100644 Services/FunctionHandler/FeedFuncHandler.cs
create mode 100644 Services/FunctionHandler/MealFunctionHandler.cs
create mode 100644 Services/FunctionHandler/PaymentFunctionHandler.cs
create mode 100644 Services/FunctionHandler/StaffFunctionHandler.cs
create mode 100644 Services/FunctionHandler/TicketFunctionhandler.cs
create mode 100644 Services/FunctionHandler/UserRegisterHandler.cs
create mode 100644 Services/FunctionHandler/WorkoutFunctionHandler.cs
create mode 100644 Services/GymRoleService.cs
create mode 100644 Services/JobRunHistory.cs
create mode 100644 Services/MealService.cs
create mode 100644 Services/NavigationService.cs
create mode 100644 Services/OverdueLockJob.cs
create mode 100644 Services/OverdueLockRunner.cs
create mode 100644 Services/PaymentGatewayClient.cs
create mode 100644 Services/PaymentService.cs
create mode 100644 Services/PaymentServiceClient.cs
create mode 100644 Services/PaymentsEnablementService.cs
create mode 100644 Services/PayoutKycReviewService.cs
create mode 100644 Services/PermissionService.cs
create mode 100644 Services/PlaceService.cs
create mode 100644 Services/PlatformBillingService.cs
create mode 100644 Services/ProfitLossService.cs
create mode 100644 Services/PushNotificationService.cs
create mode 100644 Services/ReceiptService.cs
create mode 100644 Services/StaffService.cs
create mode 100644 Services/SubscriptionRenewalApprovalService.cs
create mode 100644 Services/SubscriptionRenewalJob.cs
create mode 100644 Services/SubscriptionRenewalRunner.cs
create mode 100644 Services/ThirdPartyService.cs
create mode 100644 Services/TicketService.cs
create mode 100644 Services/TimeBankCardService.cs
create mode 100644 Services/WorkoutService.cs
create mode 100644 TenantDbContext.cs
create mode 100644 appsettings.Development.json
create mode 100644 appsettings.json
create mode 100644 package-lock.json
create mode 100644 postman/Client-Admin-API.postman_collection.json
create mode 100644 postman/SubscriptionRenewalJob.postman_collection.json
create mode 100644 scripts/add-face-photo-columns.sql
create mode 100644 scripts/agent-face-photo-contract.md
create mode 100644 scripts/check-layering.ps1
create mode 100644 scripts/drop-phantom-category-tables.sql
create mode 100644 tools/Update-Md5Reference.ps1
diff --git a/.build-obj/Debug/net8.0/Fitness_core_BE.GlobalUsings.g.cs b/.build-obj/Debug/net8.0/Fitness_core_BE.GlobalUsings.g.cs
new file mode 100644
index 0000000..5e6145d
--- /dev/null
+++ b/.build-obj/Debug/net8.0/Fitness_core_BE.GlobalUsings.g.cs
@@ -0,0 +1,17 @@
+//
+global using Microsoft.AspNetCore.Builder;
+global using Microsoft.AspNetCore.Hosting;
+global using Microsoft.AspNetCore.Http;
+global using Microsoft.AspNetCore.Routing;
+global using Microsoft.Extensions.Configuration;
+global using Microsoft.Extensions.DependencyInjection;
+global using Microsoft.Extensions.Hosting;
+global using Microsoft.Extensions.Logging;
+global using System;
+global using System.Collections.Generic;
+global using System.IO;
+global using System.Linq;
+global using System.Net.Http;
+global using System.Net.Http.Json;
+global using System.Threading;
+global using System.Threading.Tasks;
diff --git a/.build-obj/Debug/net8.0/Fitness_core_BE.csproj.FileListAbsolute.txt b/.build-obj/Debug/net8.0/Fitness_core_BE.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..e69de29
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d0d4dc3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,36 @@
+# Build artifacts
+bin/
+obj/
+
+# Visual Studio
+.vs/
+*.user
+*.suo
+*.userosscache
+*.sln.docstates
+
+# Logs
+*.log
+
+# zips
+*.zip
+
+publish/
+
+# Entity Framework migrations are normally kept local in this repository.
+# Track the unified access migration and snapshot because the application
+# requires them to upgrade existing client installations safely.
+Migrations/*
+!Migrations/20260727103618_UnifiedAccessProfiles.cs
+!Migrations/20260727103618_UnifiedAccessProfiles.Designer.cs
+!Migrations/20260727104258_AttendanceDeviceScope.cs
+!Migrations/20260727104258_AttendanceDeviceScope.Designer.cs
+!Migrations/20260727115125_AttendanceSourceEventIdempotency.cs
+!Migrations/20260727115125_AttendanceSourceEventIdempotency.Designer.cs
+!Migrations/20260727120451_DeviceReportedPresence.cs
+!Migrations/20260727120451_DeviceReportedPresence.Designer.cs
+!Migrations/20260728064848_GatewayOnboardingSelection.cs
+!Migrations/20260728064848_GatewayOnboardingSelection.Designer.cs
+!Migrations/AppDBContextModelSnapshot.cs
+!Migrations/20260729081539_PersistGymCoordinates.cs
+!Migrations/20260729081539_PersistGymCoordinates.Designer.cs
diff --git a/.postman/config.json b/.postman/config.json
new file mode 100644
index 0000000..9ff04f4
--- /dev/null
+++ b/.postman/config.json
@@ -0,0 +1,17 @@
+{
+ "workspace": {
+ "id": "0d87f5dc-8434-403b-88bc-6d05f4639c4c"
+ },
+ "entities": {
+ "environments": [],
+ "flows": [],
+ "globals": [],
+ "mocks": [],
+ "specs": [
+ "..\\obj\\Debug\\net8.0\\EndpointInfo\\Fitness-core-BE.json"
+ ],
+ "collections": [
+ "..\\Fitness_Core_API.postman_collection.json"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/AI/GeminiClient.cs b/AI/GeminiClient.cs
new file mode 100644
index 0000000..fb90c25
--- /dev/null
+++ b/AI/GeminiClient.cs
@@ -0,0 +1,68 @@
+using System.Text.Json;
+
+namespace Fitness_core_BE.AI
+{
+ public class GeminiClient : IAiClient
+ {
+ private readonly HttpClient _http;
+ private readonly IConfiguration _config;
+
+ public GeminiClient(HttpClient http, IConfiguration configuration)
+ {
+ _http = http;
+ _config = configuration;
+ }
+
+ public async Task GenerateJsonAsync( string systemPrompt, object payload)
+ {
+ string apiKey = _config["Gemini:ApiKey"];
+
+ if (string.IsNullOrEmpty(apiKey))
+ throw new Exception("Gemini API key is not configured.");
+
+ var requestBody = new
+ {
+ contents = new[]
+ {
+ new
+ {
+ parts = new[]
+ {
+ new { text = systemPrompt },
+ new { text = JsonSerializer.Serialize(payload) }
+ }
+ }
+ },
+ generationConfig = new
+ {
+ temperature = 0.4,
+ maxOutputTokens = 10000
+ }
+ };
+
+ var response = await _http.PostAsJsonAsync(
+ $"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key={apiKey}",
+ requestBody
+ );
+
+ if (!response.IsSuccessStatusCode)
+ {
+ var error = await response.Content.ReadAsStringAsync();
+ throw new Exception($"Gemini API Error: {error}");
+ }
+
+ var jsonString = await response.Content.ReadAsStringAsync();
+
+ using var doc = JsonDocument.Parse(jsonString);
+
+ var text = doc.RootElement
+ .GetProperty("candidates")[0]
+ .GetProperty("content")
+ .GetProperty("parts")[0]
+ .GetProperty("text")
+ .GetString();
+
+ return text ?? throw new Exception("No response text from Gemini.");
+ }
+ }
+}
diff --git a/AI/IAiClient.cs b/AI/IAiClient.cs
new file mode 100644
index 0000000..26e3d45
--- /dev/null
+++ b/AI/IAiClient.cs
@@ -0,0 +1,7 @@
+namespace Fitness_core_BE.AI
+{
+ public interface IAiClient
+ {
+ Task GenerateJsonAsync(string systemPrompt, object payload);
+ }
+}
diff --git a/AI/MealPlanOrchestrator.cs b/AI/MealPlanOrchestrator.cs
new file mode 100644
index 0000000..c3a728c
--- /dev/null
+++ b/AI/MealPlanOrchestrator.cs
@@ -0,0 +1,213 @@
+using Fitness_core_BE.Helpers;
+using System.Text.Json;
+
+namespace Fitness_core_BE.AI
+{
+ public class MealPlanOrchestrator
+ {
+ private readonly IAiClient _aiClient;
+ private readonly ModificationGuard _guard;
+
+ public MealPlanOrchestrator( IAiClient aiClient, ModificationGuard guard)
+ {
+ _aiClient = aiClient;
+ _guard = guard;
+ }
+
+ public async Task