/* Options:
Date: 2025-04-16 11:55:34
Version: 8.23
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://testapi.bokamera.se

//Package: 
//GlobalNamespace: dtos
//AddPropertyAccessors: True
//SettersReturnThis: True
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddDescriptionAsComments: True
//AddImplicitVersion: 
IncludeTypes: TestSendNewsLetter.*
//ExcludeTypes: 
//TreatTypesAsStrings: 
//DefaultImports: java.math.*,java.util.*,net.servicestack.client.*
*/

import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    @Route(Path="/newsletter/templates/test", Verbs="POST")
    @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
    @ValidateRequest(Validator="IsAuthenticated")
    public static class TestSendNewsLetter implements IReturn<NewsletterLogQueryResponse>, ICompany
    {
        /**
        * The company id, if empty will use the company id for the user you are logged in with.
        */
        @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
        public UUID CompanyId = null;

        /**
        * The email recepient to receive the newsletter. For templates with send method SMS you need to enter a valid mobile phone number and send method Email a valid Email must be provided.
        */
        @ApiMember(Description="The email recepient to receive the newsletter. For templates with send method SMS you need to enter a valid mobile phone number and send method Email a valid Email must be provided.", IsRequired=true)
        public String Receiver = null;

        /**
        * The newsletter template id.
        */
        @ApiMember(Description="The newsletter template id.", IsRequired=true)
        public Integer Id = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public TestSendNewsLetter setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public String getReceiver() { return Receiver; }
        public TestSendNewsLetter setReceiver(String value) { this.Receiver = value; return this; }
        public Integer getId() { return Id; }
        public TestSendNewsLetter setId(Integer value) { this.Id = value; return this; }
        private static Object responseType = NewsletterLogQueryResponse.class;
        public Object getResponseType() { return responseType; }
    }

    public static class NewsletterLogQueryResponse
    {
        /**
        * The message log id
        */
        @ApiMember(Description="The message log id")
        public Integer Id = null;

        /**
        * The message receiver. Either a email or a mobile phone number.
        */
        @ApiMember(Description="The message receiver. Either a email or a mobile phone number.")
        public String Receiver = null;

        /**
        * Nessage Title.
        */
        @ApiMember(Description="Nessage Title.")
        public String MessageTitle = null;

        /**
        * Nessage Body.
        */
        @ApiMember(Description="Nessage Body.")
        public String MessageBody = null;

        /**
        * When message was created.
        */
        @ApiMember(Description="When message was created.")
        public Date Created = null;

        /**
        * When the message will be sent.
        */
        @ApiMember(Description="When the message will be sent.")
        public Date ToSendDate = null;

        /**
        * When the message was sent.
        */
        @ApiMember(Description="When the message was sent.")
        public Date SentDate = null;

        /**
        * If Message is sent
        */
        @ApiMember(Description="If Message is sent")
        public Boolean Sent = null;

        /**
        * Number of retries to send the message
        */
        @ApiMember(Description="Number of retries to send the message")
        public Integer MessageRetries = null;

        /**
        * Send Method. 1 = Email, 2 = SMS
        */
        @ApiMember(Description="Send Method. 1 = Email, 2 = SMS")
        public Integer SendMethodId = null;
        
        public Integer getId() { return Id; }
        public NewsletterLogQueryResponse setId(Integer value) { this.Id = value; return this; }
        public String getReceiver() { return Receiver; }
        public NewsletterLogQueryResponse setReceiver(String value) { this.Receiver = value; return this; }
        public String getMessageTitle() { return MessageTitle; }
        public NewsletterLogQueryResponse setMessageTitle(String value) { this.MessageTitle = value; return this; }
        public String getMessageBody() { return MessageBody; }
        public NewsletterLogQueryResponse setMessageBody(String value) { this.MessageBody = value; return this; }
        public Date getCreated() { return Created; }
        public NewsletterLogQueryResponse setCreated(Date value) { this.Created = value; return this; }
        public Date getToSendDate() { return ToSendDate; }
        public NewsletterLogQueryResponse setToSendDate(Date value) { this.ToSendDate = value; return this; }
        public Date getSentDate() { return SentDate; }
        public NewsletterLogQueryResponse setSentDate(Date value) { this.SentDate = value; return this; }
        public Boolean isSent() { return Sent; }
        public NewsletterLogQueryResponse setSent(Boolean value) { this.Sent = value; return this; }
        public Integer getMessageRetries() { return MessageRetries; }
        public NewsletterLogQueryResponse setMessageRetries(Integer value) { this.MessageRetries = value; return this; }
        public Integer getSendMethodId() { return SendMethodId; }
        public NewsletterLogQueryResponse setSendMethodId(Integer value) { this.SendMethodId = value; return this; }
    }

    public static interface ICompany
    {
        public UUID CompanyId = null;
    }

}