package com.emonster.taroaichat.service.dto;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * DTO for starting a tarot reading.
 */
public class ChatStartReadingDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @NotNull
    private Long sessionId;

    @NotNull
    @Min(1)
    @Max(10)
    private Integer cardCount = 3;

    private String readingType;
    
    private List<SelectedCardData> selectedCards;

    public Long getSessionId() {
        return sessionId;
    }

    public void setSessionId(Long sessionId) {
        this.sessionId = sessionId;
    }

    public Integer getCardCount() {
        return cardCount;
    }

    public void setCardCount(Integer cardCount) {
        this.cardCount = cardCount;
    }

    public String getReadingType() {
        return readingType;
    }

    public void setReadingType(String readingType) {
        this.readingType = readingType;
    }

    public List<SelectedCardData> getSelectedCards() {
        return selectedCards;
    }

    public void setSelectedCards(List<SelectedCardData> selectedCards) {
        this.selectedCards = selectedCards;
    }

    /**
     * Inner class for selected card data.
     */
    public static class SelectedCardData implements Serializable {
        private TarotCardDTO card;
        private String position;
        private Boolean isReversed;

        public TarotCardDTO getCard() {
            return card;
        }

        public void setCard(TarotCardDTO card) {
            this.card = card;
        }

        public String getPosition() {
            return position;
        }

        public void setPosition(String position) {
            this.position = position;
        }

        public Boolean getIsReversed() {
            return isReversed;
        }

        public void setIsReversed(Boolean isReversed) {
            this.isReversed = isReversed;
        }
    }
}