package com.storycove.dto;

import java.util.List;
import java.util.UUID;

public class EPUBImportResponse {
    
    private boolean success;
    private String message;
    private UUID storyId;
    private String storyTitle;
    private Integer totalChapters;
    private Integer wordCount;
    private ReadingPositionDto readingPosition;
    private List<String> warnings;
    private List<String> errors;
    
    public EPUBImportResponse() {}
    
    public EPUBImportResponse(boolean success, String message) {
        this.success = success;
        this.message = message;
    }
    
    public static EPUBImportResponse success(UUID storyId, String storyTitle) {
        EPUBImportResponse response = new EPUBImportResponse(true, "EPUB imported successfully");
        response.setStoryId(storyId);
        response.setStoryTitle(storyTitle);
        return response;
    }
    
    public static EPUBImportResponse error(String message) {
        return new EPUBImportResponse(false, message);
    }
    
    public boolean isSuccess() {
        return success;
    }
    
    public void setSuccess(boolean success) {
        this.success = success;
    }
    
    public String getMessage() {
        return message;
    }
    
    public void setMessage(String message) {
        this.message = message;
    }
    
    public UUID getStoryId() {
        return storyId;
    }
    
    public void setStoryId(UUID storyId) {
        this.storyId = storyId;
    }
    
    public String getStoryTitle() {
        return storyTitle;
    }
    
    public void setStoryTitle(String storyTitle) {
        this.storyTitle = storyTitle;
    }
    
    public Integer getTotalChapters() {
        return totalChapters;
    }
    
    public void setTotalChapters(Integer totalChapters) {
        this.totalChapters = totalChapters;
    }
    
    public Integer getWordCount() {
        return wordCount;
    }
    
    public void setWordCount(Integer wordCount) {
        this.wordCount = wordCount;
    }
    
    public ReadingPositionDto getReadingPosition() {
        return readingPosition;
    }
    
    public void setReadingPosition(ReadingPositionDto readingPosition) {
        this.readingPosition = readingPosition;
    }
    
    public List<String> getWarnings() {
        return warnings;
    }
    
    public void setWarnings(List<String> warnings) {
        this.warnings = warnings;
    }
    
    public List<String> getErrors() {
        return errors;
    }
    
    public void setErrors(List<String> errors) {
        this.errors = errors;
    }
}