Browse Source

Merge branch 'develop' of https://forge.laclic.fr/Laclic/SovBundle into develop

develop
Fabien Normand 3 years ago
parent
commit
bd7aca62a7
64 changed files with 1956 additions and 72 deletions
  1. +13
    -13
      Definition/SiteSettingDefinition.php
  2. +1
    -1
      Definition/SiteSettingDefinitionInterface.php
  3. +9
    -1
      Doctrine/Extension/BlameableInterface.php
  4. +2
    -0
      Doctrine/Extension/DevAliasInterface.php
  5. +10
    -0
      Doctrine/Extension/OpenGraphInterface.php
  6. +2
    -2
      Doctrine/Extension/OpenGraphTrait.php
  7. +8
    -0
      Doctrine/Extension/SeoInterface.php
  8. +3
    -0
      Doctrine/Extension/SluggableInterface.php
  9. +5
    -0
      Doctrine/Extension/SortableInterface.php
  10. +4
    -0
      Doctrine/Extension/StatusInterface.php
  11. +6
    -0
      Doctrine/Extension/TimestampableInterface.php
  12. +5
    -1
      Doctrine/Extension/TranslatableInterface.php
  13. +7
    -1
      Factory/Reminder/ReminderFactoryInterface.php
  14. +11
    -1
      Factory/Setting/SiteSettingFactoryInterface.php
  15. +3
    -1
      Factory/Site/NewsFactoryInterface.php
  16. +3
    -1
      Factory/Site/PageFactoryInterface.php
  17. +3
    -1
      Factory/Site/SiteFactoryInterface.php
  18. +3
    -1
      Factory/Ticket/TicketFactoryInterface.php
  19. +4
    -1
      Factory/Ticket/TicketMessageFactoryInterface.php
  20. +3
    -1
      Factory/User/GroupUserFactoryInterface.php
  21. +3
    -1
      Factory/User/UserFactoryInterface.php
  22. +48
    -2
      Model/File/FileInterface.php
  23. +77
    -1
      Model/Newsletter/NewsletterInterface.php
  24. +61
    -1
      Model/Reminder/ReminderInterface.php
  25. +17
    -0
      Model/Setting/SettingInterface.php
  26. +22
    -0
      Model/Setting/SiteSettingInterface.php
  27. +92
    -2
      Model/Site/NewsInterface.php
  28. +64
    -1
      Model/Site/PageInterface.php
  29. +15
    -2
      Model/Site/SiteInterface.php
  30. +68
    -1
      Model/Ticket/TicketInterface.php
  31. +42
    -1
      Model/Ticket/TicketMessageInterface.php
  32. +72
    -1
      Model/User/GroupUserInterface.php
  33. +101
    -1
      Model/User/UserInterface.php
  34. +2
    -1
      Model/User/UserModel.php
  35. +142
    -1
      Repository/AbstractRepositoryInterface.php
  36. +50
    -0
      Repository/File/FileRepositoryQueryInterface.php
  37. +1
    -2
      Repository/File/FileStore.php
  38. +30
    -0
      Repository/File/FileStoreInterface.php
  39. +51
    -0
      Repository/Newsletter/NewsletterRepositoryQueryInterface.php
  40. +1
    -2
      Repository/Newsletter/NewsletterStore.php
  41. +30
    -0
      Repository/Newsletter/NewsletterStoreInterface.php
  42. +76
    -1
      Repository/Reminder/ReminderRepositoryQueryInterface.php
  43. +42
    -1
      Repository/Reminder/ReminderStoreInterface.php
  44. +24
    -13
      Repository/RepositoryQueryInterface.php
  45. +51
    -0
      Repository/Setting/SiteSettingRepositoryQueryInterface.php
  46. +1
    -2
      Repository/Setting/SiteSettingStore.php
  47. +30
    -0
      Repository/Setting/SiteSettingStoreInterface.php
  48. +51
    -0
      Repository/Site/NewsRepositoryQueryInterface.php
  49. +32
    -0
      Repository/Site/NewsStoreInterface.php
  50. +51
    -0
      Repository/Site/PageRepositoryQueryInterface.php
  51. +30
    -0
      Repository/Site/PageStoreInterface.php
  52. +51
    -0
      Repository/Site/SiteRepositoryQueryInterface.php
  53. +1
    -2
      Repository/Site/SiteStore.php
  54. +32
    -0
      Repository/Site/SiteStoreInterface.php
  55. +12
    -6
      Repository/StoreInterface.php
  56. +54
    -0
      Repository/Ticket/TicketMessageRepositoryQueryInterface.php
  57. +1
    -1
      Repository/Ticket/TicketMessageStore.php
  58. +33
    -0
      Repository/Ticket/TicketMessageStoreInterface.php
  59. +68
    -0
      Repository/Ticket/TicketRepositoryQueryInterface.php
  60. +39
    -0
      Repository/Ticket/TicketStoreInterface.php
  61. +52
    -0
      Repository/User/GroupUserRepositoryQueryInterface.php
  62. +30
    -0
      Repository/User/GroupUserStoreInterface.php
  63. +62
    -0
      Repository/User/UserRepositoryQueryInterface.php
  64. +39
    -0
      Repository/User/UserStoreInterface.php

+ 13
- 13
Definition/SiteSettingDefinition.php View File

