package com.dji.sdk.cloudapi.psdk;

/**
 * Speaker audio play start progress
 * 
 * @author sean
 * @version 1.7
 * @date 2023/10/16
 */
public class SpeakerAudioPlayStartProgress {

    /**
     * Result code
     */
    private Integer result;

    /**
     * Output data
     */
    private Output output;

    public SpeakerAudioPlayStartProgress() {
    }

    @Override
    public String toString() {
        return "SpeakerAudioPlayStartProgress{" +
                "result=" + result +
                ", output=" + output +
                '}';
    }

    public Integer getResult() {
        return result;
    }

    public SpeakerAudioPlayStartProgress setResult(Integer result) {
        this.result = result;
        return this;
    }

    public Output getOutput() {
        return output;
    }

    public SpeakerAudioPlayStartProgress setOutput(Output output) {
        this.output = output;
        return this;
    }

    public static class Output {
        /**
         * PSDK payload device index
         */
        private Integer psdkIndex;

        /**
         * Current status (in_progress, ok)
         */
        private String status;

        /**
         * File MD5 checksum
         */
        private String md5;

        /**
         * Progress information
         */
        private Progress progress;

        public Output() {
        }

        @Override
        public String toString() {
            return "Output{" +
                    "psdkIndex=" + psdkIndex +
                    ", status='" + status + '\'' +
                    ", md5='" + md5 + '\'' +
                    ", progress=" + progress +
                    '}';
        }

        public Integer getPsdkIndex() {
            return psdkIndex;
        }

        public Output setPsdkIndex(Integer psdkIndex) {
            this.psdkIndex = psdkIndex;
            return this;
        }

        public String getStatus() {
            return status;
        }

        public Output setStatus(String status) {
            this.status = status;
            return this;
        }

        public String getMd5() {
            return md5;
        }

        public Output setMd5(String md5) {
            this.md5 = md5;
            return this;
        }

        public Progress getProgress() {
            return progress;
        }

        public Output setProgress(Progress progress) {
            this.progress = progress;
            return this;
        }
    }

    public static class Progress {
        /**
         * Progress percentage (0-100)
         */
        private Integer percent;

        /**
         * Current step (change_work_mode, download, encoding, upload, play)
         */
        private String stepKey;

        public Progress() {
        }

        @Override
        public String toString() {
            return "Progress{" +
                    "percent=" + percent +
                    ", stepKey='" + stepKey + '\'' +
                    '}';
        }

        public Integer getPercent() {
            return percent;
        }

        public Progress setPercent(Integer percent) {
            this.percent = percent;
            return this;
        }

        public String getStepKey() {
            return stepKey;
        }

        public Progress setStepKey(String stepKey) {
            this.stepKey = stepKey;
            return this;
        }
    }
}
