001/*-
002 * #%L
003 * Smile CDR - CDR
004 * %%
005 * Copyright (C) 2016 - 2026 Smile CDR, Inc.
006 * %%
007 * All rights reserved.
008 * #L%
009 */
010package ca.cdr.api.model.json;
011
012// Created by Claude Opus 4.1
013import ca.uhn.fhir.model.api.IModelJson;
014import com.fasterxml.jackson.annotation.JsonProperty;
015
016/**
017 * Response model for user's privacy notice acceptance status.
018 * Contains information about whether acceptance is required and version details.
019 */
020public class PrivacyNoticeStatusJson implements IModelJson {
021        @JsonProperty("isRequired")
022        private boolean myIsRequired;
023
024        @JsonProperty("currentVersion")
025        private String myCurrentVersion;
026
027        @JsonProperty("acceptedVersion")
028        private String myAcceptedVersion;
029
030        @JsonProperty("acceptedDate")
031        private String myAcceptedDate;
032
033        @JsonProperty("expiryDate")
034        private String myExpiryDate;
035
036        public PrivacyNoticeStatusJson() {
037                // Default constructor for JSON deserialization
038        }
039
040        /**
041         * Constructor with required status and current version.
042         *
043         * @param theIsRequired whether privacy notice acceptance is required
044         * @param theCurrentVersion the current privacy notice version
045         */
046        public PrivacyNoticeStatusJson(boolean theIsRequired, String theCurrentVersion) {
047                myIsRequired = theIsRequired;
048                myCurrentVersion = theCurrentVersion;
049        }
050
051        /**
052         * Get whether privacy notice acceptance is required.
053         *
054         * @return true if the user must accept the privacy notice
055         */
056        public boolean getIsRequired() {
057                return myIsRequired;
058        }
059
060        /**
061         * Set whether privacy notice acceptance is required.
062         *
063         * @param theIsRequired the required status to set
064         */
065        public void setIsRequired(boolean theIsRequired) {
066                myIsRequired = theIsRequired;
067        }
068
069        /**
070         * Get the current privacy notice version.
071         *
072         * @return the current version string
073         */
074        public String getCurrentVersion() {
075                return myCurrentVersion;
076        }
077
078        /**
079         * Set the current privacy notice version.
080         *
081         * @param theCurrentVersion the current version to set
082         */
083        public void setCurrentVersion(String theCurrentVersion) {
084                myCurrentVersion = theCurrentVersion;
085        }
086
087        /**
088         * Get the user's previously accepted version.
089         *
090         * @return the accepted version string, or null if none
091         */
092        public String getAcceptedVersion() {
093                return myAcceptedVersion;
094        }
095
096        /**
097         * Set the user's previously accepted version.
098         *
099         * @param theAcceptedVersion the accepted version to set
100         */
101        public void setAcceptedVersion(String theAcceptedVersion) {
102                myAcceptedVersion = theAcceptedVersion;
103        }
104
105        /**
106         * Get the date when user accepted the privacy notice.
107         *
108         * @return the acceptance date (ISO timestamp), or null if none
109         */
110        public String getAcceptedDate() {
111                return myAcceptedDate;
112        }
113
114        /**
115         * Set the date when user accepted the privacy notice.
116         *
117         * @param theAcceptedDate the acceptance date to set (ISO timestamp)
118         */
119        public void setAcceptedDate(String theAcceptedDate) {
120                myAcceptedDate = theAcceptedDate;
121        }
122
123        /**
124         * Get the expiry date for the user's acceptance.
125         *
126         * @return the expiry date (ISO timestamp), or null if none
127         */
128        public String getExpiryDate() {
129                return myExpiryDate;
130        }
131
132        /**
133         * Set the expiry date for the user's acceptance.
134         *
135         * @param theExpiryDate the expiry date to set (ISO timestamp)
136         */
137        public void setExpiryDate(String theExpiryDate) {
138                myExpiryDate = theExpiryDate;
139        }
140}