@@ -19,28 +19,28 @@ class SiteSettingDefinition extends AbstractSettingDefinition implements SiteSet
{
// général
$this->addSettingSelect(
[
'category' => self::CATEGORY_GENERAL,
'name' => self::SETTING_MAINTENANCE,
'choices' => [
'Non' => 0,
'Oui' => 1,
]
[
'category' => self::CATEGORY_GENERAL,
'name' => self::SETTING_MAINTENANCE,
'choices' => [
'Non' => 0,
'Oui' => 1,
]
]
);

$this->addSettingText(
[
'category' => self::CATEGORY_GENERAL,
'name' => self::SETTING_MAINTENANCE_IP_AUTHORIZED,
]
[
'category' => self::CATEGORY_GENERAL,
'name' => self::SETTING_MAINTENANCE_IP_AUTHORIZED,
]
);
}

public function getCategories()
public function getCategories(): array
{
return [
self::CATEGORY_GENERAL,
self::CATEGORY_GENERAL,
];
}


+ 1
- 1
Definition/SiteSettingDefinitionInterface.php View File

@@ -4,5 +4,5 @@ namespace Lc\SovBundle\Definition;

interface SiteSettingDefinitionInterface
{
public function getCategories(): array;
}

+ 9
- 1
Doctrine/Extension/BlameableInterface.php View File

@@ -3,8 +3,16 @@
namespace Lc\SovBundle\Doctrine\Extension;


use Lc\SovBundle\Model\User\UserInterface;

interface BlameableInterface
{

public function getCreatedBy(): ?UserInterface;

public function setCreatedBy(?UserInterface $createdBy): BlameableInterface;

public function getUpdatedBy(): ?UserInterface;

public function setUpdatedBy(?UserInterface $updatedBy): BlameableInterface;
}

+ 2
- 0
Doctrine/Extension/DevAliasInterface.php View File

@@ -4,5 +4,7 @@ namespace Lc\SovBundle\Doctrine\Extension;

interface DevAliasInterface
{
public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias): DevAliasInterface;
}

+ 10
- 0
Doctrine/Extension/OpenGraphInterface.php View File

@@ -2,9 +2,19 @@

namespace Lc\SovBundle\Doctrine\Extension;

use Lc\SovBundle\Model\File\FileInterface;

interface OpenGraphInterface
{
public function getOpenGraphTitle(): ?string;

public function setOpenGraphTitle(string $openGraphTitle): OpenGraphInterface;

public function getOpenGraphDescription(): ?string;

public function setOpenGraphDescription(?string $openGraphDescription): OpenGraphInterface;

public function getOpenGraphImage(): ?FileInterface;

public function setOpenGraphImage(?FileInterface $openGraphImage);
}

+ 2
- 2
Doctrine/Extension/OpenGraphTrait.php View File

@@ -48,12 +48,12 @@ trait OpenGraphTrait
}


public function getOpenGraphImage(): ?FileModel
public function getOpenGraphImage(): ?FileInterface
{
return $this->openGraphImage;
}

public function setOpenGraphImage(?FileModel $openGraphImage): self
public function setOpenGraphImage(?FileInterface $openGraphImage): self
{
$this->openGraphImage = $openGraphImage;


+ 8
- 0
Doctrine/Extension/SeoInterface.php View File

@@ -4,7 +4,15 @@ namespace Lc\SovBundle\Doctrine\Extension;

interface SeoInterface
{
public function getMetaTitle(): ?string;

public function setMetaTitle(?string $metaTitle): SeoInterface;

public function getMetaDescription(): ?string;

public function setMetaDescription(?string $metaDescription): SeoInterface;

public function getOldUrls(): ?array;

public function setOldUrls($oldUrls): SeoInterface;
}

+ 3
- 0
Doctrine/Extension/SluggableInterface.php View File

@@ -5,4 +5,7 @@ namespace Lc\SovBundle\Doctrine\Extension;
interface SluggableInterface
{

public function getSlug(): ?string;

public function setSlug(?string $slug): SluggableInterface;
}

+ 5
- 0
Doctrine/Extension/SortableInterface.php View File

@@ -5,4 +5,9 @@ namespace Lc\SovBundle\Doctrine\Extension;
interface SortableInterface
{

public function getPosition(): float;

public function setPosition(float $position): SortableInterface;

public function clearPosition(): SortableInterface;
}

+ 4
- 0
Doctrine/Extension/StatusInterface.php View File

@@ -5,4 +5,8 @@ namespace Lc\SovBundle\Doctrine\Extension;
interface StatusInterface
{

public function getStatus(): ?float;

public function setStatus(float $status): StatusInterface;

}

+ 6
- 0
Doctrine/Extension/TimestampableInterface.php View File

@@ -4,6 +4,12 @@ namespace Lc\SovBundle\Doctrine\Extension;

interface TimestampableInterface
{
public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt): TimestampableInterface;

public function getUpdatedAt(): ?\DateTimeInterface;

public function setUpdatedAt(\DateTimeInterface $updatedAt): TimestampableInterface;

}

+ 5
- 1
Doctrine/Extension/TranslatableInterface.php View File

@@ -4,6 +4,10 @@ namespace Lc\SovBundle\Doctrine\Extension;

interface TranslatableInterface
{

public function setTranslatableLocale($locale);

public function getLocalesEnabled(): ?array;

public function setLocalesEnabled(?array $localesEnabled): TranslatableInterface;
}

+ 7
- 1
Factory/Reminder/ReminderFactoryInterface.php View File

@@ -2,7 +2,13 @@

namespace Lc\SovBundle\Factory\Reminder;

use Lc\SovBundle\Model\Reminder\ReminderInterface;

interface ReminderFactoryInterface
{

public function create(
string $crudAction = null,
string $crudControllerFqcn = null,
int $entityId = null
): ReminderInterface;
}

+ 11
- 1
Factory/Setting/SiteSettingFactoryInterface.php View File

@@ -2,7 +2,17 @@

namespace Lc\SovBundle\Factory\Setting;

use Lc\SovBundle\Model\File\FileInterface;
use Lc\SovBundle\Model\Setting\SiteSettingInterface;
use Lc\SovBundle\Model\Site\SiteInterface;

interface SiteSettingFactoryInterface
{

public function create(
SiteInterface $site,
string $name,
string $text = null,
\DateTime $date = null,
FileInterface $file = null
): SiteSettingInterface;
}

+ 3
- 1
Factory/Site/NewsFactoryInterface.php View File

@@ -2,7 +2,9 @@

namespace Lc\SovBundle\Factory\Site;

use Lc\SovBundle\Model\Site\NewsInterface;

interface NewsFactoryInterface
{
public function create(): NewsInterface;
}

+ 3
- 1
Factory/Site/PageFactoryInterface.php View File

