@universis/dining
Version:
Universis api for dining
535 lines (534 loc) • 15.2 kB
JSON
{
"$schema": "https://themost-framework.github.io/themost/models/2018/2/schema.json",
"@id": "https://universis.io/schemas/DiningRequestAction",
"name": "DiningRequestAction",
"title": "DiningRequestAction",
"hidden": false,
"sealed": false,
"abstract": false,
"inherits": "StudentRequestAction",
"version": "2.1",
"classPath": "./models/DiningRequestAction",
"fields": [
{
"name": "requestNumber",
"type": "Text",
"size": 36,
"nullable": false,
"value": "javascript:return this.code;"
},
{
"name": "militaryActive",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "militarySchool",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "studentHouseResident",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "sameDegreeHolder",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "foreignScholarStudent",
"type": "Boolean",
"nullable": false,
"value": "javascript:return false;"
},
{
"name": "inscriptionModeTag",
"type": "DiningInscriptionModeTag",
"nullable": true
},
{
"name": "lessThan25yrs",
"type": "Boolean",
"nullable": false,
"value": "javascript:return false;"
},
{
"name": "institutionOrClubLocationSameAsStudentPermanentResidence",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "studentDisabledPerson",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "studentOrphan",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "numberOfStudyingSiblings",
"type": "Number",
"nullable": true
},
{
"name": "maritalStatus",
"title": "Οικογενειακή κατάσταση",
"description": "Οικογενειακή κατάσταση",
"type": "FamilyStatus",
"expandable": true,
"nullable": true
},
{
"name": "noOfChildren",
"type": "Number",
"nullable": true
},
{
"name": "guardianType",
"title": "Τύπος Κηδεμόνα",
"description": "Τύπος Κηδεμόνα",
"type": "GuardianType",
"expandable": true,
"nullable": true
},
{
"name": "institutionOrClubLocationSameAsGuardianPermanentResidence",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "guardianNoOfChildren",
"type": "Number",
"nullable": true
},
{
"name": "studentReceivesUnemploymentBenefit",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "childOfVictimOfTerrorism",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "studentSubmitsTaxReportInGreece",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "studentGuardianSubmitsTaxReportInGreece",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "studentAfm",
"type": "Text",
"nullable": true
},
{
"name": "studentTotalIncome",
"type": "Number",
"nullable": true
},
{
"name": "studentSpouseReceivesUnemploymentBenefit",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "studentSpouseAfm",
"type": "Text",
"nullable": true
},
{
"name": "studentSpouseTotalIncome",
"type": "Number",
"nullable": true
},
{
"name": "studentGuardianReceivesUnemploymentBenefit",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "cyprusStudent",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "foreignStudentOrChildOfGreekExpatriate",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "studentGuardianAfm",
"type": "Text",
"nullable": true
},
{
"name": "studentGuardianTotalIncome",
"type": "Number",
"nullable": true
},
{
"name": "studentParentsFileJointTaxReport",
"type": "Boolean",
"nullable": true,
"value": "javascript:return false;"
},
{
"name": "specialCategorySelfParticipant",
"type": "Boolean",
"nullable": true
},
{
"name": "allInformationSubmittedIsTrueConfirmation",
"type": "Boolean",
"nullable": false,
"value": "javascript:return false;"
},
{
"@id": "http://schema.org/additionalType",
"name": "additionalType",
"readonly": true,
"nullable": false,
"value": "javascript:return this.model.name;"
},
{
"@id": "http://schema.org/actionStatus",
"name": "actionStatus",
"title": "actionStatus",
"description": "Indicates the current disposition of the Action.",
"type": "ActionStatusType",
"value": "javascript:return { alternateName:'PotentialActionStatus' };"
},
{
"name": "effectiveStatus",
"title": "effectiveStatus",
"description": "Indicates the effective status of a potential action.",
"type": "DiningRequestEffectiveStatusType",
"nullable": true
},
{
"@id": "https://universis.io/diningRequestEvent",
"name": "diningRequestEvent",
"title": "dining Request event",
"description": "dining Request event",
"type": "DiningRequestEvent",
"nullable": true,
"editable": false
},
{
"name": "studentDiningCard",
"title": "student dining card",
"description": "student dining card",
"type": "StudentDiningCard",
"many": true,
"expandable": true,
"mapping": {
"parentModel": "DiningRequestAction",
"parentField": "id",
"childModel": "StudentDiningCard",
"childField": "action",
"cascade": "delete",
"associationType": "association"
}
},
{
"@id": "https://universis.io/agree",
"name": "agree",
"title": "Agreement",
"description": "Agree with terms and conditions",
"type": "Boolean",
"nullable": false,
"value": "javascript:return 1;"
},
{
"@id": "http://schema.org/agent",
"name": "agent",
"title": "agent",
"description": "The direct performer or driver of the action (animate or inanimate). e.g. <em>John</em> wrote a book.",
"type": "User"
},
{
"@id": "https://themost.io/schemas/attachments",
"name": "attachments",
"type": "Attachment",
"mapping": {
"cascade": "delete",
"associationType": "junction",
"associationObjectField": "action",
"associationValueField": "attachment",
"associationAdapter": "DiningRequestActionAttachments",
"privileges": [
{
"mask": 15,
"type": "global"
},
{
"mask": 15,
"type": "global",
"account": "Administrators"
},
{
"mask": 15,
"type": "global",
"account": "DiningAdministrators"
},
{
"mask": 15,
"type": "self",
"filter": "action/student/department eq departments()",
"account": "DiningUsers"
},
{
"mask": 1,
"type": "self",
"filter": "action/owner eq me()",
"account": "Students"
},
{
"mask": 14,
"type": "self",
"account": "Students",
"filter": "action/owner eq me() and action/actionStatus/alternateName eq 'PotentialActionStatus'"
}
]
}
},
{
"name": "messages",
"title": "Messages",
"type": "Message",
"many": true,
"mapping": {
"parentModel": "DiningRequestAction",
"childModel": "DiningRequestActionMessage",
"parentField": "id",
"childField": "action",
"cascade": "delete",
"associationType": "association"
}
},
{
"name": "studentHasManyChildren",
"type": "Boolean",
"value": "javascript:return false;"
},
{
"name": "studentFamilyHasManyChildren",
"type": "Boolean",
"value": "javascript:return false;"
},
{
"name": "studyingSiblingsHaveOtherPermanentResidence",
"type": "Boolean",
"value": "javascript:return false;"
},
{
"name": "childOfUnmarriedMother",
"type": "Boolean",
"value": "javascript:return false;"
},
{
"name": "studentHasDisabledSiblings",
"type": "Boolean",
"value": "javascript:return false;"
},
{
"name": "guardianFinancialAttributes",
"title": "guardianFinancialAttributes",
"type": "GuardianFinancialAttribute",
"many": true,
"nested": true,
"mapping": {
"parentModel": "DiningRequestAction",
"childModel": "GuardianFinancialAttribute",
"parentField": "id",
"childField": "diningRequest",
"cascade": "delete",
"associationType": "association"
}
},
{
"name": "childrenFinancialAttributes",
"title": "childrenFinancialAttributes",
"type": "ChildFinancialAttribute",
"many": true,
"nested": true,
"mapping": {
"parentModel": "DiningRequestAction",
"childModel": "ChildFinancialAttribute",
"parentField": "id",
"childField": "diningRequest",
"cascade": "delete",
"associationType": "association"
}
},
{
"name": "mobilityProgramStudent",
"type": "Boolean",
"value": "javascript:return false;"
},
{
"name": "siblingFinancialAttributes",
"title": "siblingFinancialAttributes",
"type": "SiblingFinancialAttribute",
"many": true,
"nested": true,
"mapping": {
"parentModel": "DiningRequestAction",
"childModel": "SiblingFinancialAttribute",
"parentField": "id",
"childField": "diningRequest",
"cascade": "delete",
"associationType": "association"
}
},
{
"name": "guardianNoOfChildrenLessThan18yrs",
"type": "Number",
"nullable": true
},
{
"@id": "http://schema.org/review",
"name": "review",
"title": "A review for this item",
"type": "Review",
"multiplicity": "ZeroOrOne",
"many": true,
"mapping": {
"associationType": "association",
"cascade": "delete",
"parentModel": "DiningRequestAction",
"parentField": "id",
"childModel": "DiningRequestActionReview",
"childField": "itemReviewed",
"privileges": [
{
"mask": 15,
"type": "global"
},
{
"mask": 15,
"type": "global",
"account": "Administrators"
},
{
"mask": 15,
"type": "global",
"account": "DiningAdministrators"
}
]
}
},
{
"name": "category",
"title": "Κατηγορία",
"description": "Κατηγορία ειδικής αίτησης σίτισης",
"type": "DiningRequestCategory",
"nullable": true
},
{
"name": "studentConsent",
"type": "Boolean",
"nullable": true,
"editable": false
}
],
"privileges": [
{
"mask": 15,
"type": "global"
},
{
"mask": 15,
"type": "global",
"account": "Administrators"
},
{
"mask": 15,
"type": "global",
"account": "DiningAdministrators"
},
{
"mask": 15,
"type": "self",
"filter": "student/department eq departments()",
"account": "DiningUsers"
},
{
"mask": 1,
"type": "self",
"filter": "owner eq me()",
"account": "Students"
},
{
"mask": 2,
"type": "self",
"filter": "owner eq me() and agent eq null and actionStatus/alternateName eq 'PotentialActionStatus'",
"account": "Students"
},
{
"mask": 4,
"type": "self",
"when": "owner eq me() and agent eq null and actionStatus/alternateName eq 'PotentialActionStatus'",
"filter": "owner eq me() and agent eq null and (actionStatus/alternateName eq 'PotentialActionStatus' or actionStatus/alternateName eq 'ActiveActionStatus')",
"account": "Students"
}
],
"constraints": [
{
"type": "unique",
"description": "Request number must be unique across different records",
"fields": [
"requestNumber"
]
},
{
"type": "unique",
"description": "Request must be unique for student and event",
"fields": [
"student", "diningRequestEvent"
]
}
],
"eventListeners": [
{
"type": "@themost/data/previous-state-listener"
},
{
"type": "./listeners/ValidateActionListener"
},
{
"type": "./listeners/GenerateRequestNumberListener"
},
{
"type": "./listeners/OnActionCompleteListener"
},
{
"type": "./listeners/SendEmailAfterActionStatusChangeListener"
}
]
}