Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
MediaTypeMapper
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
1<?php
2/**
3 * Jingga
4 *
5 * PHP Version 8.1
6 *
7 * @package   Modules\Media\Models
8 * @copyright Dennis Eichhorn
9 * @license   OMS License 2.0
10 * @version   1.0.0
11 * @link      https://jingga.app
12 */
13declare(strict_types=1);
14
15namespace Modules\Media\Models;
16
17use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
18
19/**
20 * Media type mapper class.
21 *
22 * @package Modules\Media\Models
23 * @license OMS License 2.0
24 * @link    https://jingga.app
25 * @since   1.0.0
26 *
27 * @template T of MediaType
28 * @extends DataMapperFactory<T>
29 */
30final class MediaTypeMapper extends DataMapperFactory
31{
32    /**
33     * Columns.
34     *
35     * @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
36     * @since 1.0.0
37     */
38    public const COLUMNS = [
39        'media_type_id'        => ['name' => 'media_type_id',        'type' => 'int',    'internal' => 'id'],
40        'media_type_name'      => ['name' => 'media_type_name',      'type' => 'string', 'internal' => 'name'],
41        'media_type_isvisible' => ['name' => 'media_type_isvisible', 'type' => 'bool',   'internal' => 'isVisible'],
42    ];
43
44    /**
45     * Has many relation.
46     *
47     * @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
48     * @since 1.0.0
49     */
50    public const HAS_MANY = [
51        'title' => [
52            'mapper'  => MediaTypeL11nMapper::class,
53            'table'   => 'media_type_l11n',
54            'self'    => 'media_type_l11n_type',
55            'column'  => 'content',
56            'external'=> null,
57        ],
58    ];
59
60    /**
61     * Model to use by the mapper.
62     *
63     * @var class-string<T>
64     * @since 1.0.0
65     */
66    public const MODEL = MediaType::class;
67
68    /**
69     * Primary table.
70     *
71     * @var string
72     * @since 1.0.0
73     */
74    public const TABLE = 'media_type';
75
76    /**
77     * Primary field name.
78     *
79     * @var string
80     * @since 1.0.0
81     */
82    public const PRIMARYFIELD = 'media_type_id';
83}