@@ -2,7 +2,9 @@

namespace Lc\SovBundle\Factory\Site;

use Lc\SovBundle\Model\Site\PageInterface;

interface PageFactoryInterface
{
public function create(): PageInterface;
}

+ 3
- 1
Factory/Site/SiteFactoryInterface.php View File

@@ -2,7 +2,9 @@

namespace Lc\SovBundle\Factory\Site;

use Lc\SovBundle\Model\Site\SiteInterface;

interface SiteFactoryInterface
{
public function create(string $devAlias = null): SiteInterface;
}

+ 3
- 1
Factory/Ticket/TicketFactoryInterface.php View File

@@ -2,7 +2,9 @@

namespace Lc\SovBundle\Factory\Ticket;

use Lc\SovBundle\Model\Ticket\TicketInterface;

interface TicketFactoryInterface
{
public function create(): TicketInterface;
}

+ 4
- 1
Factory/Ticket/TicketMessageFactoryInterface.php View File

@@ -2,7 +2,10 @@

namespace Lc\SovBundle\Factory\Ticket;

use Lc\SovBundle\Model\Ticket\TicketInterface;
use Lc\SovBundle\Model\Ticket\TicketMessageInterface;

interface TicketMessageFactoryInterface
{

public function create(TicketInterface $ticket): TicketMessageInterface;
}

+ 3
- 1
Factory/User/GroupUserFactoryInterface.php View File

@@ -2,7 +2,9 @@

namespace Lc\SovBundle\Factory\User;

use Lc\SovBundle\Model\User\GroupUserInterface;

interface GroupUserFactoryInterface
{
public function create(): GroupUserInterface;
}

+ 3
- 1
Factory/User/UserFactoryInterface.php View File

@@ -2,7 +2,9 @@

namespace Lc\SovBundle\Factory\User;

use Lc\SovBundle\Model\User\UserInterface;

interface UserFactoryInterface
{
public function create(): UserInterface;
}

+ 48
- 2
Model/File/FileInterface.php View File

@@ -2,8 +2,54 @@

namespace Lc\SovBundle\Model\File;

use Lc\SovBundle\Model\User\UserInterface;

interface FileInterface
{
public function getCreatedBy(): ?UserInterface;

public function setCreatedBy(?UserInterface $createdBy): FileInterface;

public function getUpdatedBy(): ?UserInterface;

public function setUpdatedBy(?UserInterface $updatedBy): FileInterface;

public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias): FileInterface;

public function getPath(): ?string;

public function setPath(?string $path): FileInterface;

public function getLegend(): ?string;

public function setLegend(?string $legend): FileInterface;

/**
* @return float
*/
public function getPosition(): float;

/**
* @param float $position
* @return $this
*/
public function setPosition(float $position): FileInterface;

public function clearPosition(): FileInterface;

public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt): FileInterface;

public function getUpdatedAt(): ?\DateTimeInterface;

public function setUpdatedAt(\DateTimeInterface $updatedAt): FileInterface;

public function setTranslatableLocale($locale);

public function getLocalesEnabled(): ?array;

}
public function setLocalesEnabled(?array $localesEnabled): FileInterface;
}

+ 77
- 1
Model/Newsletter/NewsletterInterface.php View File

@@ -1,8 +1,84 @@
<?php

namespace Lc\SovBundle\Model\Newsletter ;
namespace Lc\SovBundle\Model\Newsletter;


use Doctrine\Common\Collections\Collection;
use Lc\SovBundle\Model\User\UserInterface;

interface NewsletterInterface
{
public function getTitle(): ?string;

public function setTitle(string $title);

public function getDescription(): ?string;

public function setDescription(?string $description);

public function getCreatedBy(): ?UserInterface;

public function setCreatedBy(?UserInterface $createdBy);

public function getUpdatedBy(): ?UserInterface;

public function setUpdatedBy(?UserInterface $updatedBy);

public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias);

/**
* @return Collection|UserInterface[]
*/
public function getUsers(): Collection;

public function addUser(UserInterface $user): NewsletterInterface;

public function removeUser(UserInterface $user): NewsletterInterface;

public function getIsMain(): ?bool;

public function setIsMain(?bool $isMain): NewsletterInterface;

public function getMetaTitle(): ?string;

public function setMetaTitle(?string $metaTitle);

public function getMetaDescription(): ?string;

public function setMetaDescription(?string $metaDescription);

public function setOldUrls($oldUrls);

public function getOldUrls(): ?array;

public function getSlug(): ?string;

public function setSlug(?string $slug);

/**
* @return float
*/
public function getPosition(): float;

/**
* @param float $position
* @return $this
*/
public function setPosition(float $position);

public function clearPosition();

public function getStatus(): ?float;

public function setStatus(float $status);

public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt);

public function getUpdatedAt(): ?\DateTimeInterface;

public function setUpdatedAt(\DateTimeInterface $updatedAt);
}

+ 61
- 1
Model/Reminder/ReminderInterface.php View File

@@ -2,6 +2,66 @@

namespace Lc\SovBundle\Model\Reminder;


use Doctrine\Common\Collections\Collection;
use Lc\SovBundle\Model\User\UserInterface;

interface ReminderInterface
{
}
public function getCreatedBy(): ?UserInterface;

public function setCreatedBy(?UserInterface $createdBy);

public function getUpdatedBy(): ?UserInterface;

public function setUpdatedBy(?UserInterface $updatedBy);

public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias);

public function getTitle(): ?string;

public function setTitle(string $title): ReminderInterface;

public function getDescription(): ?string;

public function setDescription(?string $description): ReminderInterface;

public function getCrudAction(): ?string;

public function setCrudAction(?string $crudAction): ReminderInterface;

public function getCrudControllerFqcn(): ?string;

public function setCrudControllerFqcn(?string $crudControllerFqcn): ReminderInterface;

public function getEntityId(): ?int;

public function setEntityId(?int $entityId): ReminderInterface;

/**
* @return Collection|UserInterface[]
*/
public function getUsers(): Collection;

