<?php

declare(strict_types=1);

namespace App\Dto\Input;

use ApiPlatform\Metadata\ApiProperty;
use App\Dto\Output\ClientOutput;
use App\Dto\Output\PartitionOutput;
use Symfony\Component\Serializer\Annotation\Groups;

class UpdateGitImageInput
{
    #[Groups(['git-repository:write'])]
    #[ApiProperty(description: 'The client of the image')]
    public ?ClientOutput $client = null;

    #[Groups(['git-repository:write'])]
    #[ApiProperty(description: 'The client of the image')]
    public ?PartitionOutput $partition = null;

    #[Groups(['git-repository:write'])]
    #[ApiProperty(description: 'The name of the Git repository to use for this image', example: "mi-repositorio")]
    public ?string $gitRepository = null;

    #[Groups(['git-repository:write'])]
    #[ApiProperty(description: 'The name of the Git branch to use for this image', example: "main")]
    public ?string $originalBranch = null;

    #[Groups(['git-repository:write'])]
    #[ApiProperty(description: 'The name of the Git branch to use for this image', example: "main")]
    public ?string $destinationBranch = null;

    #[Groups(['git-repository:write'])]
    #[ApiProperty(description: 'Whether to push the image to the Git repository', example: false)]
    public ?bool $options = null;

    #[Groups(['git-repository:write'])]
    #[ApiProperty(description: 'Whether to queue the update for later', example: false)]
    public bool $queue = false;
} 