Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.spice.profitmandi.dao.model;

import com.spice.profitmandi.dao.enumuration.dtr.LeadDisposition;

import java.time.LocalDateTime;

/**
 * Payload for POST /lms/disposition — the outcome captured when a C2C call is dispositioned
 * (SOP §12). Carries the disposition + its contextual sub-fields; the endpoint decides the
 * resulting stage transition, SLA stamping, and trail entry.
 */
public class LmsDispositionRequest {

    private int leadId;
    private LeadDisposition disposition;

    /** NOT_INTERESTED sub-reason: Price / Terms / Already partnered / Category mismatch / Other. */
    private String subReason;

    /** Confirmed monthly business value (INTERESTED → QUALIFIED). Maps to Lead.potential. */
    private Double value;

    /** CALLBACK date/time. */
    private LocalDateTime callbackAt;

    /** FOLLOW_UP date/time. */
    private LocalDateTime followUpAt;

    /** FOLLOW_UP type: CALL or MEETING (a MEETING creates a visit request). */
    private String followUpType;

    /** NOT_REACHABLE retry hint (e.g. "24h" / "4h" / "tomorrow"); informational, retained in the trail. */
    private String retrySchedule;

    /** WRONG_NUMBER corrected number (optional); if valid, replaces the lead mobile. */
    private String correctedNumber;

    /** Free-text note appended to the trail. */
    private String note;

    /** Optional recording URL captured for this call. */
    private String recordingUrl;

    public int getLeadId() {
        return leadId;
    }

    public void setLeadId(int leadId) {
        this.leadId = leadId;
    }

    public LeadDisposition getDisposition() {
        return disposition;
    }

    public void setDisposition(LeadDisposition disposition) {
        this.disposition = disposition;
    }

    public String getSubReason() {
        return subReason;
    }

    public void setSubReason(String subReason) {
        this.subReason = subReason;
    }

    public Double getValue() {
        return value;
    }

    public void setValue(Double value) {
        this.value = value;
    }

    public LocalDateTime getCallbackAt() {
        return callbackAt;
    }

    public void setCallbackAt(LocalDateTime callbackAt) {
        this.callbackAt = callbackAt;
    }

    public LocalDateTime getFollowUpAt() {
        return followUpAt;
    }

    public void setFollowUpAt(LocalDateTime followUpAt) {
        this.followUpAt = followUpAt;
    }

    public String getFollowUpType() {
        return followUpType;
    }

    public void setFollowUpType(String followUpType) {
        this.followUpType = followUpType;
    }

    public String getRetrySchedule() {
        return retrySchedule;
    }

    public void setRetrySchedule(String retrySchedule) {
        this.retrySchedule = retrySchedule;
    }

    public String getCorrectedNumber() {
        return correctedNumber;
    }

    public void setCorrectedNumber(String correctedNumber) {
        this.correctedNumber = correctedNumber;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getRecordingUrl() {
        return recordingUrl;
    }

    public void setRecordingUrl(String recordingUrl) {
        this.recordingUrl = recordingUrl;
    }

    @Override
    public String toString() {
        return "LmsDispositionRequest{leadId=" + leadId + ", disposition=" + disposition
                + ", subReason='" + subReason + "', value=" + value + ", callbackAt=" + callbackAt
                + ", followUpAt=" + followUpAt + ", followUpType='" + followUpType + "', retrySchedule='"
                + retrySchedule + "', correctedNumber='" + correctedNumber + "', note='" + note + "'}";
    }
}