Skip to content

Commit 8f8fd9d

Browse files
author
mvgreen
committed
Simplify access to properties 'name' and 'nameTranslated' in FetchedProduct.ProductOption and UpdatedProduct.ProductOption
1 parent 97519f0 commit 8f8fd9d

2 files changed

Lines changed: 39 additions & 33 deletions

File tree

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

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -97,60 +97,63 @@ data class UpdatedProduct(
9797
)
9898

9999
sealed class ProductOption constructor(
100-
val type: ProductOptionType? = null
100+
val type: ProductOptionType? = null,
101101
) {
102+
abstract val name: String
103+
abstract val nameTranslated: LocalizedValueMap?
104+
102105
data class SelectOption(
103-
val name: String = "",
104-
val nameTranslated: LocalizedValueMap? = null,
106+
override val name: String = "",
107+
override val nameTranslated: LocalizedValueMap? = null,
105108
val choices: List<ProductOptionChoice> = listOf(),
106109
val defaultChoice: Int = 0,
107110
val required: Boolean = false
108111
) : ProductOption(ProductOptionType.SELECT)
109112

110113
data class SizeOption(
111-
val name: String = "",
112-
val nameTranslated: LocalizedValueMap? = null,
114+
override val name: String = "",
115+
override val nameTranslated: LocalizedValueMap? = null,
113116
val choices: List<ProductOptionChoice> = listOf(),
114117
val defaultChoice: Int = 0,
115118
val required: Boolean = false
116119
) : ProductOption(ProductOptionType.SIZE)
117120

118121
data class RadioOption(
119-
val name: String = "",
120-
val nameTranslated: LocalizedValueMap? = null,
122+
override val name: String = "",
123+
override val nameTranslated: LocalizedValueMap? = null,
121124
val choices: List<ProductOptionChoice> = listOf(),
122125
val defaultChoice: Int = 0,
123126
val required: Boolean = false
124127
) : ProductOption(ProductOptionType.RADIO)
125128

126129
data class CheckboxOption(
127-
val name: String = "",
128-
val nameTranslated: LocalizedValueMap? = null,
130+
override val name: String = "",
131+
override val nameTranslated: LocalizedValueMap? = null,
129132
val choices: List<ProductOptionChoice> = listOf(),
130133
val required: Boolean = false
131134
) : ProductOption(ProductOptionType.CHECKBOX)
132135

133136
data class TextFieldOption(
134-
val name: String = "",
135-
val nameTranslated: LocalizedValueMap? = null,
137+
override val name: String = "",
138+
override val nameTranslated: LocalizedValueMap? = null,
136139
val required: Boolean = false
137140
) : ProductOption(ProductOptionType.TEXTFIELD)
138141

139142
data class TextAreaOption(
140-
val name: String = "",
141-
val nameTranslated: LocalizedValueMap? = null,
143+
override val name: String = "",
144+
override val nameTranslated: LocalizedValueMap? = null,
142145
val required: Boolean = false
143146
) : ProductOption(ProductOptionType.TEXTAREA)
144147

145148
data class DateOption(
146-
val name: String = "",
147-
val nameTranslated: LocalizedValueMap? = null,
149+
override val name: String = "",
150+
override val nameTranslated: LocalizedValueMap? = null,
148151
val required: Boolean = false
149152
) : ProductOption(ProductOptionType.DATE)
150153

151154
data class FilesOption(
152-
val name: String = "",
153-
val nameTranslated: LocalizedValueMap? = null,
155+
override val name: String = "",
156+
override val nameTranslated: LocalizedValueMap? = null,
154157
val required: Boolean = false
155158
) : ProductOption(ProductOptionType.FILES)
156159

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

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -156,58 +156,61 @@ data class FetchedProduct(
156156
val type: ProductOptionType? = null
157157
) {
158158

159+
abstract val name: String
160+
abstract val nameTranslated: LocalizedValueMap?
161+
159162
data class SelectOption(
160-
val name: String = "",
161-
val nameTranslated: LocalizedValueMap? = null,
163+
override val name: String = "",
164+
override val nameTranslated: LocalizedValueMap? = null,
162165
val choices: List<ProductOptionChoice> = listOf(),
163166
val defaultChoice: Int = 0,
164167
val required: Boolean = false
165168
) : ProductOption(ProductOptionType.SELECT)
166169

167170
data class SizeOption(
168-
val name: String = "",
169-
val nameTranslated: LocalizedValueMap? = null,
171+
override val name: String = "",
172+
override val nameTranslated: LocalizedValueMap? = null,
170173
val choices: List<ProductOptionChoice> = listOf(),
171174
val defaultChoice: Int = 0,
172175
val required: Boolean = false
173176
) : ProductOption(ProductOptionType.SIZE)
174177

175178
data class RadioOption(
176-
val name: String = "",
177-
val nameTranslated: LocalizedValueMap? = null,
179+
override val name: String = "",
180+
override val nameTranslated: LocalizedValueMap? = null,
178181
val choices: List<ProductOptionChoice> = listOf(),
179182
val defaultChoice: Int = 0,
180183
val required: Boolean = false
181184
) : ProductOption(ProductOptionType.RADIO)
182185

183186
data class CheckboxOption(
184-
val name: String = "",
185-
val nameTranslated: LocalizedValueMap? = null,
187+
override val name: String = "",
188+
override val nameTranslated: LocalizedValueMap? = null,
186189
val choices: List<ProductOptionChoice> = listOf(),
187190
val required: Boolean = false
188191
) : ProductOption(ProductOptionType.CHECKBOX)
189192

190193
data class TextFieldOption(
191-
val name: String = "",
192-
val nameTranslated: LocalizedValueMap? = null,
194+
override val name: String = "",
195+
override val nameTranslated: LocalizedValueMap? = null,
193196
val required: Boolean = false
194197
) : ProductOption(ProductOptionType.TEXTFIELD)
195198

196199
data class TextAreaOption(
197-
val name: String = "",
198-
val nameTranslated: LocalizedValueMap? = null,
200+
override val name: String = "",
201+
override val nameTranslated: LocalizedValueMap? = null,
199202
val required: Boolean = false
200203
) : ProductOption(ProductOptionType.TEXTAREA)
201204

202205
data class DateOption(
203-
val name: String = "",
204-
val nameTranslated: LocalizedValueMap? = null,
206+
override val name: String = "",
207+
override val nameTranslated: LocalizedValueMap? = null,
205208
val required: Boolean = false
206209
) : ProductOption(ProductOptionType.DATE)
207210

208211
data class FilesOption(
209-
val name: String = "",
210-
val nameTranslated: LocalizedValueMap? = null,
212+
override val name: String = "",
213+
override val nameTranslated: LocalizedValueMap? = null,
211214
val required: Boolean = false
212215
) : ProductOption(ProductOptionType.FILES)
213216
}

0 commit comments

Comments
 (0)