package com.storycove.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;

import java.time.LocalDateTime;
import java.util.UUID;

public class TagAliasDto {
    
    private UUID id;
    
    @NotBlank(message = "Alias name is required")
    @Size(max = 100, message = "Alias name must not exceed 100 characters")
    private String aliasName;
    
    private UUID canonicalTagId;
    private String canonicalTagName; // For convenience in frontend
    private Boolean createdFromMerge;
    private LocalDateTime createdAt;
    
    public TagAliasDto() {}
    
    public TagAliasDto(String aliasName, UUID canonicalTagId) {
        this.aliasName = aliasName;
        this.canonicalTagId = canonicalTagId;
    }
    
    // Getters and Setters
    public UUID getId() {
        return id;
    }
    
    public void setId(UUID id) {
        this.id = id;
    }
    
    public String getAliasName() {
        return aliasName;
    }
    
    public void setAliasName(String aliasName) {
        this.aliasName = aliasName;
    }
    
    public UUID getCanonicalTagId() {
        return canonicalTagId;
    }
    
    public void setCanonicalTagId(UUID canonicalTagId) {
        this.canonicalTagId = canonicalTagId;
    }
    
    public String getCanonicalTagName() {
        return canonicalTagName;
    }
    
    public void setCanonicalTagName(String canonicalTagName) {
        this.canonicalTagName = canonicalTagName;
    }
    
    public Boolean getCreatedFromMerge() {
        return createdFromMerge;
    }
    
    public void setCreatedFromMerge(Boolean createdFromMerge) {
        this.createdFromMerge = createdFromMerge;
    }
    
    public LocalDateTime getCreatedAt() {
        return createdAt;
    }
    
    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }
}