Skip to content

Commit c7f644f

Browse files
author
mvgreen
committed
Make property 'required' common to all subclasses of ProductOption
1 parent d3b3c23 commit c7f644f

2 files changed

Lines changed: 18 additions & 16 deletions

File tree

src/main/kotlin/com/ecwid/apiclient/v3/dto/product/request/UpdatedProduct.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ data class UpdatedProduct(
101101
) {
102102
abstract val name: String
103103
abstract val nameTranslated: LocalizedValueMap?
104+
abstract val required: Boolean
104105

105106
interface ChoiceBased {
106107
val choices: List<ProductOptionChoice>
@@ -112,55 +113,55 @@ data class UpdatedProduct(
112113
override val nameTranslated: LocalizedValueMap? = null,
113114
override val choices: List<ProductOptionChoice> = listOf(),
114115
override val defaultChoice: Int = 0,
115-
val required: Boolean = false
116+
override val required: Boolean = false
116117
) : ProductOption(ProductOptionType.SELECT), ChoiceBased
117118

118119
data class SizeOption(
119120
override val name: String = "",
120121
override val nameTranslated: LocalizedValueMap? = null,
121122
override val choices: List<ProductOptionChoice> = listOf(),
122123
override val defaultChoice: Int = 0,
123-
val required: Boolean = false
124+
override val required: Boolean = false
124125
) : ProductOption(ProductOptionType.SIZE), ChoiceBased
125126

126127
data class RadioOption(
127128
override val name: String = "",
128129
override val nameTranslated: LocalizedValueMap? = null,
129130
override val choices: List<ProductOptionChoice> = listOf(),
130131
override val defaultChoice: Int = 0,
131-
val required: Boolean = false
132+
override val required: Boolean = false
132133
) : ProductOption(ProductOptionType.RADIO), ChoiceBased
133134

134135
data class CheckboxOption(
135136
override val name: String = "",
136137
override val nameTranslated: LocalizedValueMap? = null,
137138
override val choices: List<ProductOptionChoice> = listOf(),
138139
override val defaultChoice: Int? = null,
139-
val required: Boolean = false
140+
override val required: Boolean = false
140141
) : ProductOption(ProductOptionType.CHECKBOX), ChoiceBased
141142

142143
data class TextFieldOption(
143144
override val name: String = "",
144145
override val nameTranslated: LocalizedValueMap? = null,
145-
val required: Boolean = false
146+
override val required: Boolean = false
146147
) : ProductOption(ProductOptionType.TEXTFIELD)
147148

148149
data class TextAreaOption(
149150
override val name: String = "",
150151
override val nameTranslated: LocalizedValueMap? = null,
151-
val required: Boolean = false
152+
override val required: Boolean = false
152153
) : ProductOption(ProductOptionType.TEXTAREA)
153154

154155
data class DateOption(
155156
override val name: String = "",
156157
override val nameTranslated: LocalizedValueMap? = null,
157-
val required: Boolean = false
158+
override val required: Boolean = false
158159
) : ProductOption(ProductOptionType.DATE)
159160

160161
data class FilesOption(
161162
override val name: String = "",
162163
override val nameTranslated: LocalizedValueMap? = null,
163-
val required: Boolean = false
164+
override val required: Boolean = false
164165
) : ProductOption(ProductOptionType.FILES)
165166

166167
companion object {

src/main/kotlin/com/ecwid/apiclient/v3/dto/product/result/FetchedProduct.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ data class FetchedProduct(
158158

159159
abstract val name: String
160160
abstract val nameTranslated: LocalizedValueMap?
161+
abstract val required: Boolean
161162

162163
interface ChoiceBased {
163164
val choices: List<ProductOptionChoice>
@@ -169,55 +170,55 @@ data class FetchedProduct(
169170
override val nameTranslated: LocalizedValueMap? = null,
170171
override val choices: List<ProductOptionChoice> = listOf(),
171172
override val defaultChoice: Int = 0,
172-
val required: Boolean = false
173+
override val required: Boolean = false
173174
) : ProductOption(ProductOptionType.SELECT), ChoiceBased
174175

175176
data class SizeOption(
176177
override val name: String = "",
177178
override val nameTranslated: LocalizedValueMap? = null,
178179
override val choices: List<ProductOptionChoice> = listOf(),
179180
override val defaultChoice: Int = 0,
180-
val required: Boolean = false
181+
override val required: Boolean = false
181182
) : ProductOption(ProductOptionType.SIZE), ChoiceBased
182183

183184
data class RadioOption(
184185
override val name: String = "",
185186
override val nameTranslated: LocalizedValueMap? = null,
186187
override val choices: List<ProductOptionChoice> = listOf(),
187188
override val defaultChoice: Int = 0,
188-
val required: Boolean = false
189+
override val required: Boolean = false
189190
) : ProductOption(ProductOptionType.RADIO), ChoiceBased
190191

191192
data class CheckboxOption(
192193
override val name: String = "",
193194
override val nameTranslated: LocalizedValueMap? = null,
194195
override val choices: List<ProductOptionChoice> = listOf(),
195196
override val defaultChoice: Int? = null,
196-
val required: Boolean = false
197+
override val required: Boolean = false
197198
) : ProductOption(ProductOptionType.CHECKBOX), ChoiceBased
198199

199200
data class TextFieldOption(
200201
override val name: String = "",
201202
override val nameTranslated: LocalizedValueMap? = null,
202-
val required: Boolean = false
203+
override val required: Boolean = false
203204
) : ProductOption(ProductOptionType.TEXTFIELD)
204205

205206
data class TextAreaOption(
206207
override val name: String = "",
207208
override val nameTranslated: LocalizedValueMap? = null,
208-
val required: Boolean = false
209+
override val required: Boolean = false
209210
) : ProductOption(ProductOptionType.TEXTAREA)
210211

211212
data class DateOption(
212213
override val name: String = "",
213214
override val nameTranslated: LocalizedValueMap? = null,
214-
val required: Boolean = false
215+
override val required: Boolean = false
215216
) : ProductOption(ProductOptionType.DATE)
216217

217218
data class FilesOption(
218219
override val name: String = "",
219220
override val nameTranslated: LocalizedValueMap? = null,
220-
val required: Boolean = false
221+
override val required: Boolean = false
221222
) : ProductOption(ProductOptionType.FILES)
222223
}
223224

0 commit comments

Comments
 (0)