aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Data/Entities/LibraryRoot.cs
blob: 9695ed638d7d7d38f76a9da35e46874dca6b6bbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Jellyfin.Data.Entities
{
    public partial class LibraryRoot
    {
        partial void Init();

        /// <summary>
        /// Default constructor. Protected due to required properties, but present because EF needs it.
        /// </summary>
        protected LibraryRoot()
        {
            Init();
        }

        /// <summary>
        /// Replaces default constructor, since it's protected. Caller assumes responsibility for setting all required values before saving.
        /// </summary>
        public static LibraryRoot CreateLibraryRootUnsafe()
        {
            return new LibraryRoot();
        }

        /// <summary>
        /// Public constructor with required data.
        /// </summary>
        /// <param name="path">Absolute Path.</param>
        public LibraryRoot(string path)
        {
            if (string.IsNullOrEmpty(path))
            {
                throw new ArgumentNullException(nameof(path));
            }

            this.Path = path;

            Init();
        }

        /// <summary>
        /// Static create function (for use in LINQ queries, etc.)
        /// </summary>
        /// <param name="path">Absolute Path.</param>
        public static LibraryRoot Create(string path)
        {
            return new LibraryRoot(path);
        }

        /*************************************************************************
         * Properties
         *************************************************************************/

        /// <summary>
        /// Backing field for Id.
        /// </summary>
        internal int _Id;
        /// <summary>
        /// When provided in a partial class, allows value of Id to be changed before setting.
        /// </summary>
        partial void SetId(int oldValue, ref int newValue);
        /// <summary>
        /// When provided in a partial class, allows value of Id to be changed before returning.
        /// </summary>
        partial void GetId(ref int result);

        /// <summary>
        /// Identity, Indexed, Required.
        /// </summary>
        [Key]
        [Required]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id
        {
            get
            {
                int value = _Id;
                GetId(ref value);
                return _Id = value;
            }

            protected set
            {
                int oldValue = _Id;
                SetId(oldValue, ref value);
                if (oldValue != value)
                {
                    _Id = value;
                }
            }
        }

        /// <summary>
        /// Backing field for Path.
        /// </summary>
        protected string _Path;
        /// <summary>
        /// When provided in a partial class, allows value of Path to be changed before setting.
        /// </summary>
        partial void SetPath(string oldValue, ref string newValue);
        /// <summary>
        /// When provided in a partial class, allows value of Path to be changed before returning.
        /// </summary>
        partial void GetPath(ref string result);

        /// <summary>
        /// Required, Max length = 65535
        /// Absolute Path.
        /// </summary>
        [Required]
        [MaxLength(65535)]
        [StringLength(65535)]
        public string Path
        {
            get
            {
                string value = _Path;
                GetPath(ref value);
                return _Path = value;
            }

            set
            {
                string oldValue = _Path;
                SetPath(oldValue, ref value);
                if (oldValue != value)
                {
                    _Path = value;
                }
            }
        }

        /// <summary>
        /// Backing field for NetworkPath.
        /// </summary>
        protected string _NetworkPath;
        /// <summary>
        /// When provided in a partial class, allows value of NetworkPath to be changed before setting.
        /// </summary>
        partial void SetNetworkPath(string oldValue, ref string newValue);
        /// <summary>
        /// When provided in a partial class, allows value of NetworkPath to be changed before returning.
        /// </summary>
        partial void GetNetworkPath(ref string result);

        /// <summary>
        /// Max length = 65535
        /// Absolute network path, for example for transcoding sattelites.
        /// </summary>
        [MaxLength(65535)]
        [StringLength(65535)]
        public string NetworkPath
        {
            get
            {
                string value = _NetworkPath;
                GetNetworkPath(ref value);
                return _NetworkPath = value;
            }

            set
            {
                string oldValue = _NetworkPath;
                SetNetworkPath(oldValue, ref value);
                if (oldValue != value)
                {
                    _NetworkPath = value;
                }
            }
        }

        /// <summary>
        /// Required, ConcurrenyToken.
        /// </summary>
        [ConcurrencyCheck]
        [Required]
        public uint RowVersion { get; set; }

        public void OnSavingChanges()
        {
            RowVersion++;
        }

        /*************************************************************************
         * Navigation properties
         *************************************************************************/

        /// <summary>
        /// Required.
        /// </summary>
        [ForeignKey("Library_Id")]
        public virtual Library Library { get; set; }
    }
}