package com.social.media.application.content.command;

import com.social.media.domain.content.valueobject.ContentCategoryId;
import com.social.media.domain.content.valueobject.PostId;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;

/**
 * Command to update an existing post
 */
public record UpdatePostCommand(
    @NotNull(message = "Post ID is required")
    PostId postId,
    
    @Size(max = 200, message = "Title must not exceed 200 characters")
    String title,
    
    @Size(max = 2000, message = "Content must not exceed 2000 characters")
    String content,
    
    ContentCategoryId categoryId,
    
    List<String> mediaIds,
    
    Set<String> targetSocialAccountIds,
    
    LocalDateTime scheduledFor,
    
    @Size(max = 500, message = "Tags must not exceed 500 characters")
    String tags,
    
    Boolean isPinned
) {}