public function addUser(UserInterface $user): ReminderInterface;

public function removeUser(UserInterface $user): ReminderInterface;

public function getDateReminder(): ?\DateTimeInterface;

public function setDateReminder(?\DateTimeInterface $dateReminder): ReminderInterface;

public function getDone(): ?bool;

public function setDone(?bool $done): ReminderInterface;

public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt);

public function getUpdatedAt(): ?\DateTimeInterface;

public function setUpdatedAt(\DateTimeInterface $updatedAt);
}

+ 17
- 0
Model/Setting/SettingInterface.php View File

@@ -2,7 +2,24 @@

namespace Lc\SovBundle\Model\Setting;


use Lc\SovBundle\Model\File\FileInterface;

interface SettingInterface
{
public function getName(): ?string;

public function setName(?string $name): SettingInterface;

public function getText(): ?string;

public function setText($text): SettingInterface;

public function getDate(): ?\DateTimeInterface;

public function setDate(?\DateTimeInterface $date): SettingInterface;

public function getFile(): ?FileInterface;

public function setFile(?FileInterface $file): SettingInterface;
}

+ 22
- 0
Model/Setting/SiteSettingInterface.php View File

@@ -2,7 +2,29 @@

namespace Lc\SovBundle\Model\Setting;


use Lc\SovBundle\Model\File\FileInterface;
use Lc\SovBundle\Model\Site\SiteInterface;

interface SiteSettingInterface
{
public function getName(): ?string;

public function setName(?string $name);

public function getText(): ?string;

public function setText($text);

public function getDate(): ?\DateTimeInterface;

public function setDate(?\DateTimeInterface $date);

public function getFile(): ?FileInterface;

public function setFile(?FileInterface $file);

public function getSite(): ?SiteInterface;

public function setSite(?SiteInterface $site): SiteSettingInterface;
}

+ 92
- 2
Model/Site/NewsInterface.php View File

@@ -1,8 +1,98 @@
<?php

namespace Lc\SovBundle\Model\Site ;
namespace Lc\SovBundle\Model\Site;

use Lc\SovBundle\Model\File\FileInterface;
use Lc\SovBundle\Model\File\FileModel;
use Lc\SovBundle\Model\Newsletter\NewsletterInterface;
use Lc\SovBundle\Model\User\UserInterface;

interface NewsInterface
{
public function getTitle(): ?string;

public function setTitle(string $title);

public function getDescription(): ?string;

public function setDescription(?string $description);

public function getCreatedBy(): ?UserInterface;

public function setCreatedBy(?UserInterface $createdBy);

public function getUpdatedBy(): ?UserInterface;

public function setUpdatedBy(?UserInterface $updatedBy);

public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias);

public function getDate(): ?\DateTimeInterface;

public function setDate(\DateTimeInterface $date): NewsInterface;

public function getIsSent(): ?bool;

public function setIsSent(?bool $isSent): NewsInterface;

public function getImage(): ?FileInterface;

public function setImage(?FileInterface $image): NewsInterface;

public function getNewsletter(): ?NewsletterInterface;

public function setNewsletter(?NewsletterInterface $newsletter): NewsInterface;

public function getOpenGraphTitle(): ?string;

public function setOpenGraphTitle(string $openGraphTitle): NewsInterface;

public function getOpenGraphDescription(): ?string;

public function setOpenGraphDescription(?string $openGraphDescription): NewsInterface;

public function getOpenGraphImage(): ?FileInterface;

public function setOpenGraphImage(?FileInterface $openGraphImage): NewsInterface;

public function setMetaTitle(?string $metaTitle);

public function getMetaDescription(): ?string;

public function setMetaDescription(?string $metaDescription);

public function setOldUrls($oldUrls);

public function getOldUrls(): ?array;

public function getSlug(): ?string;

public function setSlug(?string $slug);

/**
* @return float
*/
public function getPosition(): float;

/**
* @param float $position
* @return $this
*/
public function setPosition(float $position);

public function clearPosition();

public function getStatus(): ?float;

public function setStatus(float $status);

public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt);

public function getUpdatedAt(): ?\DateTimeInterface;

}
public function setUpdatedAt(\DateTimeInterface $updatedAt);
}

+ 64
- 1
Model/Site/PageInterface.php View File

@@ -2,7 +2,70 @@

namespace Lc\SovBundle\Model\Site;


use Lc\SovBundle\Model\User\UserInterface;


interface PageInterface
{
public function getTitle(): ?string;

public function setTitle(string $title);

public function getDescription(): ?string;

public function setDescription(?string $description);

public function getCreatedBy(): ?UserInterface;

public function setCreatedBy(?UserInterface $createdBy);

public function getUpdatedBy(): ?UserInterface;

public function setUpdatedBy(?UserInterface $updatedBy);

public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias);

public function getMetaTitle(): ?string;

public function setMetaTitle(?string $metaTitle);

public function getMetaDescription(): ?string;

public function setMetaDescription(?string $metaDescription);

public function setOldUrls($oldUrls);

public function getOldUrls(): ?array;

public function getSlug(): ?string;

public function setSlug(?string $slug);

/**
* @return float
*/
public function getPosition(): float;

/**
* @param float $position
* @return $this
*/
public function setPosition(float $position);

public function clearPosition();

public function getStatus(): ?float;

public function setStatus(float $status);

public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt);

public function getUpdatedAt(): ?\DateTimeInterface;

}
public function setUpdatedAt(\DateTimeInterface $updatedAt);
}

+ 15
- 2
Model/Site/SiteInterface.php View File

@@ -2,8 +2,21 @@

namespace Lc\SovBundle\Model\Site;

use Doctrine\Common\Collections\Collection;
use Lc\SovBundle\Model\Setting\SiteSettingInterface;

interface SiteInterface
{
public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias): SiteInterface;

/**
* @return Collection|SiteSettingInterface[]
*/
public function getSettings(): Collection;

public function addSetting(SiteSettingInterface $setting): SiteInterface;

}
public function removeSetting(SiteSettingInterface $setting): SiteInterface;
}

