All Classes and Interfaces

Class
Description
ActuatorSecurityConfig.java - Security for the management endpoints.
AdminChangeEmailRequest.java - DTO class for changing admin email.
AdminChangePasswordRequest.java - DTO class for changing admin password.
AdminController.java - Controller for handling admin-related web requests.
AdminNewsController.java - Handles admin interactions for News management.
AISecurityConfig.java - Security configuration for AI-related endpoints.
AopLogger.java - Aspect that logs method entry, exit and thrown exceptions.
The main application class for the Car Service application.
AsyncConfig.java - Enables @Async execution and defines the executor it uses.
AuthController.java - Controller for handling authentication-related web requests.
AuthenticationEntryPoint.java - Custom authentication entry point for handling unauthorized access.
AuthenticationMetaData.java - Represents the authentication metadata of a user.
Runs scheduled jobs to cancel expired bookings and archive old bookings.
BookingClient.java - Client interface for booking service.
BookingController.java - Controller for handling booking-related web requests.
BookingFormRequest.java - DTO class for booking form requests.
BookingRequest.java - DTO class for booking request.
BookingResponse.java - Response class for booking.
BookingService.java - Service class for managing bookings.
CacheConfig.java - In-process caching for the service catalogue.
CarService.java - Entity class for Car Service.
CartController.java - Controller for handling shopping cart-related web requests.
CartView.java - Immutable snapshot of a ShoppingCart, safe to render.
CatalogService.java - Service class for managing the catalog of car services.
ChangeProfileInfoRequest.java - DTO class for changing user profile information.
ChangeUserPasswordRequest.java - DTO class for changing user password.
ChatbotRequest.java - DTO class for AI request.
ChatbotResponse.java - DTO class for AI response.
CheckoutService.java - Turns a pending booking into a booking and a paid invoice.
Country.java - Enum representing countries with their names and ISO codes.
CreateServiceRequest.java - DTO class for creating a new service.
CreateVehicleRequest.java - DTO class for creating a new vehicle.
CurrentUriAdvice.java - Exposes the current request path to every view.
CustomAccessDeniedHandler.java - Handles access denied exceptions by redirecting users.
CustomErrorController.java - Renders the branded error pages for container-level errors.
CustomOAuth2UserService.java - Service to handle OAuth2 user authentication and registration.
DailyReportJob.java - Sends a daily admin report email at 8:00 AM.
DataBaseSecurityConfig.java - Configuration class for database security settings.
DataInitializer.java - Initializes the database with default service categories and services.
DevModeProperties.java - Toggle for developer-mode behavior such as bypassing the real payment gateway and short-circuiting the booking/invoice flow.
DevPaymentController.java - Simulates a successful payment without calling Stripe.
DtoMapper.java - Utility class for mapping between entities and DTOs.
Feedback.java - Entity class for Feedback.
FieldsShouldNotMatch.java - Custom annotation for validating that two fields do not match.
FieldsShouldNotMatchValidator.java - Validator to ensure that two specified fields do not match.
FileStorageService.java - Service class for handling file uploads locally.
GeminiConfig.java - Configuration class for Gemini AI client.
GeminiController.java - Controller for handling Gemini AI API requests.
GeminiService.java - Service for interacting with Gemini AI API.
GetBookingResponse.java - Response class for getting all bookings.
Global exception handler for the web layer.
I18nConfig.java - Language selection for the web UI.
Invoice.java - Locally-stored invoice generated when a booking is paid (or scheduled to be paid).
InvoiceController.java - Web endpoints for listing, viewing, and downloading invoices.
InvoiceLineItem.java - Embedded line item snapshot stored on an invoice.
InvoiceNumberGenerator.java - Produces human-readable invoice numbers in the form INV-YYYY-NNNNNN.
InvoiceRepository.java - JPA repository for invoices.
InvoiceService.java - Generation, retrieval, and PDF rendering of invoices.
InvoiceStatus.java - Lifecycle states of an invoice.
This annotation is used to activate the performance logging for any method.
LoginProvider.java - Enum representing different login providers.
LoginRequest.java - DTO class for user login requests.
News.java - Entity class for News items.
NewsRepository.java - Repository for News model.
NewsService.java - Handles business logic for News articles.
PagesController.java - Controller for handling static pages web requests.
PasswordsMatch.java - Custom annotation for validating that two password fields match.
Allows multiple annotations on the same element.
PasswordsMatchValidator.java - Validator to check if two password fields match.
Feign client for interacting with the Payment Service.
PaymentController acts as a proxy to the actual payment-gateway service.
PaymentIntentResponse.java - The authoritative state of a payment, read back from payment-service rather than taken from the browser redirect.
Payment Request - DTO class for payment request.
PaymentResponse.class - DTO class for payment response.
PaymentVerificationProperties.java - Controls whether a payment is confirmed against payment-service before an invoice is marked PAID.
PendingBookingSessionRequest.java - DTO class for pending booking session requests.
RegisterNewUserRequest.java - DTO class for registering a new user.
RegisterRequest.java - DTO class for registering a new user.
Thrown when a requested catalogue resource (service or category) does not exist.
SchedulerConfig.java - Configuration for scheduled tasks.
SecurityConfig.java - Security configuration for the application.
ServiceCategory.java - Entity class for Service Category.
ServiceCategoryRepository.java - Repository interface for ServiceCategory entity.
ServiceController.java - Controller for handling service-related web requests.
ServiceRepository.java - Repository interface for Service entity.
Shopping cart stored in the user's session.
SwaggerConfig.java - Configuration class for Swagger settings.
SwaggerSecurityConfig.java - Security configuration for Swagger UI access.
TwoFactorAuthenticationSuccessHandler.java - Holds a password sign-in back until an emailed code is confirmed.
TwoFactorController.java - The second step of a password sign-in.
TwoFactorProperties.java - Settings for email two-factor authentication.
TwoFactorService.java - Issues and verifies the one-time codes used at sign-in.
Outcome of checking a submitted code.
TwoFactorToken.java - A one-time code emailed to a user during sign-in.
TwoFactorTokenCleanupJob.java - Removes expired sign-in codes.
TwoFactorTokenRepository.java - Persistence for one-time sign-in codes.
UpdateServiceRequest.java - DTO class for updating a service.
UpdateUserRequest.java - DTO class for updating user information.
User.java - Entity class for storing user information.
UserController.java - Controller for handling user-related web requests.
UserDoesNotExistException.java - Custom exception thrown when a user does not exist.
UserEmailAlreadyExistsException.java - Custom exception thrown when a user email already exists.
UserPasswordDoesNotMatchException.java - Exception thrown when a user's password does not match.
UserRegisteredEvent.java - Event class for user registration event.
UserRepository.java - Repository interface for User entity.
UserRole.java - Enum for defining user roles.
UserService.java - Service class for managing user-related operations.
Vehicle.java - Entity class for storing vehicle information.
Custom exception for vehicle-related business logic errors.
VehicleRepository.java - Repository interface for Vehicle entity operations.
VehicleService.class - Service class for managing vehicles.
VeryImportant.java - Custom annotation to mark very important classes or methods.
WebMvcConfig.java - Maps absolute file paths for external uploads.