LandingPageStepConfig.java
11.7 KB
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
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
// landingpage/entity/LandingPageStepConfig.java
package com.aigeo.landingpage.entity;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;;
import java.time.LocalDateTime;
@Entity
@Table(name = "ai_landing_page_step_configs")
public class LandingPageStepConfig {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "project_id", nullable = false, unique = true)
private Integer projectId;
// Step 1: 目标用户
@Column(name = "target_audience_desc")
private String targetAudienceDesc;
@Column(name = "user_pain_points")
private String userPainPoints;
@Column(name = "user_expectations")
private String userExpectations;
@Column(name = "age_groups")
private String ageGroups;
@Enumerated(EnumType.STRING)
@Column(name = "gender_preference")
private GenderPreference genderPreference;
@Column(name = "behavior_characteristics")
private String behaviorCharacteristics;
@Column(name = "decision_making_styles")
private String decisionMakingStyles;
// Step 2: 落地页目标
@Column(name = "industry_primary")
private String industryPrimary;
@Column(name = "industry_secondary")
private String industrySecondary;
@Column(name = "industry_tertiary")
private String industryTertiary;
@Column(name = "marketing_goal")
private String marketingGoal;
// Step 3: 风格与配色
@Column(name = "design_style")
private String designStyle;
@Column(name = "primary_color")
private String primaryColor;
@Column(name = "accent_color")
private String accentColor;
@Column(name = "template_id")
private Integer templateId;
// Step 4: 核心卖点
@Column(name = "unique_value_proposition")
private String uniqueValueProposition;
@Column(name = "core_advantages")
private String coreAdvantages;
@Column(name = "primary_keyword")
private String primaryKeyword;
@Column(name = "secondary_keywords")
private String secondaryKeywords;
// Step 5: 页面内容
@Enumerated(EnumType.STRING)
@Column(name = "content_generation_type")
private ContentGenerationType contentGenerationType;
@Column(name = "company_name")
private String companyName;
@Column(name = "brand_name")
private String brandName;
@Column(name = "company_description")
private String companyDescription;
@Column(name = "video_url")
private String videoUrl;
@Column(name = "logo_file_id")
private Integer logoFileId;
@Column(name = "contact_info")
private String contactInfo;
@Column(name = "social_media_links")
private String socialMediaLinks;
// Step 6: CTA
@Column(name = "primary_cta_text")
private String primaryCtaText;
@Column(name = "secondary_cta_texts")
private String secondaryCtaTexts;
// Step 7: 信任元素
@Column(name = "testimonials")
private String testimonials;
@Column(name = "social_proofs")
private String socialProofs;
// Step 8: 表单字段
@Column(name = "form_fields")
private String formFields;
// Step 9: 生成与部署
@Column(name = "page_title")
private String pageTitle;
@Column(name = "page_description")
private String pageDescription;
@Column(name = "ga_tracking_code")
private String gaTrackingCode;
@Enumerated(EnumType.STRING)
@Column(name = "deployment_method")
private DeploymentMethod deploymentMethod;
@Column(name = "deployment_config")
private String deploymentConfig;
@Column(name = "pricing_plan")
private String pricingPlan;
@Column(name = "updated_at")
private LocalDateTime updatedAt;
// Constructors
public LandingPageStepConfig() {}
// Getters and Setters
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getProjectId() {
return projectId;
}
public void setProjectId(Integer projectId) {
this.projectId = projectId;
}
public String getTargetAudienceDesc() {
return targetAudienceDesc;
}
public void setTargetAudienceDesc(String targetAudienceDesc) {
this.targetAudienceDesc = targetAudienceDesc;
}
public String getUserPainPoints() {
return userPainPoints;
}
public void setUserPainPoints(String userPainPoints) {
this.userPainPoints = userPainPoints;
}
public String getUserExpectations() {
return userExpectations;
}
public void setUserExpectations(String userExpectations) {
this.userExpectations = userExpectations;
}
public String getAgeGroups() {
return ageGroups;
}
public void setAgeGroups(String ageGroups) {
this.ageGroups = ageGroups;
}
public GenderPreference getGenderPreference() {
return genderPreference;
}
public void setGenderPreference(GenderPreference genderPreference) {
this.genderPreference = genderPreference;
}
public String getBehaviorCharacteristics() {
return behaviorCharacteristics;
}
public void setBehaviorCharacteristics(String behaviorCharacteristics) {
this.behaviorCharacteristics = behaviorCharacteristics;
}
public String getDecisionMakingStyles() {
return decisionMakingStyles;
}
public void setDecisionMakingStyles(String decisionMakingStyles) {
this.decisionMakingStyles = decisionMakingStyles;
}
public String getIndustryPrimary() {
return industryPrimary;
}
public void setIndustryPrimary(String industryPrimary) {
this.industryPrimary = industryPrimary;
}
public String getIndustrySecondary() {
return industrySecondary;
}
public void setIndustrySecondary(String industrySecondary) {
this.industrySecondary = industrySecondary;
}
public String getIndustryTertiary() {
return industryTertiary;
}
public void setIndustryTertiary(String industryTertiary) {
this.industryTertiary = industryTertiary;
}
public String getMarketingGoal() {
return marketingGoal;
}
public void setMarketingGoal(String marketingGoal) {
this.marketingGoal = marketingGoal;
}
public String getDesignStyle() {
return designStyle;
}
public void setDesignStyle(String designStyle) {
this.designStyle = designStyle;
}
public String getPrimaryColor() {
return primaryColor;
}
public void setPrimaryColor(String primaryColor) {
this.primaryColor = primaryColor;
}
public String getAccentColor() {
return accentColor;
}
public void setAccentColor(String accentColor) {
this.accentColor = accentColor;
}
public Integer getTemplateId() {
return templateId;
}
public void setTemplateId(Integer templateId) {
this.templateId = templateId;
}
public String getUniqueValueProposition() {
return uniqueValueProposition;
}
public void setUniqueValueProposition(String uniqueValueProposition) {
this.uniqueValueProposition = uniqueValueProposition;
}
public String getCoreAdvantages() {
return coreAdvantages;
}
public void setCoreAdvantages(String coreAdvantages) {
this.coreAdvantages = coreAdvantages;
}
public String getPrimaryKeyword() {
return primaryKeyword;
}
public void setPrimaryKeyword(String primaryKeyword) {
this.primaryKeyword = primaryKeyword;
}
public String getSecondaryKeywords() {
return secondaryKeywords;
}
public void setSecondaryKeywords(String secondaryKeywords) {
this.secondaryKeywords = secondaryKeywords;
}
public ContentGenerationType getContentGenerationType() {
return contentGenerationType;
}
public void setContentGenerationType(ContentGenerationType contentGenerationType) {
this.contentGenerationType = contentGenerationType;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public String getCompanyDescription() {
return companyDescription;
}
public void setCompanyDescription(String companyDescription) {
this.companyDescription = companyDescription;
}
public String getVideoUrl() {
return videoUrl;
}
public void setVideoUrl(String videoUrl) {
this.videoUrl = videoUrl;
}
public Integer getLogoFileId() {
return logoFileId;
}
public void setLogoFileId(Integer logoFileId) {
this.logoFileId = logoFileId;
}
public String getContactInfo() {
return contactInfo;
}
public void setContactInfo(String contactInfo) {
this.contactInfo = contactInfo;
}
public String getSocialMediaLinks() {
return socialMediaLinks;
}
public void setSocialMediaLinks(String socialMediaLinks) {
this.socialMediaLinks = socialMediaLinks;
}
public String getPrimaryCtaText() {
return primaryCtaText;
}
public void setPrimaryCtaText(String primaryCtaText) {
this.primaryCtaText = primaryCtaText;
}
public String getSecondaryCtaTexts() {
return secondaryCtaTexts;
}
public void setSecondaryCtaTexts(String secondaryCtaTexts) {
this.secondaryCtaTexts = secondaryCtaTexts;
}
public String getTestimonials() {
return testimonials;
}
public void setTestimonials(String testimonials) {
this.testimonials = testimonials;
}
public String getSocialProofs() {
return socialProofs;
}
public void setSocialProofs(String socialProofs) {
this.socialProofs = socialProofs;
}
public String getFormFields() {
return formFields;
}
public void setFormFields(String formFields) {
this.formFields = formFields;
}
public String getPageTitle() {
return pageTitle;
}
public void setPageTitle(String pageTitle) {
this.pageTitle = pageTitle;
}
public String getPageDescription() {
return pageDescription;
}
public void setPageDescription(String pageDescription) {
this.pageDescription = pageDescription;
}
public String getGaTrackingCode() {
return gaTrackingCode;
}
public void setGaTrackingCode(String gaTrackingCode) {
this.gaTrackingCode = gaTrackingCode;
}
public DeploymentMethod getDeploymentMethod() {
return deploymentMethod;
}
public void setDeploymentMethod(DeploymentMethod deploymentMethod) {
this.deploymentMethod = deploymentMethod;
}
public String getDeploymentConfig() {
return deploymentConfig;
}
public void setDeploymentConfig(String deploymentConfig) {
this.deploymentConfig = deploymentConfig;
}
public String getPricingPlan() {
return pricingPlan;
}
public void setPricingPlan(String pricingPlan) {
this.pricingPlan = pricingPlan;
}
public LocalDateTime getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(LocalDateTime updatedAt) {
this.updatedAt = updatedAt;
}
}