The Provider Service is a core microservice responsible for managing service providers, their services, availability configurations, and appointment slots within the Serviq platform.
- Java 21: Core programming language
- Spring Boot 3.5.6: Application framework
- Spring Data JPA: Database access
- MapStruct: Object mapping
- Lombok: Boilerplate code reduction
- TestContainers: Integration testing
- Liquibase: Database migrations
- PostgreSQL 15+: Primary database
- JSONB: For flexible data storage
- Complete CRUD operations for service providers
- Provider search and filtering
- Pagination and sorting support
- Add/remove services for providers
- Service-specific configurations
- Capacity and pricing management
- Recurring and one-time availability
- Custom availability windows
- Override capabilities for special schedules
- Automatic slot generation
- Real-time availability checking
- Booking integration
POST /api/v1/providers- Create a new providerGET /api/v1/providers/{id}- Get provider detailsPUT /api/v1/providers/{id}- Update providerGET /api/v1/providers- List all providers (paginated)
POST /api/v1/providers/{id}/services- Add a serviceGET /api/v1/providers/{providerId}/services/{serviceId}- Get service detailsPUT /api/v1/providers/{providerId}/services/{serviceId}- Update serviceGET /api/v1/providers/{providerId}/services- List all services
POST /api/v1/availability-configs- Create availabilityGET /api/v1/availability-configs/provider/{providerId}- Get provider availabilityPUT /api/v1/availability-configs/{id}- Update availabilityDELETE /api/v1/availability-configs/{id}- Remove availability
POST /api/v1/slots- Create slotPOST /api/v1/slots/bulk- Create multiple slotsGET /api/v1/slots/available- Get available slotsPOST /api/v1/slots/{slotId}/book- Book a slot
- Java 21
- Maven 3.8+
- PostgreSQL 15+
- Docker (optional)
- Clone the repository
- Configure database in
application.yml:spring: datasource: url: jdbc:postgresql://localhost:5432/provider_db username: your_username password: your_password