+ 68
- 1
Model/Ticket/TicketInterface.php View File

@@ -2,7 +2,74 @@

namespace Lc\SovBundle\Model\Ticket;


use Doctrine\Common\Collections\Collection;
use Lc\SovBundle\Model\User\UserInterface;

interface TicketInterface
{
public function getCreatedBy(): ?UserInterface;

public function setCreatedBy(?UserInterface $createdBy);

public function getUpdatedBy(): ?UserInterface;

public function setUpdatedBy(?UserInterface $updatedBy);

public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias);

public function getType(): ?string;

public function setType(string $type): TicketInterface;

public function getStatus(): ?string;

public function setStatus(string $status);

public function getSubject(): ?string;

public function setSubject(string $subject): TicketInterface;

public function getTags(): ?array;

public function setTags(?array $tags): TicketInterface;

public function getVisitorFirstname(): ?string;

public function setVisitorFirstname(?string $visitorFirstname): TicketInterface;

public function getVisitorLastname(): ?string;

public function setVisitorLastname(?string $visitorLastname): TicketInterface;

public function getVisitorEmail(): ?string;

public function setVisitorEmail(?string $visitorEmail): TicketInterface;

public function getVisitorToken(): ?string;

public function setVisitorToken(?string $visitorToken): TicketInterface;

/**
* @return Collection|TicketMessageInterface[]
*/
public function getTicketMessages(): Collection;

public function addTicketMessage(TicketMessageInterface $ticketMessage): TicketInterface;

public function removeTicketMessage(TicketMessageInterface $ticketMessage): TicketInterface;

public function getUser(): ?UserInterface;

public function setUser(?UserInterface $user): TicketInterface;

public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt);

public function getUpdatedAt(): ?\DateTimeInterface;

}
public function setUpdatedAt(\DateTimeInterface $updatedAt);
}

+ 42
- 1
Model/Ticket/TicketMessageInterface.php View File

@@ -2,7 +2,48 @@

namespace Lc\SovBundle\Model\Ticket;


use Lc\SovBundle\Model\User\UserInterface;

interface TicketMessageInterface
{
public function getCreatedBy(): ?UserInterface;

public function setCreatedBy(?UserInterface $createdBy);

public function getUpdatedBy(): ?UserInterface;

public function setUpdatedBy(?UserInterface $updatedBy);

public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias);

public function getStatus(): ?float;

public function setStatus(float $status): TicketMessageInterface;

public function getMessage(): ?string;

public function setMessage(string $message): TicketMessageInterface;

public function getTicket(): TicketInterface;

public function setTicket(TicketInterface $ticket): TicketMessageInterface;

public function getAnswerByAdmin(): ?bool;

public function setAnswerByAdmin(?bool $answerByAdmin): TicketMessageInterface;

public function getImageFilename(): ?string;

public function setImageFilename(?string $imageFilename): TicketMessageInterface;

public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt);

public function getUpdatedAt(): ?\DateTimeInterface;

}
public function setUpdatedAt(\DateTimeInterface $updatedAt);
}

+ 72
- 1
Model/User/GroupUserInterface.php View File

@@ -2,7 +2,78 @@

namespace Lc\SovBundle\Model\User;


use Doctrine\Common\Collections\Collection;

interface GroupUserInterface
{
public function getDescription(): ?string;

public function setDescription(?string $description);

public function getCreatedBy(): ?UserInterface;

public function setCreatedBy(?UserInterface $createdBy);

public function getUpdatedBy(): ?UserInterface;

public function setUpdatedBy(?UserInterface $updatedBy);

public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias);

public function getTitle(): ?string;

public function setTitle(string $title);

public function addUser(UserInterface $user): GroupUserInterface;

/**
* @return Collection|UserInterface[]
*/
public function getUsers(): Collection;

public function removeUser(UserInterface $user): GroupUserInterface;

public function getMetaTitle(): ?string;

public function setMetaTitle(?string $metaTitle);

public function getMetaDescription(): ?string;

public function setMetaDescription(?string $metaDescription);

public function setOldUrls($oldUrls);

public function getOldUrls(): ?array;

public function getSlug(): ?string;

public function setSlug(?string $slug);

/**
* @return float
*/
public function getPosition(): float;

/**
* @param float $position
* @return $this
*/
public function setPosition(float $position);

public function clearPosition();

public function getStatus(): ?float;

public function setStatus(float $status);

public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt);

public function getUpdatedAt(): ?\DateTimeInterface;

}
public function setUpdatedAt(\DateTimeInterface $updatedAt);
}

+ 101
- 1
Model/User/UserInterface.php View File

@@ -2,7 +2,107 @@

namespace Lc\SovBundle\Model\User;


use Doctrine\Common\Collections\Collection;
use Lc\SovBundle\Model\Ticket\TicketInterface;


interface UserInterface
{
public function getDevAlias(): ?string;

public function setDevAlias(?string $devAlias): UserInterface;

public function getCreatedAt(): ?\DateTimeInterface;

public function setCreatedAt(\DateTimeInterface $createdAt): UserInterface;

public function getUpdatedAt(): ?\DateTimeInterface;

public function setUpdatedAt(\DateTimeInterface $updatedAt): UserInterface;

public function getEmail(): ?string;

public function setEmail(string $email): UserInterface;

/**
* A visual identifier that represents this user.
*
* @see UserInterface
*/
public function getUsername(): string;

public function getGender(): ?bool;

public function setGender(?bool $gender): UserInterface;

public function getBirthdate(): ?\DateTimeInterface;

public function setBirthdate(?\DateTimeInterface $birthdate): UserInterface;

/**
* @see UserInterface
*/
public function getRoles(): array;

public function setRoles(array $roles): UserInterface;

public function hasRole($role);

/**
* @see UserInterface
*/
public function getPassword(): string;

public function setPassword(string $password): UserInterface;

public function generatePassword($length = 8): string;

/**
* @see UserIn
*/
public function getSalt();

/**
* @see UserInterface
*/
public function eraseCredentials();

public function getLastname(): ?string;

public function setLastname(?string $lastname): UserInterface;

public function getFirstname(): ?string;

public function setFirstname(?string $firstname): UserInterface;

public function getPhone(): ?string;

public function setPhone(?string $phone): UserInterface;

public function isVerified(): bool;

public function setIsVerified(bool $isVerified): UserInterface;

/**
* @return Collection|GroupUserInterface[]
*/
public function getGroupUsers(): Collection;

public function addGroupUser(GroupUserInterface $groupUser): UserInterface;

public function removeGroupUser(GroupUserInterface $groupUser): UserInterface;

/**
* @return Collection|TicketInterface[]
*/
public function getTickets(): Collection;

public function addTicket(TicketInterface $ticket): UserInterface;

public function removeTicket(TicketInterface $ticket): UserInterface;

public function getTicketTypesNotification(): ?array;

}
public function setTicketTypesNotification(?array $ticketTypesNotification): UserInterface;
}

