Absence Management
Overview
The Absence Management module is a core component of the Bee O'clock panel service that handles staff absences, vacations, holidays, and business closures. It provides a comprehensive system for managing when team members are unavailable and when the entire business is closed.
Purpose
This module enables businesses to:
Track Staff Absences: Record when individual team members are unavailable
Manage Business Closures: Handle business-wide holidays and closures
Prevent Scheduling Conflicts: Integrate with booking systems to avoid conflicts
Maintain Compliance: Track time off for legal and HR requirements
Real-time Updates: Notify stakeholders of absence changes
Key Features
β
Comprehensive Absence Types
Vacation: Personal time off requests
Holiday: Business holidays and public holidays
Break: Short-term breaks or temporary unavailability
β
Flexible Assignment Options
Individual Absences: Assign to specific team members
Business-wide Closures: Affect entire business operations
Multi-location Support: Target specific business locations
β
Advanced Permission System
Role-based Access: Different permission levels for different roles
Scope Control: OWN (personal) vs ANY (all absences) access
Granular Permissions: Separate create, read, update, delete permissions
β
Real-time Synchronization
WebSocket Updates: Instant notifications to connected clients
Event-driven Architecture: AMQP messaging for system integration
Cache Management: Automatic cache invalidation for optimal performance
β
Robust Data Management
Soft Delete: Maintain audit trails without data loss
State History: Track all changes with full audit trail
Multi-tenant: Complete tenant isolation and security
Timezone Support: Handle global businesses with proper timezone management
Architecture
The module follows Clean Architecture principles with clear separation of concerns:
Technology Stack
Framework: NestJS with TypeScript
Database: MongoDB with Mongoose ODM
Caching: Redis for performance optimization
Messaging: AMQP (RabbitMQ) for event-driven communication
Real-time: WebSocket for instant updates
Architecture: CQRS (Command Query Responsibility Segregation)
Patterns: Repository, Domain-Driven Design, Event Sourcing
Quick Start
1. API Usage
Start with the API Documentation to understand available endpoints and how to interact with the absence management system.
2. Integration
Review the Interface Documentation to understand data structures and integration points.
3. Business Logic
Explore the Use Case Documentation to understand business rules and workflows.
4. Data Layer
Check the Database Schema for persistence implementation details.
Documentation Structure
REST API reference with endpoints, authentication, and examples
Frontend developers, API consumers
TypeScript interfaces, DTOs, and contracts
Backend developers, integration teams
Business logic, workflows, and application layer
Backend developers, business analysts
Business Rules Summary
β οΈ Critical Constraints
Date Validation: End date must be after start date
Assignment Rule: Must specify either
entireBusiness: trueOR at least one memberPermission Enforcement: Users can only manage absences they have access to
Timezone Required: All absences must include timezone information
π Security Features
Multi-tenant data isolation
Role-based permission system
Access scope validation (OWN vs ANY)
Audit trail for all changes
Soft delete for data integrity
π Performance Features
Redis caching with intelligent invalidation
Optimized database indexes
Paginated query results
Efficient aggregation pipelines
Background event processing
Integration Points
Upstream Dependencies
Identity Service: User authentication and authorization
Member Service: Staff member information
Permission Service: Role and permission management
Downstream Consumers
Order Service: Booking conflict prevention
Notification Service: Absence alerts and reminders
Analytics Service: Reporting and insights
Calendar Service: Schedule integration
External Integrations
Frontend Applications: Real-time absence updates
Mobile Apps: Push notifications for absence changes
HR Systems: Compliance and reporting
Calendar Systems: External calendar synchronization
Common Use Cases
π€ Individual User Scenarios
Employee requests vacation time
Manager approves/denies absence requests
Staff member views their absence history
Employee cancels upcoming absence
π’ Business Management Scenarios
HR manager schedules business-wide holiday
Manager views team absence calendar
Administrator generates absence reports
Business owner manages location-specific closures
π System Integration Scenarios
Booking system checks for conflicts
Payroll system imports absence data
Calendar system syncs absence events
Notification system sends absence alerts
Monitoring and Maintenance
Key Metrics
API response times
Cache hit ratios
Event processing latency
Database query performance
Permission validation overhead
Health Checks
Database connectivity
Cache availability
Message queue status
WebSocket connection health
Index performance
Future Enhancements
Planned Features
Absence Approval Workflow: Multi-step approval process
Recurring Absences: Support for repeating patterns
Advanced Reporting: Analytics and insights dashboard
Mobile Optimizations: Enhanced mobile app integration
AI Predictions: Intelligent absence pattern detection
Scalability Considerations
Database sharding strategies
Read replica optimization
Cache partitioning
Event stream processing
Microservice decomposition
Getting Help
For technical questions or issues:
Check this documentation first
Review the API examples and use cases
Consult the interface definitions
Examine the database schema for data-related questions
For business rule clarifications:
Review the use case documentation
Check the business rules summary above
Consult with the product team
This documentation is maintained by the Bee O'clock development team and is updated with each release.
Last updated
Was this helpful?