Skip to content

Commit c63bc0c

Browse files
committed
add changes
1 parent bb7d6a3 commit c63bc0c

File tree

8 files changed

+344
-76
lines changed

8 files changed

+344
-76
lines changed

Entities/Attachment.php

+147
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace ArrayAccess\TrayDigita\App\Modules\Media\Entities;
5+
6+
use ArrayAccess\TrayDigita\App\Modules\Users\Entities\Admin;
7+
use ArrayAccess\TrayDigita\App\Modules\Users\Entities\Site;
8+
use ArrayAccess\TrayDigita\Database\Entities\Abstracts\AbstractAttachment;
9+
use Doctrine\DBAL\Types\Types;
10+
use Doctrine\ORM\Mapping\Column;
11+
use Doctrine\ORM\Mapping\Entity;
12+
use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
13+
use Doctrine\ORM\Mapping\Index;
14+
use Doctrine\ORM\Mapping\JoinColumn;
15+
use Doctrine\ORM\Mapping\ManyToOne;
16+
use Doctrine\ORM\Mapping\Table;
17+
use Doctrine\ORM\Mapping\UniqueConstraint;
18+
19+
/**
20+
* @property-read ?Admin $user
21+
*/
22+
#[Entity]
23+
#[Table(
24+
name: self::TABLE_NAME,
25+
options: [
26+
'charset' => 'utf8mb4',
27+
'collation' => 'utf8mb4_unicode_ci',
28+
'comment' => 'Attachments created by admin user',
29+
]
30+
)]
31+
#[UniqueConstraint(
32+
name: 'unique_path_storage_type',
33+
columns: ['path', 'storage_type']
34+
)]
35+
#[Index(
36+
columns: ['id', 'site_id'],
37+
name: 'index_id_site_id'
38+
)]
39+
#[Index(
40+
columns: ['storage_type', 'mime_type'],
41+
name: 'index_storage_type_mime_type'
42+
)]
43+
#[Index(
44+
columns: ['user_id'],
45+
name: 'relation_attachments_user_id_admins_id'
46+
)]
47+
#[Index(
48+
columns: ['site_id'],
49+
name: 'relation_attachments_site_id_sites_id'
50+
)]
51+
#[Index(
52+
columns: ['name', 'file_name', 'status', 'mime_type', 'storage_type', 'site_id'],
53+
name: 'index_name_file_name_status_mime_type_storage_type_site_id'
54+
)]
55+
#[HasLifecycleCallbacks]
56+
class Attachment extends AbstractAttachment
57+
{
58+
public const TABLE_NAME = 'attachments';
59+
60+
#[Column(
61+
name: 'site_id',
62+
type: Types::BIGINT,
63+
length: 20,
64+
nullable: true,
65+
options: [
66+
'unsigned' => true,
67+
'default' => null,
68+
'comment' => 'Site id'
69+
]
70+
)]
71+
protected ?int $site_id = null;
72+
#[
73+
JoinColumn(
74+
name: 'site_id',
75+
referencedColumnName: 'id',
76+
nullable: true,
77+
onDelete: 'RESTRICT',
78+
options: [
79+
'relation_name' => 'relation_attachments_site_id_sites_id',
80+
'onUpdate' => 'CASCADE',
81+
'onDelete' => 'RESTRICT'
82+
]
83+
),
84+
ManyToOne(
85+
targetEntity: Site::class,
86+
cascade: [
87+
"persist"
88+
],
89+
fetch: 'EAGER'
90+
)
91+
]
92+
protected ?Site $site = null;
93+
94+
#[
95+
JoinColumn(
96+
name: 'user_id',
97+
referencedColumnName: 'id',
98+
nullable: true,
99+
onDelete: 'RESTRICT',
100+
options: [
101+
'relation_name' => 'relation_attachments_user_id_admins_id',
102+
'onUpdate' => 'CASCADE',
103+
'onDelete' => 'RESTRICT'
104+
],
105+
),
106+
ManyToOne(
107+
targetEntity: Admin::class,
108+
cascade: [
109+
'persist'
110+
],
111+
fetch: 'LAZY',
112+
)
113+
]
114+
protected ?Admin $user = null;
115+
116+
public function setUser(?Admin $user): void
117+
{
118+
$this->user = $user;
119+
$this->setUserId($user?->getId());
120+
}
121+
122+
public function getUser(): ?Admin
123+
{
124+
return $this->user;
125+
}
126+
127+
public function getSiteId(): ?int
128+
{
129+
return $this->site_id;
130+
}
131+
132+
public function setSiteId(?int $site_id): void
133+
{
134+
$this->site_id = $site_id;
135+
}
136+
137+
public function getSite(): ?Site
138+
{
139+
return $this->site;
140+
}
141+
142+
public function setSite(?Site $site): void
143+
{
144+
$this->site = $site;
145+
$this->setSiteId($site?->getId());
146+
}
147+
}

Entities/UserAttachment.php