+ 2
- 1
Model/User/UserModel.php View File

@@ -11,11 +11,12 @@ use Lc\SovBundle\Doctrine\Extension\DevAliasTrait;
use Lc\SovBundle\Doctrine\Extension\TimestampableTrait;
use Lc\SovBundle\Model\Ticket\TicketInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Lc\SovBundle\Model\User\UserInterface as SovUserInterface;

/**
* @ORM\MappedSuperclass()
*/
abstract class UserModel implements EntityInterface, UserInterface, DevAliasInterface
abstract class UserModel implements EntityInterface, UserInterface, SovUserInterface, DevAliasInterface
{
use DevAliasTrait;
use TimestampableTrait;

+ 142
- 1
Repository/AbstractRepositoryInterface.php View File

@@ -2,8 +2,149 @@

namespace Lc\SovBundle\Repository;

use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\AbstractQuery;
use Doctrine\ORM\LazyCriteriaCollection;
use Doctrine\ORM\NativeQuery;
use Doctrine\ORM\Query;
use Doctrine\ORM\Query\ResultSetMappingBuilder;
use Doctrine\ORM\QueryBuilder;

interface AbstractRepositoryInterface
{
public function setDefaultLocale($locale);

}
public function getOneOrNullResult(QueryBuilder $qb, $locale = null, $hydrationMode = null);

public function getResult(QueryBuilder $qb, $locale = null, $hydrationMode = AbstractQuery::HYDRATE_OBJECT);

public function getArrayResult(QueryBuilder $qb, $locale = null);

public function getSingleResult(QueryBuilder $qb, $locale = null, $hydrationMode = null);

public function getScalarResult(QueryBuilder $qb, $locale = null);

public function getSingleScalarResult(QueryBuilder $qb, $locale = null);

/**
* Creates a new QueryBuilder instance that is prepopulated for this entity name.
*
* @param string $alias
* @param string $indexBy The index for the from.
*
* @return QueryBuilder
*/
public function createQueryBuilder($alias, $indexBy = null);

/**
* Creates a new result set mapping builder for this entity.
*
* The column naming strategy is "INCREMENT".
*
* @param string $alias
*
* @return ResultSetMappingBuilder
*/
public function createResultSetMappingBuilder($alias);

/**
* Creates a new Query instance based on a predefined metadata named query.
*
* @param string $queryName
*
* @return Query
* @deprecated
*
*/
public function createNamedQuery($queryName);

/**
* Creates a native SQL query.
*
* @param string $queryName
*
* @return NativeQuery
* @deprecated
*
*/
public function createNativeNamedQuery($queryName);

/**
* Clears the repository, causing all managed entities to become detached.
*
* @deprecated 2.8 This method is being removed from the ORM and won't have any replacement
*
* @return void
*/
public function clear();

/**
* Finds an entity by its primary key / identifier.
*
* @param mixed $id The identifier.
* @param int|null $lockMode One of the \Doctrine\DBAL\LockMode::* constants
* or NULL if no specific lock mode should be used
* during the search.
* @param int|null $lockVersion The lock version.
*
* @return object|null The entity instance or NULL if the entity can not be found.
* @psalm-return ?T
*/
public function find($id, $lockMode = null, $lockVersion = null);

/**
* Finds all entities in the repository.
*
* @psalm-return list<T> The entities.
*/
public function findAll();

/**
* Finds entities by a set of criteria.
*
* @param int|null $limit
* @param int|null $offset
* @psalm-param array<string, mixed> $criteria
* @psalm-param array<string, string>|null $orderBy
*
* @psalm-return list<T> The objects.
*/
public function findBy(array $criteria, ?array $orderBy = null, $limit = null, $offset = null);

/**
* Finds a single entity by a set of criteria.
*
* @psalm-param array<string, mixed> $criteria
* @psalm-param array<string, string>|null $orderBy
*
* @return object|null The entity instance or NULL if the entity can not be found.
* @psalm-return ?T
*/
public function findOneBy(array $criteria, ?array $orderBy = null);

/**
* Counts entities by a set of criteria.
*
* @psalm-param array<string, mixed> $criteria
*
* @return int The cardinality of the objects that match the given criteria.
*
* @todo Add this method to `ObjectRepository` interface in the next major release
*/
public function count(array $criteria);

/**
* @return string
*/
public function getClassName();

/**
* Select all elements from a selectable that match the expression and
* return a new collection containing these elements.
*
* @return LazyCriteriaCollection
* @psalm-return Collection<int, T>
*/
public function matching(Criteria $criteria);
}

+ 50
- 0
Repository/File/FileRepositoryQueryInterface.php View File

@@ -2,7 +2,57 @@

namespace Lc\SovBundle\Repository\File;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;

interface FileRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();
}

+ 1
- 2
Repository/File/FileStore.php View File

@@ -13,15 +13,14 @@ class FileStore extends AbstractStore implements FileStoreInterface
{
$this->query = $query;
}

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{

return $query;
}

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{

return $query;
}


+ 30
- 0
Repository/File/FileStoreInterface.php View File

