mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-23 18:54:24 +00:00
Fix CS and add more comments within ticket bundle
This commit is contained in:
parent
f1a5b5c49e
commit
fc61dfdf3a
@ -31,7 +31,7 @@ final readonly class GeographicalUnitStatAggregator implements AggregatorInterfa
|
||||
public function __construct(
|
||||
private GeographicalUnitLayerRepositoryInterface $geographicalUnitLayerRepository,
|
||||
private TranslatableStringHelperInterface $translatableStringHelper,
|
||||
private RollingDateConverterInterface $rollingDateConverter
|
||||
private RollingDateConverterInterface $rollingDateConverter,
|
||||
) {}
|
||||
|
||||
public function addRole(): ?string
|
||||
|
@ -68,6 +68,6 @@ interface PersonACLAwareRepositoryInterface
|
||||
public function findByPhone(
|
||||
PhoneNumber $phoneNumber,
|
||||
int $start = 0,
|
||||
int $limit = 20
|
||||
int $limit = 20,
|
||||
): array;
|
||||
}
|
||||
|
@ -24,6 +24,6 @@ final readonly class AddAddresseeCommand
|
||||
{
|
||||
public function __construct(
|
||||
#[Groups(['read'])]
|
||||
public User|UserGroup $addressee
|
||||
public User|UserGroup $addressee,
|
||||
) {}
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ final readonly class SetAddresseesCommand
|
||||
#[UserGroupDoNotExclude]
|
||||
#[GreaterThan(0)]
|
||||
#[Groups(['read'])]
|
||||
public array $addressees
|
||||
public array $addressees,
|
||||
) {}
|
||||
|
||||
public static function fromAddAddresseeCommand(AddAddresseeCommand $command, Ticket $ticket): self
|
||||
|
@ -23,6 +23,6 @@ class SetPersonsCommand
|
||||
*/
|
||||
#[GreaterThan(0)]
|
||||
#[Groups(['read'])]
|
||||
public array $persons
|
||||
public array $persons,
|
||||
) {}
|
||||
}
|
||||
|
@ -19,12 +19,12 @@ use Twig\Environment;
|
||||
class EditTicketController
|
||||
{
|
||||
public function __construct(
|
||||
private Environment $templating
|
||||
private Environment $templating,
|
||||
) {}
|
||||
|
||||
#[Route('/{_locale}/ticket/ticket/{id}/edit', name: 'chill_ticket_ticket_edit')]
|
||||
public function __invoke(
|
||||
Ticket $ticket
|
||||
Ticket $ticket,
|
||||
): Response {
|
||||
return new Response(
|
||||
$this->templating->render(
|
||||
|
@ -20,6 +20,13 @@ use Chill\MainBundle\Entity\UserGroup;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Serializer\Annotation as Serializer;
|
||||
|
||||
/**
|
||||
* Represents the history entity for addressees in the context of a ticketing system.
|
||||
*
|
||||
* Tracks information about addressees for a specific ticket, including user or group associability,
|
||||
* timestamps marking the start and end of the association, and the removal of assignments.
|
||||
* Implements mechanisms for tracking entity creation and updates.
|
||||
*/
|
||||
#[ORM\Entity()]
|
||||
#[ORM\Table(name: 'addressee_history', schema: 'chill_ticket')]
|
||||
#[Serializer\DiscriminatorMap(typeProperty: 'type', mapping: ['ticket_addressee_history' => AddresseeHistory::class])]
|
||||
|
@ -19,6 +19,11 @@ use Doctrine\ORM\Mapping as ORM;
|
||||
use Doctrine\ORM\Mapping\JoinColumn;
|
||||
use Symfony\Component\Serializer\Annotation as Serializer;
|
||||
|
||||
/**
|
||||
* Represents a comment entity within the application.
|
||||
*
|
||||
* This entity is associated with a specific ticket and includes creation and update tracking.
|
||||
*/
|
||||
#[ORM\Entity()]
|
||||
#[ORM\Table(name: 'comment', schema: 'chill_ticket')]
|
||||
#[Serializer\DiscriminatorMap(typeProperty: 'type', mapping: ['ticket_comment' => Comment::class])]
|
||||
|
@ -16,6 +16,11 @@ use Chill\PersonBundle\Entity\Person;
|
||||
use Chill\ThirdPartyBundle\Entity\ThirdParty;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* History of input for a single ticket.
|
||||
*
|
||||
* An input is someone who triggered the opening of the ticket. Typically, it's the "caller" of a call.
|
||||
*/
|
||||
#[ORM\Entity()]
|
||||
#[ORM\Table(name: 'input_history', schema: 'chill_ticket')]
|
||||
class InputHistory
|
||||
|
@ -16,6 +16,12 @@ use Chill\MainBundle\Doctrine\Model\TrackCreationTrait;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Serializer\Annotation as Serializer;
|
||||
|
||||
/**
|
||||
* Represents the history of a motive associated with a ticket.
|
||||
*
|
||||
* This entity is used to track the changes in a ticket's motive over time.
|
||||
* Implements the TrackCreationInterface for tracking entity lifecycle creation.
|
||||
*/
|
||||
#[ORM\Entity]
|
||||
#[ORM\Table(name: 'motives_history', schema: 'chill_ticket')]
|
||||
#[Serializer\DiscriminatorMap(typeProperty: 'type', mapping: ['ticket_motive_history' => MotiveHistory::class])]
|
||||
@ -43,7 +49,7 @@ class MotiveHistory implements TrackCreationInterface
|
||||
private Ticket $ticket,
|
||||
#[ORM\Column(type: \Doctrine\DBAL\Types\Types::DATETIME_IMMUTABLE, nullable: false)]
|
||||
#[Serializer\Groups(['read'])]
|
||||
private \DateTimeImmutable $startDate = new \DateTimeImmutable('now')
|
||||
private \DateTimeImmutable $startDate = new \DateTimeImmutable('now'),
|
||||
) {
|
||||
$ticket->addMotiveHistory($this);
|
||||
}
|
||||
|
@ -18,6 +18,10 @@ use Chill\PersonBundle\Entity\Person;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Serializer\Annotation as Serializer;
|
||||
|
||||
/**
|
||||
* Represents a history entity associated with a person and a ticket.
|
||||
* Tracks the start date, end date, and the user who removed the entry (if applicable).
|
||||
*/
|
||||
#[ORM\Entity]
|
||||
#[ORM\Table(name: 'person_history', schema: 'chill_ticket')]
|
||||
#[Serializer\DiscriminatorMap(typeProperty: 'type', mapping: ['ticket_person_history' => PersonHistory::class])]
|
||||
|
@ -24,6 +24,20 @@ use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\Common\Collections\ReadableCollection;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* This entity represents a `Ticket` in the application and provides functionality for managing its associated
|
||||
* histories, comments, and current data such as addressees, inputs, and motives.
|
||||
*
|
||||
* Most of the associated data are handle through "histories", with a many-to-one relationship (a ticket may have multiple)
|
||||
* history. The history contains the associated data (see below) and start dates and end dates.
|
||||
*
|
||||
* There are histories for:
|
||||
*
|
||||
* - association between the ticket and persons: @see{PersonHistory};
|
||||
* - association between the ticket and motive: @see{MotiveHistory};
|
||||
* - association between the ticket and addresses: @see{AddresseeHistory};
|
||||
* - association between the ticket and input: @see{InputHistory};
|
||||
*/
|
||||
#[ORM\Entity]
|
||||
#[ORM\Table(name: 'ticket', schema: 'chill_ticket')]
|
||||
class Ticket implements TrackCreationInterface, TrackUpdateInterface
|
||||
|
@ -42,7 +42,7 @@ final class SetAddresseesCommandDenormalizer implements DenormalizerInterface, D
|
||||
$addresses[] = match ($address['type'] ?? '') {
|
||||
'user_group' => $this->denormalizer->denormalize($address, UserGroup::class, $format, $context),
|
||||
'user' => $this->denormalizer->denormalize($address, User::class, $format, $context),
|
||||
default => throw new UnexpectedValueException('the type is not set or not supported')
|
||||
default => throw new UnexpectedValueException('the type is not set or not supported'),
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user