+147
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace ArrayAccess\TrayDigita\App\Modules\Media\Entities;
5+
6+
use ArrayAccess\TrayDigita\App\Modules\Users\Entities\Site;
7+
use ArrayAccess\TrayDigita\App\Modules\Users\Entities\User;
8+
use ArrayAccess\TrayDigita\Database\Entities\Abstracts\AbstractAttachment;
9+
use Doctrine\DBAL\Types\Types;
10+
use Doctrine\ORM\Mapping\Column;
11+
use Doctrine\ORM\Mapping\Entity;
12+
use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
13+
use Doctrine\ORM\Mapping\Index;
14+
use Doctrine\ORM\Mapping\JoinColumn;
15+
use Doctrine\ORM\Mapping\ManyToOne;
16+
use Doctrine\ORM\Mapping\Table;
17+
use Doctrine\ORM\Mapping\UniqueConstraint;
18+
19+
/**
20+
* @property-read ?User $user
21+
*/
22+
#[Entity]
23+
#[Table(
24+
name: self::TABLE_NAME,
25+
options: [
26+
'charset' => 'utf8mb4',
27+
'collation' => 'utf8mb4_unicode_ci',
28+
'comment' => 'Attachments created by common user',
29+
]
30+
)]
31+
#[UniqueConstraint(
32+
name: 'unique_path_storage_type',
33+
columns: ['path', 'storage_type']
34+
)]
35+
#[Index(
36+
columns: ['id', 'site_id'],
37+
name: 'index_id_site_id'
38+
)]
39+
#[Index(
40+
columns: ['storage_type', 'mime_type'],
41+
name: 'index_storage_type_mime_type'
42+
)]
43+
#[Index(
44+
columns: ['user_id'],
45+
name: 'relation_user_attachments_user_id_users_id'
46+
)]
47+
#[Index(
48+
columns: ['site_id'],
49+
name: 'relation_user_attachments_site_id_sites_id'
50+
)]
51+
#[Index(
52+
columns: ['name', 'file_name', 'status', 'mime_type', 'storage_type', 'site_id'],
53+
name: 'index_name_file_name_status_mime_type_storage_type_site_id'
54+
)]
55+
#[HasLifecycleCallbacks]
56+
class UserAttachment extends AbstractAttachment
57+
{
58+
public const TABLE_NAME = 'user_attachments';
59+
60+
#[Column(
61+
name: 'site_id',
62+
type: Types::BIGINT,
63+
length: 20,
64+
nullable: true,
65+
options: [
66+
'unsigned' => true,
67+
'comment' => 'Site id'
68+
]
69+
)]
70+
protected ?int $site_id = null;
71+
72+
#[
73+
JoinColumn(
74+
name: 'site_id',
75+
referencedColumnName: 'id',
76+
nullable: true,
77+
onDelete: 'RESTRICT',
78+
options: [
79+
'relation_name' => 'relation_user_attachments_site_id_sites_id',
80+
'onUpdate' => 'CASCADE',
81+
'onDelete' => 'RESTRICT'
82+
]
83+
),
84+
ManyToOne(
85+
targetEntity: Site::class,
86+
cascade: [
87+
"persist"
88+
],
89+
fetch: 'EAGER'
90+
)
91+
]
92+
protected ?Site $site = null;
93+
94+
#[
95+
JoinColumn(
96+
name: 'user_id',
97+
referencedColumnName: 'id',
98+
nullable: true,
99+
onDelete: 'RESTRICT',
100+
options: [
101+
'relation_name' => 'relation_user_attachments_user_id_users_id',
102+
'onUpdate' => 'CASCADE',
103+
'onDelete' => 'RESTRICT'
104+
],
105+
),
106+
ManyToOne(
107+
targetEntity: User::class,
108+
cascade: [
109+
'persist'
110+
],
111+
fetch: 'LAZY',
112+
)
113+
]
114+
protected ?User $user = null;
115+
116+
public function setUser(?User $user): void
117+
{
118+
$this->user = $user;
119+
$this->setUserId($user?->getId());
120+
}
121+
122+
public function getUser(): ?User
123+
{
124+
return $this->user;
125+
}
126+
127+
public function getSiteId(): ?int
128+
{
129+
return $this->site_id;
130+
}
131+
132+
public function setSiteId(?int $site_id): void
133+
{
134+
$this->site_id = $site_id;
135+
}
136+
137+
public function getSite(): ?Site
138+
{
139+
return $this->site;
140+
}
141+
142+
public function setSite(?Site $site): void
143+
{
144+
$this->site = $site;
145+
$this->setSiteId($site?->getId());
146+
}
147+
}

Languages/media-module.pot Languages/module.pot

+1-34
Original file line numberDiff line numberDiff line change
@@ -25,37 +25,4 @@ msgstr ""
2525
"X-Poedit-SearchPathExcluded-0: *.css\n"
2626
"X-Poedit-SearchPathExcluded-1: *.html\n"
2727
"X-Poedit-SearchPathExcluded-2: *.json\n"
28-
29-
#: Media.php:43
30-
msgctxt "module"
31-
msgid "Media Manager"
32-
msgstr ""
33-
34-
#: Media.php:52
35-
msgctxt "module"
36-
msgid ""
37-
"Module to make application support media & file "
38-
"attachments"
39-
msgstr ""
40-
41-
#: Uploader/Abstracts/AbstractUploader.php:128
42-
msgctxt "module"
43-
msgid "File does not have file name"
44-
msgstr ""
45-
46-
#: Uploader/Abstracts/AbstractUploader.php:143
47-
#, php-format
48-
msgctxt "module"
49-
msgid "Could not determine file type from mimetype %s"
50-
msgstr ""
51-
52-
#: Uploader/Abstracts/AbstractUploader.php:259
53-
msgctxt "module"
54-
msgid "Could not save uploaded file"
55-
msgstr ""
56-
57-
#: Uploader/Abstracts/AbstractUploader.php:271
58-
msgctxt "module"
59-
msgid ""
60-
"Could not save uploaded file & determine target file."
61-
msgstr ""
28+
"X-Poedit-SearchPathExcluded-3: *.json\n"

0 commit comments

Comments
 (0)