@@ -2,7 +2,37 @@

namespace Lc\SovBundle\Repository\File;

use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface FileStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;
}

+ 51
- 0
Repository/Newsletter/NewsletterRepositoryQueryInterface.php View File

@@ -2,7 +2,58 @@

namespace Lc\SovBundle\Repository\Newsletter;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

interface NewsletterRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();
}

+ 1
- 2
Repository/Newsletter/NewsletterStore.php View File

@@ -13,15 +13,14 @@ class NewsletterStore extends AbstractStore implements NewsletterStoreInterface
{
$this->query = $query;
}

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{

return $query;
}

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{

return $query;
}


+ 30
- 0
Repository/Newsletter/NewsletterStoreInterface.php View File

@@ -2,7 +2,37 @@

namespace Lc\SovBundle\Repository\Newsletter;

use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface NewsletterStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;
}

+ 76
- 1
Repository/Reminder/ReminderRepositoryQueryInterface.php View File

@@ -2,7 +2,82 @@

namespace Lc\SovBundle\Repository\Reminder;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Model\User\UserInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

interface ReminderRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();

public function filterByDone($done = false): ReminderRepositoryQueryInterface;

public function joinUser(): ReminderRepositoryQueryInterface;

public function filterByUser(UserInterface $user): ReminderRepositoryQueryInterface;

public function filterByCrudAction(?string $crudAction = null
): ReminderRepositoryQueryInterface;

public function filterByCrudControllerFqcn(?string $crudControllerFqcn = null
): ReminderRepositoryQueryInterface;

public function filterByEntityId(?int $entityId = null): ReminderRepositoryQueryInterface;

public function filterIsNotDone(): ReminderRepositoryQueryInterface;

public function filterLikeCrudAction(string $crudAction): ReminderRepositoryQueryInterface;

public function filterLikeCrudControllerFqcn(string $crudControllerFqcn
): ReminderRepositoryQueryInterface;

}
public function filterLikeEntityId(int $entityId): ReminderRepositoryQueryInterface;
}

+ 42
- 1
Repository/Reminder/ReminderStoreInterface.php View File

@@ -2,7 +2,48 @@

namespace Lc\SovBundle\Repository\Reminder;

use Lc\SovBundle\Model\User\UserInterface;
use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface ReminderStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function get($params = [], $query = null);

public function getByUser(UserInterface $user, $query = null): array;

}
public function getByEasyAdminConfigAndUser(
string $crudAction,
string $crudControllerFqcn,
UserInterface $user,
int $entityId = null,
$query = null
): array;
}

+ 24
- 13
Repository/RepositoryQueryInterface.php View File

@@ -3,13 +3,14 @@
namespace Lc\SovBundle\Repository;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;

interface RepositoryQueryInterface
{
public function create();

public function call(callable $fn):self;
public function call(callable $fn);

public function count();

@@ -17,31 +18,41 @@ interface RepositoryQueryInterface

public function find(): array;

public function limit(int $maxResults):self;
public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function orderBy(string $field, string $sort = 'ASC'):self;
public function getQueryBuilder(): QueryBuilder;

public function filterById(int $id):self;
public function groupBy(string $field);

public function filterByDevAlias(string $devAlias):self;
public function orderBy(string $field, string $sort = 'ASC');

public function filterBySlug(string $slug):self;
public function filterById(int $id);

public function filterIsParent():self;
public function andWhereEqual($field, $value);

public function filterIsChildren():self;
public function filterByOldUrl(string $oldUrl);

public function filterByParent(EntityInterface $parent):self;
public function resetRelationsJoin(): void;

public function filterIsOffline():self;
public function filterByDevAlias(string $devAlias);

public function filterIsOnline():self;
public function filterBySlug(string $slug);

public function filterIsDeleted():self;
public function filterIsParent();

public function filterIsOnlineAndOffline():self;
public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();
}

+ 51
- 0
Repository/Setting/SiteSettingRepositoryQueryInterface.php View File

@@ -2,7 +2,58 @@

namespace Lc\SovBundle\Repository\Setting;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

interface SiteSettingRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();
}

+ 1
- 2
Repository/Setting/SiteSettingStore.php View File

@@ -13,15 +13,14 @@ class SiteSettingStore extends AbstractStore implements SiteSettingStoreInterfac
{
$this->query = $query;
}

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{

return $query;
}

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{

return $query;
}


+ 30
- 0
Repository/Setting/SiteSettingStoreInterface.php View File

@@ -2,7 +2,37 @@

namespace Lc\SovBundle\Repository\Setting;

use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface SiteSettingStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;
}

+ 51
- 0
Repository/Site/NewsRepositoryQueryInterface.php View File

@@ -2,7 +2,58 @@

namespace Lc\SovBundle\Repository\Site;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

interface NewsRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();
}

+ 32
- 0
Repository/Site/NewsStoreInterface.php View File

@@ -2,7 +2,39 @@

namespace Lc\SovBundle\Repository\Site;

use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface NewsStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function getLatests(int $maxResults = 0, $query = null): array;
}

+ 51
- 0
Repository/Site/PageRepositoryQueryInterface.php View File

@@ -2,7 +2,58 @@

namespace Lc\SovBundle\Repository\Site;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

interface PageRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();
}

+ 30
- 0
Repository/Site/PageStoreInterface.php View File

@@ -2,7 +2,37 @@

namespace Lc\SovBundle\Repository\Site;

use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface PageStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;
}

+ 51
- 0
Repository/Site/SiteRepositoryQueryInterface.php View File

@@ -2,7 +2,58 @@

namespace Lc\SovBundle\Repository\Site;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

interface SiteRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();
}

+ 1
- 2
Repository/Site/SiteStore.php View File

@@ -13,15 +13,14 @@ class SiteStore extends AbstractStore implements SiteStoreInterface
{
$this->query = $query;
}

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{

return $query;
}

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{

return $query;
}


+ 32
- 0
Repository/Site/SiteStoreInterface.php View File

@@ -2,7 +2,39 @@

