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 privacy notice content and metadata.
018 * Contains the notice content, version, active status, and expiry configuration.
019 */
020public class PrivacyNoticeJson implements IModelJson {
021        @JsonProperty("content")
022        private String myContent;
023
024        @JsonProperty("version")
025        private String myVersion;
026
027        @JsonProperty("isActive")
028        private boolean myIsActive;
029
030        @JsonProperty("expiryDays")
031        private int myExpiryDays;
032
033        public PrivacyNoticeJson() {
034                // Default constructor for JSON deserialization
035        }
036
037        /**
038         * Constructor with all privacy notice details.
039         *
040         * @param theContent the privacy notice content/text
041         * @param theVersion the privacy notice version
042         * @param theIsActive whether the privacy notice is currently active
043         * @param theExpiryDays the number of days before acceptance expires
044         */
045        public PrivacyNoticeJson(String theContent, String theVersion, boolean theIsActive, int theExpiryDays) {
046                myContent = theContent;
047                myVersion = theVersion;
048                myIsActive = theIsActive;
049                myExpiryDays = theExpiryDays;
050        }
051
052        /**
053         * Get the privacy notice content.
054         *
055         * @return the privacy notice text content
056         */
057        public String getContent() {
058                return myContent;
059        }
060
061        /**
062         * Set the privacy notice content.
063         *
064         * @param theContent the privacy notice content to set
065         */
066        public void setContent(String theContent) {
067                myContent = theContent;
068        }
069
070        /**
071         * Get the privacy notice version.
072         *
073         * @return the privacy notice version string
074         */
075        public String getVersion() {
076                return myVersion;
077        }
078
079        /**
080         * Set the privacy notice version.
081         *
082         * @param theVersion the privacy notice version to set
083         */
084        public void setVersion(String theVersion) {
085                myVersion = theVersion;
086        }
087
088        /**
089         * Get whether the privacy notice is active.
090         *
091         * @return true if the privacy notice is currently active
092         */
093        public boolean getIsActive() {
094                return myIsActive;
095        }
096
097        /**
098         * Set whether the privacy notice is active.
099         *
100         * @param theIsActive the active status to set
101         */
102        public void setIsActive(boolean theIsActive) {
103                myIsActive = theIsActive;
104        }
105
106        /**
107         * Get the expiry days configuration.
108         *
109         * @return the number of days before acceptance expires
110         */
111        public int getExpiryDays() {
112                return myExpiryDays;
113        }
114
115        /**
116         * Set the expiry days configuration.
117         *
118         * @param theExpiryDays the number of days before acceptance expires
119         */
120        public void setExpiryDays(int theExpiryDays) {
121                myExpiryDays = theExpiryDays;
122        }
123}