Generate question bank domain model from JDL

This commit is contained in:
jieun committed 2026-10-20 18:46:29 +09:00
1 parent 1d97cc4e31
commit 1d74d8f04b
160 files changed
+26900 -2

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
{
"annotations": {
"changelogDate": "20261020093324"
},
"applications": ["*"],
"dto": "mapstruct",
"fields": [
{
"fieldName": "optionKey",
"fieldType": "OptionKey",
"fieldValidateRules": ["required"],
"fieldValues": "A,B,C,D"
},
{
"fieldName": "content",
"fieldType": "String",
"fieldValidateRules": ["required", "maxlength"],
"fieldValidateRulesMaxlength": "500"
},
{
"fieldName": "displayOrder",
"fieldType": "Integer",
"fieldValidateRules": ["required", "min", "max"],
"fieldValidateRulesMax": "4",
"fieldValidateRulesMin": "1"
},
{
"fieldName": "correct",
"fieldType": "Boolean",
"fieldValidateRules": ["required"]
}
],
"name": "Choice",
"relationships": [
{
"otherEntityName": "question",
"otherEntityRelationshipName": "choice",
"relationshipName": "question",
"relationshipSide": "right",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
}
],
"searchEngine": "no",
"service": "serviceClass"
}
+62
View File
@@ -0,0 +1,62 @@
{
"annotations": {
"changelogDate": "20261020093326"
},
"applications": ["*"],
"dto": "mapstruct",
"fields": [
{
"fieldName": "questionTextSnapshot",
"fieldType": "String",
"fieldValidateRules": ["required", "maxlength"],
"fieldValidateRulesMaxlength": "2000"
},
{
"fieldName": "explanationSnapshot",
"fieldType": "String",
"fieldValidateRules": ["maxlength"],
"fieldValidateRulesMaxlength": "2000"
},
{
"fieldName": "selectedOption",
"fieldType": "OptionKey",
"fieldValues": "A,B,C,D"
},
{
"fieldName": "selectedContentSnapshot",
"fieldType": "String",
"fieldValidateRules": ["maxlength"],
"fieldValidateRulesMaxlength": "500"
},
{
"fieldName": "correct",
"fieldType": "Boolean"
},
{
"fieldName": "awardedPoints",
"fieldType": "Integer",
"fieldValidateRules": ["min"],
"fieldValidateRulesMin": "0"
}
],
"name": "ExamAnswer",
"relationships": [
{
"otherEntityName": "question",
"relationshipName": "question",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityName": "examAttempt",
"otherEntityRelationshipName": "answer",
"relationshipName": "attempt",
"relationshipSide": "right",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
}
],
"searchEngine": "no",
"service": "serviceClass"
}
+60
View File
@@ -0,0 +1,60 @@
{
"annotations": {
"changelogDate": "20261020093325"
},
"applications": ["*"],
"dto": "mapstruct",
"fields": [
{
"fieldName": "startedAt",
"fieldType": "Instant",
"fieldValidateRules": ["required"]
},
{
"fieldName": "submittedAt",
"fieldType": "Instant"
},
{
"fieldName": "status",
"fieldType": "AttemptStatus",
"fieldValidateRules": ["required"],
"fieldValues": "IN_PROGRESS,SUBMITTED"
},
{
"fieldName": "score",
"fieldType": "Integer",
"fieldValidateRules": ["min"],
"fieldValidateRulesMin": "0"
}
],
"name": "ExamAttempt",
"pagination": "pagination",
"relationships": [
{
"otherEntityName": "examAnswer",
"otherEntityRelationshipName": "attempt",
"relationshipName": "answer",
"relationshipSide": "left",
"relationshipType": "one-to-many"
},
{
"otherEntityField": "name",
"otherEntityName": "subject",
"relationshipName": "subject",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
},
{
"otherEntityField": "login",
"otherEntityName": "user",
"relationshipName": "user",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required",
"relationshipWithBuiltInEntity": true
}
],
"searchEngine": "no",
"service": "serviceClass"
}
+48
View File
@@ -0,0 +1,48 @@
{
"annotations": {
"changelogDate": "20261020093323"
},
"applications": ["*"],
"dto": "mapstruct",
"fields": [
{
"fieldName": "prompt",
"fieldType": "String",
"fieldValidateRules": ["required", "minlength", "maxlength"],
"fieldValidateRulesMaxlength": "2000",
"fieldValidateRulesMinlength": "5"
},
{
"fieldName": "explanation",
"fieldType": "String",
"fieldValidateRules": ["maxlength"],
"fieldValidateRulesMaxlength": "2000"
},
{
"fieldName": "active",
"fieldType": "Boolean",
"fieldValidateRules": ["required"]
}
],
"name": "Question",
"pagination": "pagination",
"relationships": [
{
"otherEntityName": "choice",
"otherEntityRelationshipName": "question",
"relationshipName": "choice",
"relationshipSide": "left",
"relationshipType": "one-to-many"
},
{
"otherEntityField": "name",
"otherEntityName": "subject",
"relationshipName": "subject",
"relationshipSide": "left",
"relationshipType": "many-to-one",
"relationshipValidateRules": "required"
}
],
"searchEngine": "no",
"service": "serviceClass"
}
+32
View File
@@ -0,0 +1,32 @@
{
"annotations": {
"changelogDate": "20261020093322"
},
"applications": ["*"],
"dto": "mapstruct",
"fields": [
{
"fieldName": "name",
"fieldType": "String",
"fieldValidateRules": ["required", "minlength", "maxlength"],
"fieldValidateRulesMaxlength": "100",
"fieldValidateRulesMinlength": "2"
},
{
"fieldName": "description",
"fieldType": "String",
"fieldValidateRules": ["maxlength"],
"fieldValidateRulesMaxlength": "1000"
},
{
"fieldName": "active",
"fieldType": "Boolean",
"fieldValidateRules": ["required"]
}
],
"name": "Subject",
"pagination": "pagination",
"relationships": [],
"searchEngine": "no",
"service": "serviceClass"
}