namespace Lc\SovBundle\Repository\Site;

use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface SiteStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function getOneDefault();
}

+ 12
- 6
Repository/StoreInterface.php View File

@@ -4,12 +4,6 @@ namespace Lc\SovBundle\Repository;

interface StoreInterface
{
public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;
@@ -22,9 +16,21 @@ interface StoreInterface

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;
}

+ 54
- 0
Repository/Ticket/TicketMessageRepositoryQueryInterface.php View File

@@ -2,7 +2,61 @@

namespace Lc\SovBundle\Repository\Ticket;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Model\Ticket\TicketInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

interface TicketMessageRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();

public function filterByTicket(TicketInterface $ticket);
}

+ 1
- 1
Repository/Ticket/TicketMessageStore.php View File

@@ -14,6 +14,7 @@ class TicketMessageStore extends AbstractStore implements TicketMessageStoreInte
{
$this->query = $query;
}

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{
$query->orderBy('createdAt', 'ASC');
@@ -22,7 +23,6 @@ class TicketMessageStore extends AbstractStore implements TicketMessageStoreInte

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
{

return $query;
}


+ 33
- 0
Repository/Ticket/TicketMessageStoreInterface.php View File

@@ -2,7 +2,40 @@

namespace Lc\SovBundle\Repository\Ticket;

use Lc\SovBundle\Model\Ticket\TicketInterface;
use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface TicketMessageStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function getByTicket(TicketInterface $ticket, $query = null);
}

+ 68
- 0
Repository/Ticket/TicketRepositoryQueryInterface.php View File

@@ -2,7 +2,75 @@

namespace Lc\SovBundle\Repository\Ticket;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Model\User\UserInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

interface TicketRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();

public function filterByUser(UserInterface $user): TicketRepositoryQueryInterface;

public function joinUser(): TicketRepositoryQueryInterface;

public function filterByStatus($statusArray): TicketRepositoryQueryInterface;

public function filterByFirstname(string $firstname);

public function filterByLastname(string $lastname);

public function filterByEmail(string $email);

public function selectCount(): TicketRepositoryQueryInterface;

public function filterByVisitorToken(string $visitorToken): TicketRepositoryQueryInterface;
}

+ 39
- 0
Repository/Ticket/TicketStoreInterface.php View File

@@ -2,7 +2,46 @@

namespace Lc\SovBundle\Repository\Ticket;

use Lc\SovBundle\Model\User\UserInterface;
use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface TicketStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function getByUser(UserInterface $user, $query = null): array;

public function getOpen(int $limit = 0, $query = null): array;

public function countOpen($query = null): string;

public function getOneByIdAndVisitorToken(int $id, string $token, $query = null);
}

+ 52
- 0
Repository/User/GroupUserRepositoryQueryInterface.php View File

@@ -2,7 +2,59 @@

namespace Lc\SovBundle\Repository\User;

use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;

interface GroupUserRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();

public function joinUsers(): GroupUserRepositoryQueryInterface;
}

+ 30
- 0
Repository/User/GroupUserStoreInterface.php View File

@@ -2,7 +2,37 @@

namespace Lc\SovBundle\Repository\User;

use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface GroupUserStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;
}

+ 62
- 0
Repository/User/UserRepositoryQueryInterface.php View File

@@ -2,7 +2,69 @@

namespace Lc\SovBundle\Repository\User;

use App\Entity\Newsletter\Newsletter;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\QueryBuilder;
use Lc\SovBundle\Doctrine\EntityInterface;
use Lc\SovBundle\Repository\AbstractRepositoryQuery;

interface UserRepositoryQueryInterface
{
public function create();

public function call(callable $fn);

public function count();

public function findOne();

public function find(): array;

public function limit(int $maxResults);

public function paginate(int $page = 1, int $limit = 20);

public function getRepository(): ServiceEntityRepository;

public function getQueryBuilder(): QueryBuilder;

public function groupBy(string $field);

public function orderBy(string $field, string $sort = 'ASC');

public function filterById(int $id);

public function andWhereEqual($field, $value);

public function filterByOldUrl(string $oldUrl);

public function resetRelationsJoin(): void;

public function filterByDevAlias(string $devAlias);

public function filterBySlug(string $slug);

public function filterIsParent();

public function filterIsChildren();

public function filterByParent(EntityInterface $parent = null);

public function filterIsOffline();

public function filterIsOnline();

public function filterIsDeleted();

public function filterIsOnlineAndOffline();

public function joinGroupUsers($addSelect = true): UserRepositoryQueryInterface;

public function filterByNewsletter(Newsletter $newsletter): UserRepositoryQueryInterface;

public function filterByRole(string $role): UserRepositoryQueryInterface;

public function filterByTicketTypeNotification(string $ticketType): UserRepositoryQueryInterface;

public function filterByEmail(string $email): UserRepositoryQueryInterface;
}

+ 39
- 0
Repository/User/UserStoreInterface.php View File

@@ -2,7 +2,46 @@

namespace Lc\SovBundle\Repository\User;

use App\Entity\Newsletter\Newsletter;
use Lc\SovBundle\Repository\RepositoryQueryInterface;

interface UserStoreInterface
{
public function createDefaultQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function createQuery(RepositoryQueryInterface $query = null): RepositoryQueryInterface;

public function getRepositoryQuery();

public function getOneById(int $id);

public function getOneBySlug(string $slug, bool $isOnline = true, $query = null);

public function getOneByDevAlias(string $devAlias, $query = null);

public function getOneOnlineByDevAlias(string $devAlias, $query = null);

public function getOneByOldUrl(string $oldUrl, $query = null);

public function get($query = null);

public function getAll($query = null);

public function getOnline($query = null);

public function getParent(bool $isOnline = true, $query = null);

public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface;

public function getByNewsletter(Newsletter $newsletter, $query = null): array;

public function getByRole(string $role, $query = null): array;

public function getByTicketTypesNotification(string $ticketType, $query = null): array;

public function getOneByEmail(string $email, $query = null);
}

Loading…
Cancel
Save