AI-HR
    AI-HR
    • Authentication Controller
      • POST /api/v1/auth/login
      • POST /api/v1/auth/register
      • POST /api/v1/auth/hr-register
    • Job controller
      • List jobs with pagination and filtering
      • Create new job (HR only)
      • Get job details
      • Update job (HR only)
      • Close job (HR only)
      • Re-open job (HR only)
      • Delete job (HR only)
    • Application - application controller
      • submitApplication
      • getApplications
      • getApplicationById
      • updateApplication
      • Get messages for application - only accessible by HR
      • createOrGetChatSession
      • completeChatSession
    • Application - chat controller
      • sendMessage
      • getMessages
    • Application - Resume File Controller
      • Download resume file by application ID
      • Get resume file information by application ID
    • Application - assessment controller
      • Trigger resume scoring for an application
      • Trigger interview scoring for an application
    • Internal application info endpoint (cluster-internal, no auth).
      • getApplicationWithAssessment
      • createOrGetChatSession
    • Internal user info endpoint (cluster-internal, no auth).
      • getUser
    • Internal job info endpoint (cluster-internal, no auth).
      • GET /internal/api/v1/jobs/{jobId} – fetch job details for internal services.
    • Test controller for developers
      • Test endpoint to extract text from uploaded document
    • Schemas
      • Handler
      • MapString
      • MediaType
      • DataWithMediaType
      • CreateJobRequest
      • Throwable
      • StackTraceElement
      • Runnable
      • DefaultCallback
      • ErrorCallback
      • SseEmitter
      • UUID
      • SendChatMessageRequest
      • ChatMessageDto
      • PageInfoDto
      • Sort
      • PagedResponseDtoChatMessageDto
      • Pageable
      • ResponseEntityApiResponsePagedResponseDtoChatMessageDto
      • PageChatMessageDto
      • ResponseEntityApiResponsePageChatMessageDto
      • InputStream
      • File
      • URI
      • ResponseEntityResource
      • FileInfoDto
      • ResponseEntityApiResponseFileInfoDto
      • Assessment
      • Application
      • ChatSession
      • ChatMessage
      • ResponseEntityApiResponseAssessment
      • UserDto
      • JobDto
      • AssessmentDto
      • ApplicationDto
      • PagedResponseDtoApplicationDto
      • ResponseEntityApiResponseApplicationDto
      • ResponseEntityApiResponsePagedResponseDtoApplicationDto
      • PageApplicationDto
      • PagedResponseDtoChatMessage
      • ResponseEntityApiResponsePageApplicationDto
      • ResponseEntityApiResponsePagedResponseDtoChatMessage
      • UpdateApplicationRequest
      • PageChatMessage
      • ResponseEntityApiResponsePageChatMessage
      • ChatSessionDto
      • ChatInitializationDto
      • ResponseEntityApiResponseChatInitializationDto
      • Null
      • ResponseEntityApiResponseNull
      • ResponseEntityApiResponseObject
      • ResponseEntityApiResponseChatSessionDto
      • UserDto
      • AuthResponse
      • FieldErrorItem
      • ResponseEntityApiResponseAuthResponse
      • LoginRequest
      • RegisterRequest
      • ResponseEntityApiResponseUserDto
      • key
      • PageInfoDto
      • MapObject
      • PageJobDto
      • PagedResponseDtoJobDto
      • ResponseEntityApiResponseMapObject
      • ResponseEntityApiResponsePageJobDto
      • ResponseEntityApiResponsePagedResponseDtoJobDto
      • UserDto
      • JobDto
      • ResponseEntityApiResponseJobDto
      • UpdateJobRequest

    ChatSession

    ChatSession entity mapping to chat_sessions table

    Database schema: CREATE TABLE chat_sessions ( session_id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), application_id UUID NOT NULL UNIQUE, status chat_status DEFAULT 'ACTIVE', message_count INTEGER DEFAULT 0, started_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, completed_at TIMESTAMP );

    {
        "sessionId": "string",
        "application": {
            "applicationId": "string",
            "submittedAt": "string",
            "status": "ApplicationStatus.SUBMITTED",
            "resumeText": "string",
            "resumeFilePath": "string",
            "updatedAt": "string",
            "candidateId": "string",
            "jobId": "string",
            "hrDecision": "SHORTLISTED",
            "hrComments": "string",
            "assessment": {
                "assessmentId": "string",
                "application": {},
                "resumeScore": 0,
                "interviewScore": 0,
                "resumeComment": "string",
                "interviewComment": "string",
                "recommendation": "RECOMMEND",
                "createdAt": "string",
                "updatedAt": "string"
            },
            "chatSession": {
                "sessionId": "string",
                "messages": "new ArrayList<>()",
                "status": "ChatStatus.ACTIVE",
                "startedAt": "string",
                "completedAt": "string",
                "messageCount": 0
            }
        },
        "messages": "new ArrayList<>()",
        "status": "ChatStatus.ACTIVE",
        "startedAt": "string",
        "completedAt": "string",
        "messageCount": 0
    }
    Built with