001package com.studentgui.apphelpers.dto;
002
003/**
004 * Typed payload for Keyboarding page.
005 */
006public class KeyboardingPayload implements SessionPayload {
007    /** Database session id. */
008    public int sessionId;
009    /** Program or curriculum name. */
010    public String program;
011    /** Topic or lesson name. */
012    public String topic;
013    /** Speed in WPM. */
014    public int speed;
015    /** Accuracy percentage. */
016    public int accuracy;
017
018    /** No-arg constructor for Jackson. */
019    public KeyboardingPayload() {}
020
021    /**
022     * Create keyboarding payload.
023     *
024    * @param sessionIdParam DB session id
025    * @param programParam program name
026    * @param topicParam topic name
027    * @param speedParam words per minute
028    * @param accuracyParam percent accuracy
029     */
030    public KeyboardingPayload(final int sessionIdParam, final String programParam, final String topicParam, final int speedParam, final int accuracyParam) {
031        this.sessionId = sessionIdParam;
032        this.program = programParam;
033        this.topic = topicParam;
034        this.speed = speedParam;
035        this.accuracy = accuracyParam;
036    }
037
038    @Override
039    /**
040     * Return the database session id associated with this keyboarding payload.
041     *
042     * @return numeric session id for the recorded keyboarding session
043     */
044
045    public int getSessionId() { return this.sessionId; }
046}