From 62c40e46e966e9c592db007e5afba259d71c7d5e Mon Sep 17 00:00:00 2001 From: semalaiappan <34613894+semalaiappan@users.noreply.github.com> Date: Mon, 23 Oct 2023 13:24:57 -0500 Subject: [PATCH] [ODS-6044] Integrate latest 5.0 Data Standard Work - Set 1 (#856) --- .../5.0.0/Artifacts/Metadata/ApiModel.json | 3700 +++++++++++++---- .../Metadata/DatabaseViews.generated.json | 2 +- .../MsSql/Structure/Ods/0020-Tables.sql | 168 +- .../MsSql/Structure/Ods/0030-ForeignKeys.sql | 147 +- .../Structure/Ods/0050-ExtendedProperties.sql | 166 +- .../0200-CreateTrackedChangeTables.sql | 16 +- ...eTriggersForChangeVersionAndKeyChanges.sql | 10 +- .../0220-CreateTriggersForDeleteTracking.sql | 58 +- .../PgSql/Structure/Ods/0020-Tables.sql | 123 +- .../PgSql/Structure/Ods/0030-ForeignKeys.sql | 141 +- .../Structure/Ods/0050-ExtendedProperties.sql | 119 +- .../0200-CreateTrackedChangeTables.sql | 16 +- ...eTriggersForChangeVersionAndKeyChanges.sql | 10 +- .../0220-CreateTriggersForDeleteTracking.sql | 50 +- .../5.0.0/Artifacts/Schemas/Ed-Fi-Core.xsd | 156 +- .../Schemas/Interchange-Descriptors.xsd | 2 + .../Artifacts/Schemas/SchemaAnnotation.xsd | 2 + Application/EdFi.Ods.Standard/versionmap.json | 4 +- ...Deletes Test Suite.postman_collection.json | 8 +- ...AuthorizationTests.postman_collection.json | 20 +- ...nership Test Suite.postman_collection.json | 11 +- ...sourceClaimMetadata_generated.approved.sql | 18 + ...sourceClaimMetadata_generated.approved.sql | 10 + ...trollers_Controllers.generated.approved.cs | 76 +- ...tityOrmMappings.generated.hbm.approved.xml | 255 +- ...pingsForQueries.generated.hbm.approved.xml | 319 +- ...tityOrmMappings.generated.hbm.approved.xml | 255 +- ...pingsForQueries.generated.hbm.approved.xml | 319 +- ...ing_DatabaseMetadata.generated.approved.cs | 66 +- ...ls_Entities_Entities.generated.approved.cs | 1720 +++++++- ...s_EntitiesForQueries.generated.approved.cs | 267 +- ...ces_EntityInterfaces.generated.approved.cs | 432 +- ...Mappers_EntityMapper.generated.approved.cs | 770 +++- ...ateOrUpdatePipelines.generated.approved.cs | 12 + ....0_Requests_Requests.generated.approved.cs | 108 +- ..._Resources_Resources.generated.approved.cs | 3101 ++++++++++++-- ...tionContextProviders.generated.approved.cs | 2 + ...Tests.Should_Get_Dependencies.approved.txt | 16 + ...ould_Get_Dependencies_GraphML.approved.txt | 9 + 39 files changed, 10694 insertions(+), 1990 deletions(-) diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Metadata/ApiModel.json b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Metadata/ApiModel.json index 343e5b7f50..515fdc5226 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Metadata/ApiModel.json +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Metadata/ApiModel.json @@ -960,6 +960,14 @@ { "schema": "edfi", "name": "CourseTranscriptPartialCourseTranscriptAwards" + }, + { + "schema": "edfi", + "name": "CourseTranscriptProgram" + }, + { + "schema": "edfi", + "name": "CourseTranscriptSection" } ] }, @@ -3507,6 +3515,18 @@ } ] }, + { + "aggregateRootEntityName": { + "schema": "edfi", + "name": "SectionTypeDescriptor" + }, + "aggregateEntityNames": [ + { + "schema": "edfi", + "name": "SectionTypeDescriptor" + } + ] + }, { "aggregateRootEntityName": { "schema": "edfi", @@ -4484,6 +4504,10 @@ { "schema": "edfi", "name": "StudentSectionAssociation" + }, + { + "schema": "edfi", + "name": "StudentSectionAssociationProgram" } ] }, @@ -4575,6 +4599,18 @@ } ] }, + { + "aggregateRootEntityName": { + "schema": "edfi", + "name": "SupporterMilitaryConnectionDescriptor" + }, + "aggregateEntityNames": [ + { + "schema": "edfi", + "name": "SupporterMilitaryConnectionDescriptor" + } + ] + }, { "aggregateRootEntityName": { "schema": "edfi", @@ -9714,6 +9750,24 @@ "postgreSql": "FirstName" } }, + { + "propertyName": "GenderIdentity", + "propertyType": { + "dbType": "String", + "minLength": 0, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": true + }, + "description": "The gender the contact identifies themselves as.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "GenderIdentity", + "postgreSql": "GenderIdentity" + } + }, { "propertyName": "GenerationCodeSuffix", "propertyType": { @@ -12888,6 +12942,110 @@ "postgreSql": "CourseTranscriptPartialCourseTranscriptAwards" } }, + { + "schema": "edfi", + "name": "CourseTranscriptProgram", + "locallyDefinedProperties": [ + { + "propertyName": "CreateDate", + "propertyType": { + "dbType": "DateTime2", + "maxLength": 0, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CreateDate", + "postgreSql": "CreateDate" + } + } + ], + "identifiers": [ + { + "identifierName": "CourseTranscriptProgram_PK", + "identifyingPropertyNames": [ + "CourseAttemptResultDescriptorId", + "CourseCode", + "CourseEducationOrganizationId", + "EducationOrganizationId", + "SchoolYear", + "StudentUSI", + "TermDescriptorId", + "ProgramName", + "ProgramTypeDescriptorId" + ], + "isPrimary": true, + "isUpdatable": false, + "constraintNames": { + "sqlServer": "CourseTranscriptProgram_PK", + "postgreSql": "CourseTranscriptProgram_PK" + } + } + ], + "isAbstract": false, + "description": "The program(s) that the student participated in the context of the course.", + "tableNames": { + "sqlServer": "CourseTranscriptProgram", + "postgreSql": "CourseTranscriptProgram" + } + }, + { + "schema": "edfi", + "name": "CourseTranscriptSection", + "locallyDefinedProperties": [ + { + "propertyName": "CreateDate", + "propertyType": { + "dbType": "DateTime2", + "maxLength": 0, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CreateDate", + "postgreSql": "CreateDate" + } + } + ], + "identifiers": [ + { + "identifierName": "CourseTranscriptSection_PK", + "identifyingPropertyNames": [ + "CourseAttemptResultDescriptorId", + "CourseCode", + "CourseEducationOrganizationId", + "EducationOrganizationId", + "SchoolYear", + "StudentUSI", + "TermDescriptorId", + "LocalCourseCode", + "SchoolId", + "SectionIdentifier", + "SessionName" + ], + "isPrimary": true, + "isUpdatable": false, + "constraintNames": { + "sqlServer": "CourseTranscriptSection_PK", + "postgreSql": "CourseTranscriptSection_PK" + } + } + ], + "isAbstract": false, + "description": "The section(s) associated with the course transcript.", + "tableNames": { + "sqlServer": "CourseTranscriptSection", + "postgreSql": "CourseTranscriptSection" + } + }, { "schema": "edfi", "name": "Credential", @@ -18421,7 +18579,7 @@ "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", @@ -18860,7 +19018,7 @@ "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", @@ -19017,6 +19175,24 @@ "postgreSql": "EndDate" } }, + { + "propertyName": "GradingPeriodName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The school's descriptive name of the grading period.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" + } + }, { "propertyName": "Id", "propertyType": { @@ -19058,10 +19234,10 @@ "maxLength": 0, "precision": 10, "scale": 0, - "isNullable": false + "isNullable": true }, "description": "The sequential order of this period relative to other periods.", - "isIdentifying": true, + "isIdentifying": false, "isServerAssigned": false, "columnNames": { "sqlServer": "PeriodSequence", @@ -19092,7 +19268,7 @@ "identifierName": "GradingPeriod_PK", "identifyingPropertyNames": [ "GradingPeriodDescriptorId", - "PeriodSequence", + "GradingPeriodName", "SchoolId", "SchoolYear" ], @@ -19142,7 +19318,7 @@ } ], "isAbstract": false, - "description": "This descriptor defines the name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required.", + "description": "This descriptor defines the state's name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required.", "tableNames": { "sqlServer": "GradingPeriodDescriptor", "postgreSql": "GradingPeriodDescriptor" @@ -28420,7 +28596,7 @@ "identifyingPropertyNames": [ "EducationOrganizationId", "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" @@ -28480,7 +28656,7 @@ "identifyingPropertyNames": [ "EducationOrganizationId", "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI", @@ -28589,7 +28765,7 @@ "identifyingPropertyNames": [ "EducationOrganizationId", "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI", @@ -28638,7 +28814,7 @@ "identifyingPropertyNames": [ "EducationOrganizationId", "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI", @@ -29314,7 +29490,7 @@ } ], "isAbstract": false, - "description": "The type of education institution as classified by its primary focus.", + "description": "The type of education institution as classified by its primary focus such as Alternative, Career and Technical Education, Regular, or Special Education schools.", "tableNames": { "sqlServer": "SchoolTypeDescriptor", "postgreSql": "SchoolTypeDescriptor" @@ -30043,6 +30219,31 @@ "postgreSql": "SectionProgram" } }, + { + "schema": "edfi", + "name": "SectionTypeDescriptor", + "locallyDefinedProperties": [], + "identifiers": [ + { + "identifierName": "SectionTypeDescriptor_PK", + "identifyingPropertyNames": [ + "SectionTypeDescriptorId" + ], + "isPrimary": true, + "isUpdatable": false, + "constraintNames": { + "sqlServer": "SectionTypeDescriptor_PK", + "postgreSql": "SectionTypeDescriptor_PK" + } + } + ], + "isAbstract": false, + "description": "Specifies whether the section is for attendance only, credit only, or both.", + "tableNames": { + "sqlServer": "SectionTypeDescriptor", + "postgreSql": "SectionTypeDescriptor" + } + }, { "schema": "edfi", "name": "SeparationDescriptor", @@ -30275,7 +30476,7 @@ } ], "isAbstract": false, - "description": "A term in the school year, generally a unit of time into which courses are scheduled, instruction occurs and by which credits are awarded. Sessions may be interrupted by vacations or other events.", + "description": "A specific designated unit of time during which instruction is provided, grades are reported and academic credits are awarded to students (whenever applicable). Sessions serve as organized segments of the academic year and can be interrupted by vacations or other events.", "tableNames": { "sqlServer": "Session", "postgreSql": "Session" @@ -30357,7 +30558,7 @@ "SchoolYear", "SessionName", "GradingPeriodDescriptorId", - "PeriodSequence" + "GradingPeriodName" ], "isPrimary": true, "isUpdatable": false, @@ -30721,6 +30922,24 @@ "postgreSql": "FirstName" } }, + { + "propertyName": "GenderIdentity", + "propertyType": { + "dbType": "String", + "minLength": 0, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": true + }, + "description": "The gender the staff member identifies themselves as.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "GenderIdentity", + "postgreSql": "GenderIdentity" + } + }, { "propertyName": "GenerationCodeSuffix", "propertyType": { @@ -32678,6 +32897,24 @@ "schema": "edfi", "name": "StaffEducationOrganizationEmploymentAssociation", "locallyDefinedProperties": [ + { + "propertyName": "AnnualWage", + "propertyType": { + "dbType": "Currency", + "minLength": 0, + "maxLength": 0, + "precision": 19, + "scale": 4, + "isNullable": true + }, + "description": "Annual wage associated with the employment position being reported.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "AnnualWage", + "postgreSql": "AnnualWage" + } + }, { "propertyName": "CreateDate", "propertyType": { @@ -36729,7 +36966,7 @@ "StudentUSI", "TermDescriptorId", "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear" ], @@ -37970,7 +38207,7 @@ "identifierName": "StudentCompetencyObjective_PK", "identifyingPropertyNames": [ "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", @@ -38032,7 +38269,7 @@ "identifierName": "StudentCompetencyObjectiveGeneralStudentProgramAssociation_PK", "identifyingPropertyNames": [ "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", @@ -38087,7 +38324,7 @@ "identifierName": "StudentCompetencyObjectiveStudentSectionAssociation_PK", "identifyingPropertyNames": [ "GradingPeriodDescriptorId", - "GradingPeriodSequence", + "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", @@ -38816,6 +39053,24 @@ "postgreSql": "CreateDate" } }, + { + "propertyName": "GenderIdentity", + "propertyType": { + "dbType": "String", + "minLength": 0, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": true + }, + "description": "The student's gender as last reported to the education organization.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "GenderIdentity", + "postgreSql": "GenderIdentity" + } + }, { "propertyName": "HispanicLatinoEthnicity", "propertyType": { @@ -43969,6 +44224,58 @@ "postgreSql": "StudentSectionAssociation" } }, + { + "schema": "edfi", + "name": "StudentSectionAssociationProgram", + "locallyDefinedProperties": [ + { + "propertyName": "CreateDate", + "propertyType": { + "dbType": "DateTime2", + "maxLength": 0, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CreateDate", + "postgreSql": "CreateDate" + } + } + ], + "identifiers": [ + { + "identifierName": "StudentSectionAssociationProgram_PK", + "identifyingPropertyNames": [ + "BeginDate", + "LocalCourseCode", + "SchoolId", + "SchoolYear", + "SectionIdentifier", + "SessionName", + "StudentUSI", + "EducationOrganizationId", + "ProgramName", + "ProgramTypeDescriptorId" + ], + "isPrimary": true, + "isUpdatable": false, + "constraintNames": { + "sqlServer": "StudentSectionAssociationProgram_PK", + "postgreSql": "StudentSectionAssociationProgram_PK" + } + } + ], + "isAbstract": false, + "description": "The program(s) that the student is participating in the context of the course.", + "tableNames": { + "sqlServer": "StudentSectionAssociationProgram", + "postgreSql": "StudentSectionAssociationProgram" + } + }, { "schema": "edfi", "name": "StudentSectionAttendanceEvent", @@ -45281,6 +45588,31 @@ "postgreSql": "SubmissionStatusDescriptor" } }, + { + "schema": "edfi", + "name": "SupporterMilitaryConnectionDescriptor", + "locallyDefinedProperties": [], + "identifiers": [ + { + "identifierName": "SupporterMilitaryConnectionDescriptor_PK", + "identifyingPropertyNames": [ + "SupporterMilitaryConnectionDescriptorId" + ], + "isPrimary": true, + "isUpdatable": false, + "constraintNames": { + "sqlServer": "SupporterMilitaryConnectionDescriptor_PK", + "postgreSql": "SupporterMilitaryConnectionDescriptor_PK" + } + } + ], + "isAbstract": false, + "description": "Military connection of the person/people whom the student is a dependent of.", + "tableNames": { + "sqlServer": "SupporterMilitaryConnectionDescriptor", + "postgreSql": "SupporterMilitaryConnectionDescriptor" + } + }, { "schema": "edfi", "name": "Survey", @@ -47432,7 +47764,7 @@ } ], "isAbstract": false, - "description": "This descriptor defines the term of a session during the school year (e.g., Semester).", + "description": "A distinct period of time into which the academic year is divided. These could be “semesters”, “trimesters” or “quarters”, depending on the school or district’s academic calendar.", "tableNames": { "sqlServer": "TermDescriptor", "postgreSql": "TermDescriptor" @@ -62108,6 +62440,66 @@ }, "potentiallyLogical": false }, + { + "fullName": { + "schema": "edfi", + "name": "FK_CourseTranscript_Staff" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "Staff" + }, + "primaryEntityProperties": [ + { + "propertyName": "StaffUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a staff.", + "isIdentifying": false, + "isServerAssigned": true, + "columnNames": { + "sqlServer": "StaffUSI", + "postgreSql": "StaffUSI" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscript" + }, + "secondaryEntityProperties": [ + { + "propertyName": "ResponsibleTeacherStaffUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": true + }, + "description": "A unique alphanumeric code assigned to a staff.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "ResponsibleTeacherStaffUSI", + "postgreSql": "ResponsibleTeacherStaffUSI" + } + } + ], + "isIdentifying": false, + "isRequired": false, + "constraintNames": { + "sqlServer": "FK_CourseTranscript_Staff", + "postgreSql": "FK_6acf2b_Staff" + }, + "potentiallyLogical": false + }, { "fullName": { "schema": "edfi", @@ -62265,75 +62657,667 @@ "isIdentifying": true, "isRequired": true, "constraintNames": { - "sqlServer": "FK_CourseTranscript_StudentAcademicRecord", - "postgreSql": "FK_6acf2b_StudentAcademicRecord" - }, - "potentiallyLogical": false - }, - { - "fullName": { - "schema": "edfi", - "name": "FK_CourseTranscriptAcademicSubject_AcademicSubjectDescriptor" - }, - "cardinality": "OneToZeroOrMore", - "primaryEntityFullName": { - "schema": "edfi", - "name": "AcademicSubjectDescriptor" - }, - "primaryEntityProperties": [ - { - "propertyName": "AcademicSubjectDescriptorId", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "AcademicSubjectDescriptorId", - "postgreSql": "AcademicSubjectDescriptorId" - } - } - ], - "secondaryEntityFullName": { - "schema": "edfi", - "name": "CourseTranscriptAcademicSubject" - }, - "secondaryEntityProperties": [ - { - "propertyName": "AcademicSubjectDescriptorId", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "The subject area for the course transcript credits awarded in the course transcript.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "AcademicSubjectDescriptorId", - "postgreSql": "AcademicSubjectDescriptorId" - } - } - ], - "isIdentifying": true, - "isRequired": true, - "constraintNames": { - "sqlServer": "FK_CourseTranscriptAcademicSubject_AcademicSubjectDescriptor", - "postgreSql": "FK_354642_AcademicSubjectDescriptor" + "sqlServer": "FK_CourseTranscript_StudentAcademicRecord", + "postgreSql": "FK_6acf2b_StudentAcademicRecord" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_CourseTranscriptAcademicSubject_AcademicSubjectDescriptor" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "AcademicSubjectDescriptor" + }, + "primaryEntityProperties": [ + { + "propertyName": "AcademicSubjectDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "AcademicSubjectDescriptorId", + "postgreSql": "AcademicSubjectDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscriptAcademicSubject" + }, + "secondaryEntityProperties": [ + { + "propertyName": "AcademicSubjectDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The subject area for the course transcript credits awarded in the course transcript.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "AcademicSubjectDescriptorId", + "postgreSql": "AcademicSubjectDescriptorId" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_CourseTranscriptAcademicSubject_AcademicSubjectDescriptor", + "postgreSql": "FK_354642_AcademicSubjectDescriptor" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_CourseTranscriptAcademicSubject_CourseTranscript" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscript" + }, + "primaryEntityProperties": [ + { + "propertyName": "CourseAttemptResultDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The result from the student's attempt to take the course.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseAttemptResultDescriptorId", + "postgreSql": "CourseAttemptResultDescriptorId" + } + }, + { + "propertyName": "CourseCode", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a course.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseCode", + "postgreSql": "CourseCode" + } + }, + { + "propertyName": "CourseEducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseEducationOrganizationId", + "postgreSql": "CourseEducationOrganizationId" + } + }, + { + "propertyName": "EducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "EducationOrganizationId", + "postgreSql": "EducationOrganizationId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "StudentUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a student.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } + }, + { + "propertyName": "TermDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The term for the session during the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "TermDescriptorId", + "postgreSql": "TermDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscriptAcademicSubject" + }, + "secondaryEntityProperties": [ + { + "propertyName": "CourseAttemptResultDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The result from the student's attempt to take the course.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseAttemptResultDescriptorId", + "postgreSql": "CourseAttemptResultDescriptorId" + } + }, + { + "propertyName": "CourseCode", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a course.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseCode", + "postgreSql": "CourseCode" + } + }, + { + "propertyName": "CourseEducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseEducationOrganizationId", + "postgreSql": "CourseEducationOrganizationId" + } + }, + { + "propertyName": "EducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "EducationOrganizationId", + "postgreSql": "EducationOrganizationId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "StudentUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a student.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } + }, + { + "propertyName": "TermDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The term for the session during the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "TermDescriptorId", + "postgreSql": "TermDescriptorId" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_CourseTranscriptAcademicSubject_CourseTranscript", + "postgreSql": "FK_354642_CourseTranscript" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_CourseTranscriptAlternativeCourseIdentificationCode_CourseIdentificationSystemDescriptor" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "CourseIdentificationSystemDescriptor" + }, + "primaryEntityProperties": [ + { + "propertyName": "CourseIdentificationSystemDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseIdentificationSystemDescriptorId", + "postgreSql": "CourseIdentificationSystemDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscriptAlternativeCourseIdentificationCode" + }, + "secondaryEntityProperties": [ + { + "propertyName": "CourseIdentificationSystemDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A system that is used to identify the organization of subject matter and related learning experiences provided for the instruction of students.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseIdentificationSystemDescriptorId", + "postgreSql": "CourseIdentificationSystemDescriptorId" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_CourseTranscriptAlternativeCourseIdentificationCode_CourseIdentificationSystemDescriptor", + "postgreSql": "FK_6621ee_CourseIdentificationSystemDescriptor" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_CourseTranscriptAlternativeCourseIdentificationCode_CourseTranscript" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscript" + }, + "primaryEntityProperties": [ + { + "propertyName": "CourseAttemptResultDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The result from the student's attempt to take the course.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseAttemptResultDescriptorId", + "postgreSql": "CourseAttemptResultDescriptorId" + } + }, + { + "propertyName": "CourseCode", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a course.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseCode", + "postgreSql": "CourseCode" + } + }, + { + "propertyName": "CourseEducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseEducationOrganizationId", + "postgreSql": "CourseEducationOrganizationId" + } + }, + { + "propertyName": "EducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "EducationOrganizationId", + "postgreSql": "EducationOrganizationId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "StudentUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a student.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } + }, + { + "propertyName": "TermDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The term for the session during the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "TermDescriptorId", + "postgreSql": "TermDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscriptAlternativeCourseIdentificationCode" + }, + "secondaryEntityProperties": [ + { + "propertyName": "CourseAttemptResultDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The result from the student's attempt to take the course.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseAttemptResultDescriptorId", + "postgreSql": "CourseAttemptResultDescriptorId" + } + }, + { + "propertyName": "CourseCode", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a course.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseCode", + "postgreSql": "CourseCode" + } + }, + { + "propertyName": "CourseEducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseEducationOrganizationId", + "postgreSql": "CourseEducationOrganizationId" + } + }, + { + "propertyName": "EducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "EducationOrganizationId", + "postgreSql": "EducationOrganizationId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "StudentUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a student.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } + }, + { + "propertyName": "TermDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The term for the session during the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "TermDescriptorId", + "postgreSql": "TermDescriptorId" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_CourseTranscriptAlternativeCourseIdentificationCode_CourseTranscript", + "postgreSql": "FK_6621ee_CourseTranscript" }, "potentiallyLogical": false }, { "fullName": { "schema": "edfi", - "name": "FK_CourseTranscriptAcademicSubject_CourseTranscript" + "name": "FK_CourseTranscriptCreditCategory_CourseTranscript" }, "cardinality": "OneToZeroOrMore", "primaryEntityFullName": { @@ -62464,7 +63448,7 @@ ], "secondaryEntityFullName": { "schema": "edfi", - "name": "CourseTranscriptAcademicSubject" + "name": "CourseTranscriptCreditCategory" }, "secondaryEntityProperties": [ { @@ -62591,24 +63575,24 @@ "isIdentifying": true, "isRequired": true, "constraintNames": { - "sqlServer": "FK_CourseTranscriptAcademicSubject_CourseTranscript", - "postgreSql": "FK_354642_CourseTranscript" + "sqlServer": "FK_CourseTranscriptCreditCategory_CourseTranscript", + "postgreSql": "FK_ab7096_CourseTranscript" }, "potentiallyLogical": false }, { "fullName": { "schema": "edfi", - "name": "FK_CourseTranscriptAlternativeCourseIdentificationCode_CourseIdentificationSystemDescriptor" + "name": "FK_CourseTranscriptCreditCategory_CreditCategoryDescriptor" }, "cardinality": "OneToZeroOrMore", "primaryEntityFullName": { "schema": "edfi", - "name": "CourseIdentificationSystemDescriptor" + "name": "CreditCategoryDescriptor" }, "primaryEntityProperties": [ { - "propertyName": "CourseIdentificationSystemDescriptorId", + "propertyName": "CreditCategoryDescriptorId", "propertyType": { "dbType": "Int32", "maxLength": 0, @@ -62620,18 +63604,18 @@ "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "CourseIdentificationSystemDescriptorId", - "postgreSql": "CourseIdentificationSystemDescriptorId" + "sqlServer": "CreditCategoryDescriptorId", + "postgreSql": "CreditCategoryDescriptorId" } } ], "secondaryEntityFullName": { "schema": "edfi", - "name": "CourseTranscriptAlternativeCourseIdentificationCode" + "name": "CourseTranscriptCreditCategory" }, "secondaryEntityProperties": [ { - "propertyName": "CourseIdentificationSystemDescriptorId", + "propertyName": "CreditCategoryDescriptorId", "propertyType": { "dbType": "Int32", "maxLength": 0, @@ -62639,122 +63623,36 @@ "scale": 0, "isNullable": false }, - "description": "A system that is used to identify the organization of subject matter and related learning experiences provided for the instruction of students.", + "description": "A categorization for the course transcript credits awarded in the course transcript.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "CourseIdentificationSystemDescriptorId", - "postgreSql": "CourseIdentificationSystemDescriptorId" + "sqlServer": "CreditCategoryDescriptorId", + "postgreSql": "CreditCategoryDescriptorId" } } ], "isIdentifying": true, "isRequired": true, "constraintNames": { - "sqlServer": "FK_CourseTranscriptAlternativeCourseIdentificationCode_CourseIdentificationSystemDescriptor", - "postgreSql": "FK_6621ee_CourseIdentificationSystemDescriptor" + "sqlServer": "FK_CourseTranscriptCreditCategory_CreditCategoryDescriptor", + "postgreSql": "FK_ab7096_CreditCategoryDescriptor" }, "potentiallyLogical": false }, { "fullName": { "schema": "edfi", - "name": "FK_CourseTranscriptAlternativeCourseIdentificationCode_CourseTranscript" + "name": "FK_CourseTranscriptEarnedAdditionalCredits_AdditionalCreditTypeDescriptor" }, "cardinality": "OneToZeroOrMore", "primaryEntityFullName": { "schema": "edfi", - "name": "CourseTranscript" + "name": "AdditionalCreditTypeDescriptor" }, "primaryEntityProperties": [ { - "propertyName": "CourseAttemptResultDescriptorId", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "The result from the student's attempt to take the course.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "CourseAttemptResultDescriptorId", - "postgreSql": "CourseAttemptResultDescriptorId" - } - }, - { - "propertyName": "CourseCode", - "propertyType": { - "dbType": "String", - "minLength": 1, - "maxLength": 60, - "precision": 0, - "scale": 0, - "isNullable": false - }, - "description": "A unique alphanumeric code assigned to a course.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "CourseCode", - "postgreSql": "CourseCode" - } - }, - { - "propertyName": "CourseEducationOrganizationId", - "propertyType": { - "dbType": "Int64", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "The identifier assigned to an education organization.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "CourseEducationOrganizationId", - "postgreSql": "CourseEducationOrganizationId" - } - }, - { - "propertyName": "EducationOrganizationId", - "propertyType": { - "dbType": "Int64", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "The identifier assigned to an education organization.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "EducationOrganizationId", - "postgreSql": "EducationOrganizationId" - } - }, - { - "propertyName": "SchoolYear", - "propertyType": { - "dbType": "Int16", - "maxLength": 0, - "precision": 5, - "scale": 0, - "isNullable": false - }, - "description": "The identifier for the school year.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "SchoolYear", - "postgreSql": "SchoolYear" - } - }, - { - "propertyName": "StudentUSI", + "propertyName": "AdditionalCreditTypeDescriptorId", "propertyType": { "dbType": "Int32", "maxLength": 0, @@ -62762,16 +63660,22 @@ "scale": 0, "isNullable": false }, - "description": "A unique alphanumeric code assigned to a student.", + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "StudentUSI", - "postgreSql": "StudentUSI" + "sqlServer": "AdditionalCreditTypeDescriptorId", + "postgreSql": "AdditionalCreditTypeDescriptorId" } - }, + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscriptEarnedAdditionalCredits" + }, + "secondaryEntityProperties": [ { - "propertyName": "TermDescriptorId", + "propertyName": "AdditionalCreditTypeDescriptorId", "propertyType": { "dbType": "Int32", "maxLength": 0, @@ -62779,20 +63683,34 @@ "scale": 0, "isNullable": false }, - "description": "The term for the session during the school year.", + "description": "The type of credits or units of value awarded for the completion of a course.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "TermDescriptorId", - "postgreSql": "TermDescriptorId" + "sqlServer": "AdditionalCreditTypeDescriptorId", + "postgreSql": "AdditionalCreditTypeDescriptorId" } } ], - "secondaryEntityFullName": { + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_CourseTranscriptEarnedAdditionalCredits_AdditionalCreditTypeDescriptor", + "postgreSql": "FK_b50e36_AdditionalCreditTypeDescriptor" + }, + "potentiallyLogical": false + }, + { + "fullName": { "schema": "edfi", - "name": "CourseTranscriptAlternativeCourseIdentificationCode" + "name": "FK_CourseTranscriptEarnedAdditionalCredits_CourseTranscript" }, - "secondaryEntityProperties": [ + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscript" + }, + "primaryEntityProperties": [ { "propertyName": "CourseAttemptResultDescriptorId", "propertyType": { @@ -62914,25 +63832,11 @@ } } ], - "isIdentifying": true, - "isRequired": true, - "constraintNames": { - "sqlServer": "FK_CourseTranscriptAlternativeCourseIdentificationCode_CourseTranscript", - "postgreSql": "FK_6621ee_CourseTranscript" - }, - "potentiallyLogical": false - }, - { - "fullName": { - "schema": "edfi", - "name": "FK_CourseTranscriptCreditCategory_CourseTranscript" - }, - "cardinality": "OneToZeroOrMore", - "primaryEntityFullName": { + "secondaryEntityFullName": { "schema": "edfi", - "name": "CourseTranscript" + "name": "CourseTranscriptEarnedAdditionalCredits" }, - "primaryEntityProperties": [ + "secondaryEntityProperties": [ { "propertyName": "CourseAttemptResultDescriptorId", "propertyType": { @@ -63054,11 +63958,25 @@ } } ], - "secondaryEntityFullName": { + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_CourseTranscriptEarnedAdditionalCredits_CourseTranscript", + "postgreSql": "FK_b50e36_CourseTranscript" + }, + "potentiallyLogical": false + }, + { + "fullName": { "schema": "edfi", - "name": "CourseTranscriptCreditCategory" + "name": "FK_CourseTranscriptPartialCourseTranscriptAwards_CourseTranscript" }, - "secondaryEntityProperties": [ + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscript" + }, + "primaryEntityProperties": [ { "propertyName": "CourseAttemptResultDescriptorId", "propertyType": { @@ -63180,27 +64098,13 @@ } } ], - "isIdentifying": true, - "isRequired": true, - "constraintNames": { - "sqlServer": "FK_CourseTranscriptCreditCategory_CourseTranscript", - "postgreSql": "FK_ab7096_CourseTranscript" - }, - "potentiallyLogical": false - }, - { - "fullName": { - "schema": "edfi", - "name": "FK_CourseTranscriptCreditCategory_CreditCategoryDescriptor" - }, - "cardinality": "OneToZeroOrMore", - "primaryEntityFullName": { + "secondaryEntityFullName": { "schema": "edfi", - "name": "CreditCategoryDescriptor" + "name": "CourseTranscriptPartialCourseTranscriptAwards" }, - "primaryEntityProperties": [ + "secondaryEntityProperties": [ { - "propertyName": "CreditCategoryDescriptorId", + "propertyName": "CourseAttemptResultDescriptorId", "propertyType": { "dbType": "Int32", "maxLength": 0, @@ -63208,22 +64112,85 @@ "scale": 0, "isNullable": false }, - "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "description": "The result from the student's attempt to take the course.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "CreditCategoryDescriptorId", - "postgreSql": "CreditCategoryDescriptorId" + "sqlServer": "CourseAttemptResultDescriptorId", + "postgreSql": "CourseAttemptResultDescriptorId" } - } - ], - "secondaryEntityFullName": { - "schema": "edfi", - "name": "CourseTranscriptCreditCategory" - }, - "secondaryEntityProperties": [ + }, { - "propertyName": "CreditCategoryDescriptorId", + "propertyName": "CourseCode", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a course.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseCode", + "postgreSql": "CourseCode" + } + }, + { + "propertyName": "CourseEducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "CourseEducationOrganizationId", + "postgreSql": "CourseEducationOrganizationId" + } + }, + { + "propertyName": "EducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "EducationOrganizationId", + "postgreSql": "EducationOrganizationId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "StudentUSI", "propertyType": { "dbType": "Int32", "maxLength": 0, @@ -63231,36 +64198,53 @@ "scale": 0, "isNullable": false }, - "description": "A categorization for the course transcript credits awarded in the course transcript.", + "description": "A unique alphanumeric code assigned to a student.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "CreditCategoryDescriptorId", - "postgreSql": "CreditCategoryDescriptorId" + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } + }, + { + "propertyName": "TermDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The term for the session during the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "TermDescriptorId", + "postgreSql": "TermDescriptorId" } } ], "isIdentifying": true, "isRequired": true, "constraintNames": { - "sqlServer": "FK_CourseTranscriptCreditCategory_CreditCategoryDescriptor", - "postgreSql": "FK_ab7096_CreditCategoryDescriptor" + "sqlServer": "FK_CourseTranscriptPartialCourseTranscriptAwards_CourseTranscript", + "postgreSql": "FK_e811ad_CourseTranscript" }, "potentiallyLogical": false }, { "fullName": { "schema": "edfi", - "name": "FK_CourseTranscriptEarnedAdditionalCredits_AdditionalCreditTypeDescriptor" + "name": "FK_CourseTranscriptPartialCourseTranscriptAwards_MethodCreditEarnedDescriptor" }, "cardinality": "OneToZeroOrMore", "primaryEntityFullName": { "schema": "edfi", - "name": "AdditionalCreditTypeDescriptor" + "name": "MethodCreditEarnedDescriptor" }, "primaryEntityProperties": [ { - "propertyName": "AdditionalCreditTypeDescriptorId", + "propertyName": "MethodCreditEarnedDescriptorId", "propertyType": { "dbType": "Int32", "maxLength": 0, @@ -63269,49 +64253,49 @@ "isNullable": false }, "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", - "isIdentifying": true, + "isIdentifying": false, "isServerAssigned": false, "columnNames": { - "sqlServer": "AdditionalCreditTypeDescriptorId", - "postgreSql": "AdditionalCreditTypeDescriptorId" + "sqlServer": "MethodCreditEarnedDescriptorId", + "postgreSql": "MethodCreditEarnedDescriptorId" } } ], "secondaryEntityFullName": { "schema": "edfi", - "name": "CourseTranscriptEarnedAdditionalCredits" + "name": "CourseTranscriptPartialCourseTranscriptAwards" }, "secondaryEntityProperties": [ { - "propertyName": "AdditionalCreditTypeDescriptorId", + "propertyName": "MethodCreditEarnedDescriptorId", "propertyType": { "dbType": "Int32", "maxLength": 0, "precision": 10, "scale": 0, - "isNullable": false + "isNullable": true }, - "description": "The type of credits or units of value awarded for the completion of a course.", - "isIdentifying": true, + "description": "The method the credits were earned.", + "isIdentifying": false, "isServerAssigned": false, "columnNames": { - "sqlServer": "AdditionalCreditTypeDescriptorId", - "postgreSql": "AdditionalCreditTypeDescriptorId" + "sqlServer": "MethodCreditEarnedDescriptorId", + "postgreSql": "MethodCreditEarnedDescriptorId" } } ], - "isIdentifying": true, - "isRequired": true, + "isIdentifying": false, + "isRequired": false, "constraintNames": { - "sqlServer": "FK_CourseTranscriptEarnedAdditionalCredits_AdditionalCreditTypeDescriptor", - "postgreSql": "FK_b50e36_AdditionalCreditTypeDescriptor" + "sqlServer": "FK_CourseTranscriptPartialCourseTranscriptAwards_MethodCreditEarnedDescriptor", + "postgreSql": "FK_e811ad_MethodCreditEarnedDescriptor" }, "potentiallyLogical": false }, { "fullName": { "schema": "edfi", - "name": "FK_CourseTranscriptEarnedAdditionalCredits_CourseTranscript" + "name": "FK_CourseTranscriptProgram_CourseTranscript" }, "cardinality": "OneToZeroOrMore", "primaryEntityFullName": { @@ -63442,7 +64426,7 @@ ], "secondaryEntityFullName": { "schema": "edfi", - "name": "CourseTranscriptEarnedAdditionalCredits" + "name": "CourseTranscriptProgram" }, "secondaryEntityProperties": [ { @@ -63569,15 +64553,145 @@ "isIdentifying": true, "isRequired": true, "constraintNames": { - "sqlServer": "FK_CourseTranscriptEarnedAdditionalCredits_CourseTranscript", - "postgreSql": "FK_b50e36_CourseTranscript" + "sqlServer": "FK_CourseTranscriptProgram_CourseTranscript", + "postgreSql": "FK_57d145_CourseTranscript" }, "potentiallyLogical": false }, { "fullName": { "schema": "edfi", - "name": "FK_CourseTranscriptPartialCourseTranscriptAwards_CourseTranscript" + "name": "FK_CourseTranscriptProgram_Program" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "Program" + }, + "primaryEntityProperties": [ + { + "propertyName": "EducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "EducationOrganizationId", + "postgreSql": "EducationOrganizationId" + } + }, + { + "propertyName": "ProgramName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "ProgramName", + "postgreSql": "ProgramName" + } + }, + { + "propertyName": "ProgramTypeDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The type of program.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "ProgramTypeDescriptorId", + "postgreSql": "ProgramTypeDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "CourseTranscriptProgram" + }, + "secondaryEntityProperties": [ + { + "propertyName": "EducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "EducationOrganizationId", + "postgreSql": "EducationOrganizationId" + } + }, + { + "propertyName": "ProgramName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "ProgramName", + "postgreSql": "ProgramName" + } + }, + { + "propertyName": "ProgramTypeDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The type of program.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "ProgramTypeDescriptorId", + "postgreSql": "ProgramTypeDescriptorId" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_CourseTranscriptProgram_Program", + "postgreSql": "FK_57d145_Program" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_CourseTranscriptSection_CourseTranscript" }, "cardinality": "OneToZeroOrMore", "primaryEntityFullName": { @@ -63708,7 +64822,7 @@ ], "secondaryEntityFullName": { "schema": "edfi", - "name": "CourseTranscriptPartialCourseTranscriptAwards" + "name": "CourseTranscriptSection" }, "secondaryEntityProperties": [ { @@ -63835,68 +64949,210 @@ "isIdentifying": true, "isRequired": true, "constraintNames": { - "sqlServer": "FK_CourseTranscriptPartialCourseTranscriptAwards_CourseTranscript", - "postgreSql": "FK_e811ad_CourseTranscript" + "sqlServer": "FK_CourseTranscriptSection_CourseTranscript", + "postgreSql": "FK_cd2ae9_CourseTranscript" }, "potentiallyLogical": false }, { "fullName": { "schema": "edfi", - "name": "FK_CourseTranscriptPartialCourseTranscriptAwards_MethodCreditEarnedDescriptor" + "name": "FK_CourseTranscriptSection_Section" }, "cardinality": "OneToZeroOrMore", "primaryEntityFullName": { "schema": "edfi", - "name": "MethodCreditEarnedDescriptor" + "name": "Section" }, "primaryEntityProperties": [ { - "propertyName": "MethodCreditEarnedDescriptorId", + "propertyName": "LocalCourseCode", "propertyType": { - "dbType": "Int32", + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local code assigned by the School that identifies the course offering provided for the instruction of students.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "LocalCourseCode", + "postgreSql": "LocalCourseCode" + } + }, + { + "propertyName": "SchoolId", + "propertyType": { + "dbType": "Int64", "maxLength": 0, "precision": 10, "scale": 0, "isNullable": false }, - "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", - "isIdentifying": false, + "description": "The identifier assigned to a school.", + "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "MethodCreditEarnedDescriptorId", - "postgreSql": "MethodCreditEarnedDescriptorId" + "sqlServer": "SchoolId", + "postgreSql": "SchoolId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "SectionIdentifier", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 255, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local identifier assigned to a section.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SectionIdentifier", + "postgreSql": "SectionIdentifier" + } + }, + { + "propertyName": "SessionName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the calendar for the academic session.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SessionName", + "postgreSql": "SessionName" } } ], "secondaryEntityFullName": { "schema": "edfi", - "name": "CourseTranscriptPartialCourseTranscriptAwards" + "name": "CourseTranscriptSection" }, "secondaryEntityProperties": [ { - "propertyName": "MethodCreditEarnedDescriptorId", + "propertyName": "LocalCourseCode", "propertyType": { - "dbType": "Int32", + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local code assigned by the School that identifies the course offering provided for the instruction of students.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "LocalCourseCode", + "postgreSql": "LocalCourseCode" + } + }, + { + "propertyName": "SchoolId", + "propertyType": { + "dbType": "Int64", "maxLength": 0, "precision": 10, "scale": 0, - "isNullable": true + "isNullable": false }, - "description": "The method the credits were earned.", - "isIdentifying": false, + "description": "The identifier assigned to a school.", + "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "MethodCreditEarnedDescriptorId", - "postgreSql": "MethodCreditEarnedDescriptorId" + "sqlServer": "SchoolId", + "postgreSql": "SchoolId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "SectionIdentifier", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 255, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local identifier assigned to a section.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SectionIdentifier", + "postgreSql": "SectionIdentifier" + } + }, + { + "propertyName": "SessionName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the calendar for the academic session.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SessionName", + "postgreSql": "SessionName" } } ], - "isIdentifying": false, - "isRequired": false, + "isIdentifying": true, + "isRequired": true, "constraintNames": { - "sqlServer": "FK_CourseTranscriptPartialCourseTranscriptAwards_MethodCreditEarnedDescriptor", - "postgreSql": "FK_e811ad_MethodCreditEarnedDescriptor" + "sqlServer": "FK_CourseTranscriptSection_Section", + "postgreSql": "FK_cd2ae9_Section" }, "potentiallyLogical": false }, @@ -72744,7 +74000,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -72753,20 +74009,21 @@ } }, { - "propertyName": "PeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "PeriodSequence", - "postgreSql": "PeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -72818,7 +74075,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -72827,20 +74084,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -73298,7 +74556,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": false, "isServerAssigned": false, "columnNames": { @@ -73307,20 +74565,21 @@ } }, { - "propertyName": "PeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": false, "isServerAssigned": false, "columnNames": { - "sqlServer": "PeriodSequence", - "postgreSql": "PeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -73372,7 +74631,7 @@ "scale": 0, "isNullable": true }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": false, "isServerAssigned": false, "columnNames": { @@ -73381,20 +74640,21 @@ } }, { - "propertyName": "PeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": true }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": false, "isServerAssigned": false, "columnNames": { - "sqlServer": "PeriodSequence", - "postgreSql": "PeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -73917,7 +75177,205 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "GradingPeriodDescriptorId", + "postgreSql": "GradingPeriodDescriptorId" + } + }, + { + "propertyName": "GradingPeriodName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The school's descriptive name of the grading period.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" + } + }, + { + "propertyName": "GradingPeriodSchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the grading period school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "GradingPeriodSchoolYear", + "postgreSql": "GradingPeriodSchoolYear" + } + }, + { + "propertyName": "LocalCourseCode", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local code assigned by the School that identifies the course offering provided for the instruction of students.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "LocalCourseCode", + "postgreSql": "LocalCourseCode" + } + }, + { + "propertyName": "SchoolId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to a school.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolId", + "postgreSql": "SchoolId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "SectionIdentifier", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 255, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local identifier assigned to a section.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SectionIdentifier", + "postgreSql": "SectionIdentifier" + } + }, + { + "propertyName": "SessionName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the calendar for the academic session.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SessionName", + "postgreSql": "SessionName" + } + }, + { + "propertyName": "StudentUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a student.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "GradeLearningStandardGrade" + }, + "secondaryEntityProperties": [ + { + "propertyName": "BeginDate", + "propertyType": { + "dbType": "Date", + "minLength": 0, + "maxLength": 0, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "Month, day, and year of the student's entry or assignment to the section.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "BeginDate", + "postgreSql": "BeginDate" + } + }, + { + "propertyName": "GradeTypeDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The type of grade reported (e.g., exam, final, grading period).", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "GradeTypeDescriptorId", + "postgreSql": "GradeTypeDescriptorId" + } + }, + { + "propertyName": "GradingPeriodDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -73926,111 +75384,7 @@ } }, { - "propertyName": "GradingPeriodSequence", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "The sequential order of this period relative to other periods.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" - } - }, - { - "propertyName": "GradingPeriodSchoolYear", - "propertyType": { - "dbType": "Int16", - "maxLength": 0, - "precision": 5, - "scale": 0, - "isNullable": false - }, - "description": "The identifier for the grading period school year.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "GradingPeriodSchoolYear", - "postgreSql": "GradingPeriodSchoolYear" - } - }, - { - "propertyName": "LocalCourseCode", - "propertyType": { - "dbType": "String", - "minLength": 1, - "maxLength": 60, - "precision": 0, - "scale": 0, - "isNullable": false - }, - "description": "The local code assigned by the School that identifies the course offering provided for the instruction of students.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "LocalCourseCode", - "postgreSql": "LocalCourseCode" - } - }, - { - "propertyName": "SchoolId", - "propertyType": { - "dbType": "Int64", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "The identifier assigned to a school.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "SchoolId", - "postgreSql": "SchoolId" - } - }, - { - "propertyName": "SchoolYear", - "propertyType": { - "dbType": "Int16", - "maxLength": 0, - "precision": 5, - "scale": 0, - "isNullable": false - }, - "description": "The identifier for the school year.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "SchoolYear", - "postgreSql": "SchoolYear" - } - }, - { - "propertyName": "SectionIdentifier", - "propertyType": { - "dbType": "String", - "minLength": 1, - "maxLength": 255, - "precision": 0, - "scale": 0, - "isNullable": false - }, - "description": "The local identifier assigned to a section.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "SectionIdentifier", - "postgreSql": "SectionIdentifier" - } - }, - { - "propertyName": "SessionName", + "propertyName": "GradingPeriodName", "propertyType": { "dbType": "String", "minLength": 1, @@ -74039,104 +75393,12 @@ "scale": 0, "isNullable": false }, - "description": "The identifier for the calendar for the academic session.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "SessionName", - "postgreSql": "SessionName" - } - }, - { - "propertyName": "StudentUSI", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "A unique alphanumeric code assigned to a student.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "StudentUSI", - "postgreSql": "StudentUSI" - } - } - ], - "secondaryEntityFullName": { - "schema": "edfi", - "name": "GradeLearningStandardGrade" - }, - "secondaryEntityProperties": [ - { - "propertyName": "BeginDate", - "propertyType": { - "dbType": "Date", - "minLength": 0, - "maxLength": 0, - "precision": 0, - "scale": 0, - "isNullable": false - }, - "description": "Month, day, and year of the student's entry or assignment to the section.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "BeginDate", - "postgreSql": "BeginDate" - } - }, - { - "propertyName": "GradeTypeDescriptorId", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "The type of grade reported (e.g., exam, final, grading period).", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "GradeTypeDescriptorId", - "postgreSql": "GradeTypeDescriptorId" - } - }, - { - "propertyName": "GradingPeriodDescriptorId", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "The name of the period for which grades are reported.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "GradingPeriodDescriptorId", - "postgreSql": "GradingPeriodDescriptorId" - } - }, - { - "propertyName": "GradingPeriodSequence", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "The sequential order of this period relative to other periods.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -74615,7 +75877,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -94884,7 +96146,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -94893,20 +96155,21 @@ } }, { - "propertyName": "PeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "PeriodSequence", - "postgreSql": "PeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -94958,7 +96221,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -94967,20 +96230,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -95141,7 +96405,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -95150,20 +96414,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -95338,7 +96603,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -95347,20 +96612,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -95531,7 +96797,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -95540,20 +96806,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -95639,7 +96906,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -95648,20 +96915,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -95821,7 +97089,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -95830,20 +97098,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -95929,7 +97198,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -95938,20 +97207,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -96051,7 +97321,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -96060,20 +97330,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -96159,7 +97430,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -96168,20 +97439,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -96264,7 +97536,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -96273,20 +97545,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -96407,7 +97680,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -96416,20 +97689,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -99416,6 +100690,66 @@ }, "potentiallyLogical": false }, + { + "fullName": { + "schema": "edfi", + "name": "FK_Section_SectionTypeDescriptor" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "SectionTypeDescriptor" + }, + "primaryEntityProperties": [ + { + "propertyName": "SectionTypeDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SectionTypeDescriptorId", + "postgreSql": "SectionTypeDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "Section" + }, + "secondaryEntityProperties": [ + { + "propertyName": "SectionTypeDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": true + }, + "description": "Specifies whether the section is for attendance only, credit only, or both.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SectionTypeDescriptorId", + "postgreSql": "SectionTypeDescriptorId" + } + } + ], + "isIdentifying": false, + "isRequired": false, + "constraintNames": { + "sqlServer": "FK_Section_SectionTypeDescriptor", + "postgreSql": "FK_dfca5d_SectionTypeDescriptor" + }, + "potentiallyLogical": false + }, { "fullName": { "schema": "edfi", @@ -101320,6 +102654,66 @@ }, "potentiallyLogical": false }, + { + "fullName": { + "schema": "edfi", + "name": "FK_SectionTypeDescriptor_Descriptor" + }, + "cardinality": "OneToOneInheritance", + "primaryEntityFullName": { + "schema": "edfi", + "name": "Descriptor" + }, + "primaryEntityProperties": [ + { + "propertyName": "DescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": true, + "isServerAssigned": true, + "columnNames": { + "sqlServer": "DescriptorId", + "postgreSql": "DescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "SectionTypeDescriptor" + }, + "secondaryEntityProperties": [ + { + "propertyName": "SectionTypeDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": true, + "isServerAssigned": true, + "columnNames": { + "sqlServer": "SectionTypeDescriptorId", + "postgreSql": "SectionTypeDescriptorId" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_SectionTypeDescriptor_Descriptor", + "postgreSql": "FK_17bb6e_Descriptor" + }, + "potentiallyLogical": false + }, { "fullName": { "schema": "edfi", @@ -101663,7 +103057,7 @@ "scale": 0, "isNullable": false }, - "description": "An descriptor value indicating the term.", + "description": "A descriptor value to indicate the term that the session is associated with.", "isIdentifying": false, "isServerAssigned": false, "columnNames": { @@ -101926,7 +103320,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -101935,20 +103329,21 @@ } }, { - "propertyName": "PeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "PeriodSequence", - "postgreSql": "PeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -102000,7 +103395,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -102009,20 +103404,21 @@ } }, { - "propertyName": "PeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "PeriodSequence", - "postgreSql": "PeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -111849,7 +113245,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -111858,20 +113254,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -111957,7 +113354,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -111966,20 +113363,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -116448,7 +117846,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -116457,20 +117855,21 @@ } }, { - "propertyName": "PeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "PeriodSequence", - "postgreSql": "PeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -116522,7 +117921,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -116531,20 +117930,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -116904,7 +118304,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -116913,20 +118313,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -117047,7 +118448,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -117056,20 +118457,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -117204,7 +118606,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -117213,20 +118615,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -117347,7 +118750,7 @@ "scale": 0, "isNullable": false }, - "description": "The name of the period for which grades are reported.", + "description": "The state's name of the period for which grades are reported.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { @@ -117356,20 +118759,21 @@ } }, { - "propertyName": "GradingPeriodSequence", + "propertyName": "GradingPeriodName", "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "The sequential order of this period relative to other periods.", + "description": "The school's descriptive name of the grading period.", "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "GradingPeriodSequence", - "postgreSql": "GradingPeriodSequence" + "sqlServer": "GradingPeriodName", + "postgreSql": "GradingPeriodName" } }, { @@ -119830,9 +121234,9 @@ "maxLength": 0, "precision": 10, "scale": 0, - "isNullable": false + "isNullable": true }, - "description": "The student's gender as last reported to the education organization.", + "description": "The student's birth sex as reported to the education organization.", "isIdentifying": false, "isServerAssigned": false, "columnNames": { @@ -119842,7 +121246,7 @@ } ], "isIdentifying": false, - "isRequired": true, + "isRequired": false, "constraintNames": { "sqlServer": "FK_StudentEducationOrganizationAssociation_SexDescriptor", "postgreSql": "FK_8e1257_SexDescriptor" @@ -119909,6 +121313,66 @@ }, "potentiallyLogical": false }, + { + "fullName": { + "schema": "edfi", + "name": "FK_StudentEducationOrganizationAssociation_SupporterMilitaryConnectionDescriptor" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "SupporterMilitaryConnectionDescriptor" + }, + "primaryEntityProperties": [ + { + "propertyName": "SupporterMilitaryConnectionDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SupporterMilitaryConnectionDescriptorId", + "postgreSql": "SupporterMilitaryConnectionDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "StudentEducationOrganizationAssociation" + }, + "secondaryEntityProperties": [ + { + "propertyName": "SupporterMilitaryConnectionDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": true + }, + "description": "Military connection of the person/people whom the student is a dependent of.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SupporterMilitaryConnectionDescriptorId", + "postgreSql": "SupporterMilitaryConnectionDescriptorId" + } + } + ], + "isIdentifying": false, + "isRequired": false, + "constraintNames": { + "sqlServer": "FK_StudentEducationOrganizationAssociation_SupporterMilitaryConnectionDescriptor", + "postgreSql": "FK_8e1257_SupporterMilitaryConnectionDescriptor" + }, + "potentiallyLogical": false + }, { "fullName": { "schema": "edfi", @@ -133492,164 +134956,574 @@ "sqlServer": "ProgramTypeDescriptorId", "postgreSql": "ProgramTypeDescriptorId" } - }, - { - "propertyName": "StudentUSI", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "A unique alphanumeric code assigned to a student.", - "isIdentifying": true, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "StudentUSI", - "postgreSql": "StudentUSI" - } + }, + { + "propertyName": "StudentUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a student.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_StudentSchoolFoodServiceProgramAssociationSchoolFoodServiceProgramService_StudentSchoolFoodServiceProgramAssociation", + "postgreSql": "FK_85a0eb_StudentSchoolFoodServiceProgramAssociation" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_StudentSectionAssociation_AttemptStatusDescriptor" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "AttemptStatusDescriptor" + }, + "primaryEntityProperties": [ + { + "propertyName": "AttemptStatusDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "AttemptStatusDescriptorId", + "postgreSql": "AttemptStatusDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "StudentSectionAssociation" + }, + "secondaryEntityProperties": [ + { + "propertyName": "AttemptStatusDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": true + }, + "description": "An indication of the student's completion status for the section.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "AttemptStatusDescriptorId", + "postgreSql": "AttemptStatusDescriptorId" + } + } + ], + "isIdentifying": false, + "isRequired": false, + "constraintNames": { + "sqlServer": "FK_StudentSectionAssociation_AttemptStatusDescriptor", + "postgreSql": "FK_39aa3c_AttemptStatusDescriptor" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_StudentSectionAssociation_RepeatIdentifierDescriptor" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "RepeatIdentifierDescriptor" + }, + "primaryEntityProperties": [ + { + "propertyName": "RepeatIdentifierDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "RepeatIdentifierDescriptorId", + "postgreSql": "RepeatIdentifierDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "StudentSectionAssociation" + }, + "secondaryEntityProperties": [ + { + "propertyName": "RepeatIdentifierDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": true + }, + "description": "An indication as to whether a student has previously taken a given course.", + "isIdentifying": false, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "RepeatIdentifierDescriptorId", + "postgreSql": "RepeatIdentifierDescriptorId" + } + } + ], + "isIdentifying": false, + "isRequired": false, + "constraintNames": { + "sqlServer": "FK_StudentSectionAssociation_RepeatIdentifierDescriptor", + "postgreSql": "FK_39aa3c_RepeatIdentifierDescriptor" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_StudentSectionAssociation_Section" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "Section" + }, + "primaryEntityProperties": [ + { + "propertyName": "LocalCourseCode", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local code assigned by the School that identifies the course offering provided for the instruction of students.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "LocalCourseCode", + "postgreSql": "LocalCourseCode" + } + }, + { + "propertyName": "SchoolId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to a school.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolId", + "postgreSql": "SchoolId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "SectionIdentifier", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 255, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local identifier assigned to a section.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SectionIdentifier", + "postgreSql": "SectionIdentifier" + } + }, + { + "propertyName": "SessionName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the calendar for the academic session.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SessionName", + "postgreSql": "SessionName" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "StudentSectionAssociation" + }, + "secondaryEntityProperties": [ + { + "propertyName": "LocalCourseCode", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local code assigned by the School that identifies the course offering provided for the instruction of students.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "LocalCourseCode", + "postgreSql": "LocalCourseCode" + } + }, + { + "propertyName": "SchoolId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to a school.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolId", + "postgreSql": "SchoolId" + } + }, + { + "propertyName": "SchoolYear", + "propertyType": { + "dbType": "Int16", + "maxLength": 0, + "precision": 5, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the school year.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SchoolYear", + "postgreSql": "SchoolYear" + } + }, + { + "propertyName": "SectionIdentifier", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 255, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The local identifier assigned to a section.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SectionIdentifier", + "postgreSql": "SectionIdentifier" + } + }, + { + "propertyName": "SessionName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The identifier for the calendar for the academic session.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "SessionName", + "postgreSql": "SessionName" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_StudentSectionAssociation_Section", + "postgreSql": "FK_39aa3c_Section" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_StudentSectionAssociation_Student" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "Student" + }, + "primaryEntityProperties": [ + { + "propertyName": "StudentUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a student.", + "isIdentifying": true, + "isServerAssigned": true, + "columnNames": { + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "StudentSectionAssociation" + }, + "secondaryEntityProperties": [ + { + "propertyName": "StudentUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a student.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_StudentSectionAssociation_Student", + "postgreSql": "FK_39aa3c_Student" + }, + "potentiallyLogical": false + }, + { + "fullName": { + "schema": "edfi", + "name": "FK_StudentSectionAssociationProgram_Program" + }, + "cardinality": "OneToZeroOrMore", + "primaryEntityFullName": { + "schema": "edfi", + "name": "Program" + }, + "primaryEntityProperties": [ + { + "propertyName": "EducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "EducationOrganizationId", + "postgreSql": "EducationOrganizationId" + } + }, + { + "propertyName": "ProgramName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "ProgramName", + "postgreSql": "ProgramName" + } + }, + { + "propertyName": "ProgramTypeDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The type of program.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "ProgramTypeDescriptorId", + "postgreSql": "ProgramTypeDescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "StudentSectionAssociationProgram" + }, + "secondaryEntityProperties": [ + { + "propertyName": "EducationOrganizationId", + "propertyType": { + "dbType": "Int64", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The identifier assigned to an education organization.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "EducationOrganizationId", + "postgreSql": "EducationOrganizationId" + } + }, + { + "propertyName": "ProgramName", + "propertyType": { + "dbType": "String", + "minLength": 1, + "maxLength": 60, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "ProgramName", + "postgreSql": "ProgramName" + } + }, + { + "propertyName": "ProgramTypeDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "The type of program.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "ProgramTypeDescriptorId", + "postgreSql": "ProgramTypeDescriptorId" + } } ], "isIdentifying": true, "isRequired": true, "constraintNames": { - "sqlServer": "FK_StudentSchoolFoodServiceProgramAssociationSchoolFoodServiceProgramService_StudentSchoolFoodServiceProgramAssociation", - "postgreSql": "FK_85a0eb_StudentSchoolFoodServiceProgramAssociation" + "sqlServer": "FK_StudentSectionAssociationProgram_Program", + "postgreSql": "FK_990204_Program" }, "potentiallyLogical": false }, { "fullName": { "schema": "edfi", - "name": "FK_StudentSectionAssociation_AttemptStatusDescriptor" + "name": "FK_StudentSectionAssociationProgram_StudentSectionAssociation" }, "cardinality": "OneToZeroOrMore", "primaryEntityFullName": { - "schema": "edfi", - "name": "AttemptStatusDescriptor" - }, - "primaryEntityProperties": [ - { - "propertyName": "AttemptStatusDescriptorId", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", - "isIdentifying": false, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "AttemptStatusDescriptorId", - "postgreSql": "AttemptStatusDescriptorId" - } - } - ], - "secondaryEntityFullName": { "schema": "edfi", "name": "StudentSectionAssociation" }, - "secondaryEntityProperties": [ - { - "propertyName": "AttemptStatusDescriptorId", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": true - }, - "description": "An indication of the student's completion status for the section.", - "isIdentifying": false, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "AttemptStatusDescriptorId", - "postgreSql": "AttemptStatusDescriptorId" - } - } - ], - "isIdentifying": false, - "isRequired": false, - "constraintNames": { - "sqlServer": "FK_StudentSectionAssociation_AttemptStatusDescriptor", - "postgreSql": "FK_39aa3c_AttemptStatusDescriptor" - }, - "potentiallyLogical": false - }, - { - "fullName": { - "schema": "edfi", - "name": "FK_StudentSectionAssociation_RepeatIdentifierDescriptor" - }, - "cardinality": "OneToZeroOrMore", - "primaryEntityFullName": { - "schema": "edfi", - "name": "RepeatIdentifierDescriptor" - }, "primaryEntityProperties": [ { - "propertyName": "RepeatIdentifierDescriptorId", + "propertyName": "BeginDate", "propertyType": { - "dbType": "Int32", + "dbType": "Date", + "minLength": 0, "maxLength": 0, - "precision": 10, + "precision": 0, "scale": 0, "isNullable": false }, - "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", - "isIdentifying": false, - "isServerAssigned": false, - "columnNames": { - "sqlServer": "RepeatIdentifierDescriptorId", - "postgreSql": "RepeatIdentifierDescriptorId" - } - } - ], - "secondaryEntityFullName": { - "schema": "edfi", - "name": "StudentSectionAssociation" - }, - "secondaryEntityProperties": [ - { - "propertyName": "RepeatIdentifierDescriptorId", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": true - }, - "description": "An indication as to whether a student has previously taken a given course.", - "isIdentifying": false, + "description": "Month, day, and year of the student's entry or assignment to the section.", + "isIdentifying": true, "isServerAssigned": false, "columnNames": { - "sqlServer": "RepeatIdentifierDescriptorId", - "postgreSql": "RepeatIdentifierDescriptorId" + "sqlServer": "BeginDate", + "postgreSql": "BeginDate" } - } - ], - "isIdentifying": false, - "isRequired": false, - "constraintNames": { - "sqlServer": "FK_StudentSectionAssociation_RepeatIdentifierDescriptor", - "postgreSql": "FK_39aa3c_RepeatIdentifierDescriptor" - }, - "potentiallyLogical": false - }, - { - "fullName": { - "schema": "edfi", - "name": "FK_StudentSectionAssociation_Section" - }, - "cardinality": "OneToZeroOrMore", - "primaryEntityFullName": { - "schema": "edfi", - "name": "Section" - }, - "primaryEntityProperties": [ + }, { "propertyName": "LocalCourseCode", "propertyType": { @@ -133737,13 +135611,48 @@ "sqlServer": "SessionName", "postgreSql": "SessionName" } + }, + { + "propertyName": "StudentUSI", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique alphanumeric code assigned to a student.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "StudentUSI", + "postgreSql": "StudentUSI" + } } ], "secondaryEntityFullName": { "schema": "edfi", - "name": "StudentSectionAssociation" + "name": "StudentSectionAssociationProgram" }, "secondaryEntityProperties": [ + { + "propertyName": "BeginDate", + "propertyType": { + "dbType": "Date", + "minLength": 0, + "maxLength": 0, + "precision": 0, + "scale": 0, + "isNullable": false + }, + "description": "Month, day, and year of the student's entry or assignment to the section.", + "isIdentifying": true, + "isServerAssigned": false, + "columnNames": { + "sqlServer": "BeginDate", + "postgreSql": "BeginDate" + } + }, { "propertyName": "LocalCourseCode", "propertyType": { @@ -133831,50 +135740,7 @@ "sqlServer": "SessionName", "postgreSql": "SessionName" } - } - ], - "isIdentifying": true, - "isRequired": true, - "constraintNames": { - "sqlServer": "FK_StudentSectionAssociation_Section", - "postgreSql": "FK_39aa3c_Section" - }, - "potentiallyLogical": false - }, - { - "fullName": { - "schema": "edfi", - "name": "FK_StudentSectionAssociation_Student" - }, - "cardinality": "OneToZeroOrMore", - "primaryEntityFullName": { - "schema": "edfi", - "name": "Student" - }, - "primaryEntityProperties": [ - { - "propertyName": "StudentUSI", - "propertyType": { - "dbType": "Int32", - "maxLength": 0, - "precision": 10, - "scale": 0, - "isNullable": false - }, - "description": "A unique alphanumeric code assigned to a student.", - "isIdentifying": true, - "isServerAssigned": true, - "columnNames": { - "sqlServer": "StudentUSI", - "postgreSql": "StudentUSI" - } - } - ], - "secondaryEntityFullName": { - "schema": "edfi", - "name": "StudentSectionAssociation" - }, - "secondaryEntityProperties": [ + }, { "propertyName": "StudentUSI", "propertyType": { @@ -133896,8 +135762,8 @@ "isIdentifying": true, "isRequired": true, "constraintNames": { - "sqlServer": "FK_StudentSectionAssociation_Student", - "postgreSql": "FK_39aa3c_Student" + "sqlServer": "FK_StudentSectionAssociationProgram_StudentSectionAssociation", + "postgreSql": "FK_990204_StudentSectionAssociation" }, "potentiallyLogical": false }, @@ -137833,6 +139699,66 @@ }, "potentiallyLogical": false }, + { + "fullName": { + "schema": "edfi", + "name": "FK_SupporterMilitaryConnectionDescriptor_Descriptor" + }, + "cardinality": "OneToOneInheritance", + "primaryEntityFullName": { + "schema": "edfi", + "name": "Descriptor" + }, + "primaryEntityProperties": [ + { + "propertyName": "DescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": true, + "isServerAssigned": true, + "columnNames": { + "sqlServer": "DescriptorId", + "postgreSql": "DescriptorId" + } + } + ], + "secondaryEntityFullName": { + "schema": "edfi", + "name": "SupporterMilitaryConnectionDescriptor" + }, + "secondaryEntityProperties": [ + { + "propertyName": "SupporterMilitaryConnectionDescriptorId", + "propertyType": { + "dbType": "Int32", + "maxLength": 0, + "precision": 10, + "scale": 0, + "isNullable": false + }, + "description": "A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.", + "isIdentifying": true, + "isServerAssigned": true, + "columnNames": { + "sqlServer": "SupporterMilitaryConnectionDescriptorId", + "postgreSql": "SupporterMilitaryConnectionDescriptorId" + } + } + ], + "isIdentifying": true, + "isRequired": true, + "constraintNames": { + "sqlServer": "FK_SupporterMilitaryConnectionDescriptor_Descriptor", + "postgreSql": "FK_5d0e44_Descriptor" + }, + "potentiallyLogical": false + }, { "fullName": { "schema": "edfi", diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Metadata/DatabaseViews.generated.json b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Metadata/DatabaseViews.generated.json index d9232cddd2..ccaedfad3a 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Metadata/DatabaseViews.generated.json +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Metadata/DatabaseViews.generated.json @@ -275,4 +275,4 @@ } ] } -] +] diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0020-Tables.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0020-Tables.sql index 09156b2b68..cdd6342570 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0020-Tables.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0020-Tables.sql @@ -1139,6 +1139,7 @@ CREATE TABLE [edfi].[Contact] ( [ContactUSI] [INT] IDENTITY(1,1) NOT NULL, [ContactUniqueId] [NVARCHAR](32) NOT NULL, [FirstName] [NVARCHAR](75) NOT NULL, + [GenderIdentity] [NVARCHAR](60) NULL, [GenerationCodeSuffix] [NVARCHAR](10) NULL, [HighestCompletedLevelOfEducationDescriptorId] [INT] NULL, [LastSurname] [NVARCHAR](75) NOT NULL, @@ -1706,6 +1707,7 @@ CREATE TABLE [edfi].[CourseTranscript] ( [FinalLetterGradeEarned] [NVARCHAR](20) NULL, [FinalNumericGradeEarned] [DECIMAL](9, 2) NULL, [MethodCreditEarnedDescriptorId] [INT] NULL, + [ResponsibleTeacherStaffUSI] [INT] NULL, [WhenTakenGradeLevelDescriptorId] [INT] NULL, [Discriminator] [NVARCHAR](128) NULL, [CreateDate] [DATETIME2] NOT NULL, @@ -1867,6 +1869,66 @@ GO ALTER TABLE [edfi].[CourseTranscriptPartialCourseTranscriptAwards] ADD CONSTRAINT [CourseTranscriptPartialCourseTranscriptAwards_DF_CreateDate] DEFAULT (getdate()) FOR [CreateDate] GO +-- Table [edfi].[CourseTranscriptProgram] -- +CREATE TABLE [edfi].[CourseTranscriptProgram] ( + [CourseAttemptResultDescriptorId] [INT] NOT NULL, + [CourseCode] [NVARCHAR](60) NOT NULL, + [CourseEducationOrganizationId] [BIGINT] NOT NULL, + [EducationOrganizationId] [BIGINT] NOT NULL, + [SchoolYear] [SMALLINT] NOT NULL, + [StudentUSI] [INT] NOT NULL, + [TermDescriptorId] [INT] NOT NULL, + [ProgramName] [NVARCHAR](60) NOT NULL, + [ProgramTypeDescriptorId] [INT] NOT NULL, + [CreateDate] [DATETIME2] NOT NULL, + CONSTRAINT [CourseTranscriptProgram_PK] PRIMARY KEY CLUSTERED ( + [CourseAttemptResultDescriptorId] ASC, + [CourseCode] ASC, + [CourseEducationOrganizationId] ASC, + [EducationOrganizationId] ASC, + [SchoolYear] ASC, + [StudentUSI] ASC, + [TermDescriptorId] ASC, + [ProgramName] ASC, + [ProgramTypeDescriptorId] ASC + ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO +ALTER TABLE [edfi].[CourseTranscriptProgram] ADD CONSTRAINT [CourseTranscriptProgram_DF_CreateDate] DEFAULT (getdate()) FOR [CreateDate] +GO + +-- Table [edfi].[CourseTranscriptSection] -- +CREATE TABLE [edfi].[CourseTranscriptSection] ( + [CourseAttemptResultDescriptorId] [INT] NOT NULL, + [CourseCode] [NVARCHAR](60) NOT NULL, + [CourseEducationOrganizationId] [BIGINT] NOT NULL, + [EducationOrganizationId] [BIGINT] NOT NULL, + [SchoolYear] [SMALLINT] NOT NULL, + [StudentUSI] [INT] NOT NULL, + [TermDescriptorId] [INT] NOT NULL, + [LocalCourseCode] [NVARCHAR](60) NOT NULL, + [SchoolId] [BIGINT] NOT NULL, + [SectionIdentifier] [NVARCHAR](255) NOT NULL, + [SessionName] [NVARCHAR](60) NOT NULL, + [CreateDate] [DATETIME2] NOT NULL, + CONSTRAINT [CourseTranscriptSection_PK] PRIMARY KEY CLUSTERED ( + [CourseAttemptResultDescriptorId] ASC, + [CourseCode] ASC, + [CourseEducationOrganizationId] ASC, + [EducationOrganizationId] ASC, + [SchoolYear] ASC, + [StudentUSI] ASC, + [TermDescriptorId] ASC, + [LocalCourseCode] ASC, + [SchoolId] ASC, + [SectionIdentifier] ASC, + [SessionName] ASC + ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO +ALTER TABLE [edfi].[CourseTranscriptSection] ADD CONSTRAINT [CourseTranscriptSection_DF_CreateDate] DEFAULT (getdate()) FOR [CreateDate] +GO + -- Table [edfi].[Credential] -- CREATE TABLE [edfi].[Credential] ( [CredentialIdentifier] [NVARCHAR](60) NOT NULL, @@ -3086,7 +3148,7 @@ CREATE TABLE [edfi].[Grade] ( [BeginDate] [DATE] NOT NULL, [GradeTypeDescriptorId] [INT] NOT NULL, [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [LocalCourseCode] [NVARCHAR](60) NOT NULL, [SchoolId] [BIGINT] NOT NULL, @@ -3109,7 +3171,7 @@ CREATE TABLE [edfi].[Grade] ( [BeginDate] ASC, [GradeTypeDescriptorId] ASC, [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolYear] ASC, [LocalCourseCode] ASC, [SchoolId] ASC, @@ -3137,9 +3199,9 @@ CREATE TABLE [edfi].[GradebookEntry] ( [DueTime] [TIME](7) NULL, [GradebookEntryTypeDescriptorId] [INT] NULL, [GradingPeriodDescriptorId] [INT] NULL, + [GradingPeriodName] [NVARCHAR](60) NULL, [LocalCourseCode] [NVARCHAR](60) NULL, [MaxPoints] [DECIMAL](9, 2) NULL, - [PeriodSequence] [INT] NULL, [SchoolId] [BIGINT] NULL, [SchoolYear] [SMALLINT] NULL, [SectionIdentifier] [NVARCHAR](255) NULL, @@ -3193,7 +3255,7 @@ CREATE TABLE [edfi].[GradeLearningStandardGrade] ( [BeginDate] [DATE] NOT NULL, [GradeTypeDescriptorId] [INT] NOT NULL, [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [LocalCourseCode] [NVARCHAR](60) NOT NULL, [SchoolId] [BIGINT] NOT NULL, @@ -3211,7 +3273,7 @@ CREATE TABLE [edfi].[GradeLearningStandardGrade] ( [BeginDate] ASC, [GradeTypeDescriptorId] ASC, [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolYear] ASC, [LocalCourseCode] ASC, [SchoolId] ASC, @@ -3256,11 +3318,12 @@ GO -- Table [edfi].[GradingPeriod] -- CREATE TABLE [edfi].[GradingPeriod] ( [GradingPeriodDescriptorId] [INT] NOT NULL, - [PeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [SchoolId] [BIGINT] NOT NULL, [SchoolYear] [SMALLINT] NOT NULL, [BeginDate] [DATE] NOT NULL, [EndDate] [DATE] NOT NULL, + [PeriodSequence] [INT] NULL, [TotalInstructionalDays] [INT] NOT NULL, [Discriminator] [NVARCHAR](128) NULL, [CreateDate] [DATETIME2] NOT NULL, @@ -3268,7 +3331,7 @@ CREATE TABLE [edfi].[GradingPeriod] ( [Id] [UNIQUEIDENTIFIER] NOT NULL, CONSTRAINT [GradingPeriod_PK] PRIMARY KEY CLUSTERED ( [GradingPeriodDescriptorId] ASC, - [PeriodSequence] ASC, + [GradingPeriodName] ASC, [SchoolId] ASC, [SchoolYear] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] @@ -5692,7 +5755,7 @@ GO CREATE TABLE [edfi].[ReportCard] ( [EducationOrganizationId] [BIGINT] NOT NULL, [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolId] [BIGINT] NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [StudentUSI] [INT] NOT NULL, @@ -5706,7 +5769,7 @@ CREATE TABLE [edfi].[ReportCard] ( CONSTRAINT [ReportCard_PK] PRIMARY KEY CLUSTERED ( [EducationOrganizationId] ASC, [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [StudentUSI] ASC @@ -5724,7 +5787,7 @@ GO CREATE TABLE [edfi].[ReportCardGrade] ( [EducationOrganizationId] [BIGINT] NOT NULL, [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolId] [BIGINT] NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [StudentUSI] [INT] NOT NULL, @@ -5739,7 +5802,7 @@ CREATE TABLE [edfi].[ReportCardGrade] ( CONSTRAINT [ReportCardGrade_PK] PRIMARY KEY CLUSTERED ( [EducationOrganizationId] ASC, [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [StudentUSI] ASC, @@ -5760,7 +5823,7 @@ GO CREATE TABLE [edfi].[ReportCardGradePointAverage] ( [EducationOrganizationId] [BIGINT] NOT NULL, [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolId] [BIGINT] NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [StudentUSI] [INT] NOT NULL, @@ -5772,7 +5835,7 @@ CREATE TABLE [edfi].[ReportCardGradePointAverage] ( CONSTRAINT [ReportCardGradePointAverage_PK] PRIMARY KEY CLUSTERED ( [EducationOrganizationId] ASC, [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [StudentUSI] ASC, @@ -5787,7 +5850,7 @@ GO CREATE TABLE [edfi].[ReportCardStudentCompetencyObjective] ( [EducationOrganizationId] [BIGINT] NOT NULL, [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolId] [BIGINT] NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [StudentUSI] [INT] NOT NULL, @@ -5798,7 +5861,7 @@ CREATE TABLE [edfi].[ReportCardStudentCompetencyObjective] ( CONSTRAINT [ReportCardStudentCompetencyObjective_PK] PRIMARY KEY CLUSTERED ( [EducationOrganizationId] ASC, [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [StudentUSI] ASC, @@ -6077,6 +6140,7 @@ CREATE TABLE [edfi].[Section] ( [OfficialAttendancePeriod] [BIT] NULL, [PopulationServedDescriptorId] [INT] NULL, [SectionName] [NVARCHAR](100) NULL, + [SectionTypeDescriptorId] [INT] NULL, [SequenceOfCourse] [INT] NULL, [Discriminator] [NVARCHAR](128) NULL, [CreateDate] [DATETIME2] NOT NULL, @@ -6254,6 +6318,15 @@ GO ALTER TABLE [edfi].[SectionProgram] ADD CONSTRAINT [SectionProgram_DF_CreateDate] DEFAULT (getdate()) FOR [CreateDate] GO +-- Table [edfi].[SectionTypeDescriptor] -- +CREATE TABLE [edfi].[SectionTypeDescriptor] ( + [SectionTypeDescriptorId] [INT] NOT NULL, + CONSTRAINT [SectionTypeDescriptor_PK] PRIMARY KEY CLUSTERED ( + [SectionTypeDescriptorId] ASC + ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + -- Table [edfi].[SeparationDescriptor] -- CREATE TABLE [edfi].[SeparationDescriptor] ( [SeparationDescriptorId] [INT] NOT NULL, @@ -6332,14 +6405,14 @@ CREATE TABLE [edfi].[SessionGradingPeriod] ( [SchoolYear] [SMALLINT] NOT NULL, [SessionName] [NVARCHAR](60) NOT NULL, [GradingPeriodDescriptorId] [INT] NOT NULL, - [PeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [CreateDate] [DATETIME2] NOT NULL, CONSTRAINT [SessionGradingPeriod_PK] PRIMARY KEY CLUSTERED ( [SchoolId] ASC, [SchoolYear] ASC, [SessionName] ASC, [GradingPeriodDescriptorId] ASC, - [PeriodSequence] ASC + [GradingPeriodName] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO @@ -6426,6 +6499,7 @@ CREATE TABLE [edfi].[Staff] ( [BirthDate] [DATE] NULL, [CitizenshipStatusDescriptorId] [INT] NULL, [FirstName] [NVARCHAR](75) NOT NULL, + [GenderIdentity] [NVARCHAR](60) NULL, [GenerationCodeSuffix] [NVARCHAR](10) NULL, [HighestCompletedLevelOfEducationDescriptorId] [INT] NULL, [HighlyQualifiedTeacher] [BIT] NULL, @@ -6788,6 +6862,7 @@ CREATE TABLE [edfi].[StaffEducationOrganizationEmploymentAssociation] ( [EmploymentStatusDescriptorId] [INT] NOT NULL, [HireDate] [DATE] NOT NULL, [StaffUSI] [INT] NOT NULL, + [AnnualWage] [MONEY] NULL, [CredentialIdentifier] [NVARCHAR](60) NULL, [Department] [NVARCHAR](60) NULL, [EndDate] [DATE] NULL, @@ -7501,7 +7576,7 @@ CREATE TABLE [edfi].[StudentAcademicRecordReportCard] ( [StudentUSI] [INT] NOT NULL, [TermDescriptorId] [INT] NOT NULL, [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolId] [BIGINT] NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [CreateDate] [DATETIME2] NOT NULL, @@ -7511,7 +7586,7 @@ CREATE TABLE [edfi].[StudentAcademicRecordReportCard] ( [StudentUSI] ASC, [TermDescriptorId] ASC, [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] @@ -7841,7 +7916,7 @@ GO -- Table [edfi].[StudentCompetencyObjective] -- CREATE TABLE [edfi].[StudentCompetencyObjective] ( [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolId] [BIGINT] NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [ObjectiveEducationOrganizationId] [BIGINT] NOT NULL, @@ -7856,7 +7931,7 @@ CREATE TABLE [edfi].[StudentCompetencyObjective] ( [Id] [UNIQUEIDENTIFIER] NOT NULL, CONSTRAINT [StudentCompetencyObjective_PK] PRIMARY KEY CLUSTERED ( [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [ObjectiveEducationOrganizationId] ASC, @@ -7876,7 +7951,7 @@ GO -- Table [edfi].[StudentCompetencyObjectiveGeneralStudentProgramAssociation] -- CREATE TABLE [edfi].[StudentCompetencyObjectiveGeneralStudentProgramAssociation] ( [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolId] [BIGINT] NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [ObjectiveEducationOrganizationId] [BIGINT] NOT NULL, @@ -7891,7 +7966,7 @@ CREATE TABLE [edfi].[StudentCompetencyObjectiveGeneralStudentProgramAssociation] [CreateDate] [DATETIME2] NOT NULL, CONSTRAINT [StudentCompetencyObjectiveGeneralStudentProgramAssociation_PK] PRIMARY KEY CLUSTERED ( [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [ObjectiveEducationOrganizationId] ASC, @@ -7912,7 +7987,7 @@ GO -- Table [edfi].[StudentCompetencyObjectiveStudentSectionAssociation] -- CREATE TABLE [edfi].[StudentCompetencyObjectiveStudentSectionAssociation] ( [GradingPeriodDescriptorId] [INT] NOT NULL, - [GradingPeriodSequence] [INT] NOT NULL, + [GradingPeriodName] [NVARCHAR](60) NOT NULL, [GradingPeriodSchoolId] [BIGINT] NOT NULL, [GradingPeriodSchoolYear] [SMALLINT] NOT NULL, [ObjectiveEducationOrganizationId] [BIGINT] NOT NULL, @@ -7928,7 +8003,7 @@ CREATE TABLE [edfi].[StudentCompetencyObjectiveStudentSectionAssociation] ( [CreateDate] [DATETIME2] NOT NULL, CONSTRAINT [StudentCompetencyObjectiveStudentSectionAssociation_PK] PRIMARY KEY CLUSTERED ( [GradingPeriodDescriptorId] ASC, - [GradingPeriodSequence] ASC, + [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [ObjectiveEducationOrganizationId] ASC, @@ -8117,6 +8192,7 @@ CREATE TABLE [edfi].[StudentEducationOrganizationAssociation] ( [EducationOrganizationId] [BIGINT] NOT NULL, [StudentUSI] [INT] NOT NULL, [BarrierToInternetAccessInResidenceDescriptorId] [INT] NULL, + [GenderIdentity] [NVARCHAR](60) NULL, [HispanicLatinoEthnicity] [BIT] NULL, [InternetAccessInResidence] [BIT] NULL, [InternetAccessTypeInResidenceDescriptorId] [INT] NULL, @@ -8127,7 +8203,8 @@ CREATE TABLE [edfi].[StudentEducationOrganizationAssociation] ( [PrimaryLearningDeviceAwayFromSchoolDescriptorId] [INT] NULL, [PrimaryLearningDeviceProviderDescriptorId] [INT] NULL, [ProfileThumbnail] [NVARCHAR](255) NULL, - [SexDescriptorId] [INT] NOT NULL, + [SexDescriptorId] [INT] NULL, + [SupporterMilitaryConnectionDescriptorId] [INT] NULL, [Discriminator] [NVARCHAR](128) NULL, [CreateDate] [DATETIME2] NOT NULL, [LastModifiedDate] [DATETIME2] NOT NULL, @@ -9362,6 +9439,36 @@ GO ALTER TABLE [edfi].[StudentSectionAssociation] ADD CONSTRAINT [StudentSectionAssociation_DF_LastModifiedDate] DEFAULT (getdate()) FOR [LastModifiedDate] GO +-- Table [edfi].[StudentSectionAssociationProgram] -- +CREATE TABLE [edfi].[StudentSectionAssociationProgram] ( + [BeginDate] [DATE] NOT NULL, + [LocalCourseCode] [NVARCHAR](60) NOT NULL, + [SchoolId] [BIGINT] NOT NULL, + [SchoolYear] [SMALLINT] NOT NULL, + [SectionIdentifier] [NVARCHAR](255) NOT NULL, + [SessionName] [NVARCHAR](60) NOT NULL, + [StudentUSI] [INT] NOT NULL, + [EducationOrganizationId] [BIGINT] NOT NULL, + [ProgramName] [NVARCHAR](60) NOT NULL, + [ProgramTypeDescriptorId] [INT] NOT NULL, + [CreateDate] [DATETIME2] NOT NULL, + CONSTRAINT [StudentSectionAssociationProgram_PK] PRIMARY KEY CLUSTERED ( + [BeginDate] ASC, + [LocalCourseCode] ASC, + [SchoolId] ASC, + [SchoolYear] ASC, + [SectionIdentifier] ASC, + [SessionName] ASC, + [StudentUSI] ASC, + [EducationOrganizationId] ASC, + [ProgramName] ASC, + [ProgramTypeDescriptorId] ASC + ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO +ALTER TABLE [edfi].[StudentSectionAssociationProgram] ADD CONSTRAINT [StudentSectionAssociationProgram_DF_CreateDate] DEFAULT (getdate()) FOR [CreateDate] +GO + -- Table [edfi].[StudentSectionAttendanceEvent] -- CREATE TABLE [edfi].[StudentSectionAttendanceEvent] ( [AttendanceEventCategoryDescriptorId] [INT] NOT NULL, @@ -9701,6 +9808,15 @@ CREATE TABLE [edfi].[SubmissionStatusDescriptor] ( ) ON [PRIMARY] GO +-- Table [edfi].[SupporterMilitaryConnectionDescriptor] -- +CREATE TABLE [edfi].[SupporterMilitaryConnectionDescriptor] ( + [SupporterMilitaryConnectionDescriptorId] [INT] NOT NULL, + CONSTRAINT [SupporterMilitaryConnectionDescriptor_PK] PRIMARY KEY CLUSTERED ( + [SupporterMilitaryConnectionDescriptorId] ASC + ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + -- Table [edfi].[Survey] -- CREATE TABLE [edfi].[Survey] ( [Namespace] [NVARCHAR](255) NOT NULL, diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0030-ForeignKeys.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0030-ForeignKeys.sql index 5f41b5c4c7..9fb728bd99 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0030-ForeignKeys.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0030-ForeignKeys.sql @@ -1290,6 +1290,14 @@ CREATE NONCLUSTERED INDEX [FK_CourseTranscript_MethodCreditEarnedDescriptor] ON [edfi].[CourseTranscript] ([MethodCreditEarnedDescriptorId] ASC) GO +ALTER TABLE [edfi].[CourseTranscript] WITH CHECK ADD CONSTRAINT [FK_CourseTranscript_Staff] FOREIGN KEY ([ResponsibleTeacherStaffUSI]) +REFERENCES [edfi].[Staff] ([StaffUSI]) +GO + +CREATE NONCLUSTERED INDEX [FK_CourseTranscript_Staff] +ON [edfi].[CourseTranscript] ([ResponsibleTeacherStaffUSI] ASC) +GO + ALTER TABLE [edfi].[CourseTranscript] WITH CHECK ADD CONSTRAINT [FK_CourseTranscript_StudentAcademicRecord] FOREIGN KEY ([EducationOrganizationId], [SchoolYear], [StudentUSI], [TermDescriptorId]) REFERENCES [edfi].[StudentAcademicRecord] ([EducationOrganizationId], [SchoolYear], [StudentUSI], [TermDescriptorId]) GO @@ -1363,6 +1371,33 @@ CREATE NONCLUSTERED INDEX [FK_CourseTranscriptPartialCourseTranscriptAwards_Meth ON [edfi].[CourseTranscriptPartialCourseTranscriptAwards] ([MethodCreditEarnedDescriptorId] ASC) GO +ALTER TABLE [edfi].[CourseTranscriptProgram] WITH CHECK ADD CONSTRAINT [FK_CourseTranscriptProgram_CourseTranscript] FOREIGN KEY ([CourseAttemptResultDescriptorId], [CourseCode], [CourseEducationOrganizationId], [EducationOrganizationId], [SchoolYear], [StudentUSI], [TermDescriptorId]) +REFERENCES [edfi].[CourseTranscript] ([CourseAttemptResultDescriptorId], [CourseCode], [CourseEducationOrganizationId], [EducationOrganizationId], [SchoolYear], [StudentUSI], [TermDescriptorId]) +ON DELETE CASCADE +GO + +ALTER TABLE [edfi].[CourseTranscriptProgram] WITH CHECK ADD CONSTRAINT [FK_CourseTranscriptProgram_Program] FOREIGN KEY ([EducationOrganizationId], [ProgramName], [ProgramTypeDescriptorId]) +REFERENCES [edfi].[Program] ([EducationOrganizationId], [ProgramName], [ProgramTypeDescriptorId]) +GO + +CREATE NONCLUSTERED INDEX [FK_CourseTranscriptProgram_Program] +ON [edfi].[CourseTranscriptProgram] ([EducationOrganizationId] ASC, [ProgramName] ASC, [ProgramTypeDescriptorId] ASC) +GO + +ALTER TABLE [edfi].[CourseTranscriptSection] WITH CHECK ADD CONSTRAINT [FK_CourseTranscriptSection_CourseTranscript] FOREIGN KEY ([CourseAttemptResultDescriptorId], [CourseCode], [CourseEducationOrganizationId], [EducationOrganizationId], [SchoolYear], [StudentUSI], [TermDescriptorId]) +REFERENCES [edfi].[CourseTranscript] ([CourseAttemptResultDescriptorId], [CourseCode], [CourseEducationOrganizationId], [EducationOrganizationId], [SchoolYear], [StudentUSI], [TermDescriptorId]) +ON DELETE CASCADE +GO + +ALTER TABLE [edfi].[CourseTranscriptSection] WITH CHECK ADD CONSTRAINT [FK_CourseTranscriptSection_Section] FOREIGN KEY ([LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName]) +REFERENCES [edfi].[Section] ([LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName]) +ON UPDATE CASCADE +GO + +CREATE NONCLUSTERED INDEX [FK_CourseTranscriptSection_Section] +ON [edfi].[CourseTranscriptSection] ([LocalCourseCode] ASC, [SchoolId] ASC, [SchoolYear] ASC, [SectionIdentifier] ASC, [SessionName] ASC) +GO + ALTER TABLE [edfi].[Credential] WITH CHECK ADD CONSTRAINT [FK_Credential_CredentialFieldDescriptor] FOREIGN KEY ([CredentialFieldDescriptorId]) REFERENCES [edfi].[CredentialFieldDescriptor] ([CredentialFieldDescriptorId]) GO @@ -2161,12 +2196,12 @@ CREATE NONCLUSTERED INDEX [FK_Grade_GradeTypeDescriptor] ON [edfi].[Grade] ([GradeTypeDescriptorId] ASC) GO -ALTER TABLE [edfi].[Grade] WITH CHECK ADD CONSTRAINT [FK_Grade_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodSequence], [SchoolId], [GradingPeriodSchoolYear]) -REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [PeriodSequence], [SchoolId], [SchoolYear]) +ALTER TABLE [edfi].[Grade] WITH CHECK ADD CONSTRAINT [FK_Grade_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodName], [SchoolId], [GradingPeriodSchoolYear]) +REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [GradingPeriodName], [SchoolId], [SchoolYear]) GO CREATE NONCLUSTERED INDEX [FK_Grade_GradingPeriod] -ON [edfi].[Grade] ([GradingPeriodDescriptorId] ASC, [GradingPeriodSequence] ASC, [SchoolId] ASC, [GradingPeriodSchoolYear] ASC) +ON [edfi].[Grade] ([GradingPeriodDescriptorId] ASC, [GradingPeriodName] ASC, [SchoolId] ASC, [GradingPeriodSchoolYear] ASC) GO ALTER TABLE [edfi].[Grade] WITH CHECK ADD CONSTRAINT [FK_Grade_PerformanceBaseConversionDescriptor] FOREIGN KEY ([PerformanceBaseConversionDescriptorId]) @@ -2194,12 +2229,12 @@ CREATE NONCLUSTERED INDEX [FK_GradebookEntry_GradebookEntryTypeDescriptor] ON [edfi].[GradebookEntry] ([GradebookEntryTypeDescriptorId] ASC) GO -ALTER TABLE [edfi].[GradebookEntry] WITH CHECK ADD CONSTRAINT [FK_GradebookEntry_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [PeriodSequence], [SchoolId], [SchoolYear]) -REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [PeriodSequence], [SchoolId], [SchoolYear]) +ALTER TABLE [edfi].[GradebookEntry] WITH CHECK ADD CONSTRAINT [FK_GradebookEntry_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodName], [SchoolId], [SchoolYear]) +REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [GradingPeriodName], [SchoolId], [SchoolYear]) GO CREATE NONCLUSTERED INDEX [FK_GradebookEntry_GradingPeriod] -ON [edfi].[GradebookEntry] ([GradingPeriodDescriptorId] ASC, [PeriodSequence] ASC, [SchoolId] ASC, [SchoolYear] ASC) +ON [edfi].[GradebookEntry] ([GradingPeriodDescriptorId] ASC, [GradingPeriodName] ASC, [SchoolId] ASC, [SchoolYear] ASC) GO ALTER TABLE [edfi].[GradebookEntry] WITH CHECK ADD CONSTRAINT [FK_GradebookEntry_Section] FOREIGN KEY ([LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName]) @@ -2230,8 +2265,8 @@ REFERENCES [edfi].[Descriptor] ([DescriptorId]) ON DELETE CASCADE GO -ALTER TABLE [edfi].[GradeLearningStandardGrade] WITH CHECK ADD CONSTRAINT [FK_GradeLearningStandardGrade_Grade] FOREIGN KEY ([BeginDate], [GradeTypeDescriptorId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolYear], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) -REFERENCES [edfi].[Grade] ([BeginDate], [GradeTypeDescriptorId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolYear], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) +ALTER TABLE [edfi].[GradeLearningStandardGrade] WITH CHECK ADD CONSTRAINT [FK_GradeLearningStandardGrade_Grade] FOREIGN KEY ([BeginDate], [GradeTypeDescriptorId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolYear], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) +REFERENCES [edfi].[Grade] ([BeginDate], [GradeTypeDescriptorId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolYear], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) ON DELETE CASCADE ON UPDATE CASCADE GO @@ -3982,12 +4017,12 @@ CREATE NONCLUSTERED INDEX [FK_ReportCard_EducationOrganization] ON [edfi].[ReportCard] ([EducationOrganizationId] ASC) GO -ALTER TABLE [edfi].[ReportCard] WITH CHECK ADD CONSTRAINT [FK_ReportCard_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear]) -REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [PeriodSequence], [SchoolId], [SchoolYear]) +ALTER TABLE [edfi].[ReportCard] WITH CHECK ADD CONSTRAINT [FK_ReportCard_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear]) +REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [GradingPeriodName], [SchoolId], [SchoolYear]) GO CREATE NONCLUSTERED INDEX [FK_ReportCard_GradingPeriod] -ON [edfi].[ReportCard] ([GradingPeriodDescriptorId] ASC, [GradingPeriodSequence] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC) +ON [edfi].[ReportCard] ([GradingPeriodDescriptorId] ASC, [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC) GO ALTER TABLE [edfi].[ReportCard] WITH CHECK ADD CONSTRAINT [FK_ReportCard_Student] FOREIGN KEY ([StudentUSI]) @@ -3998,17 +4033,17 @@ CREATE NONCLUSTERED INDEX [FK_ReportCard_Student] ON [edfi].[ReportCard] ([StudentUSI] ASC) GO -ALTER TABLE [edfi].[ReportCardGrade] WITH CHECK ADD CONSTRAINT [FK_ReportCardGrade_Grade] FOREIGN KEY ([BeginDate], [GradeTypeDescriptorId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolYear], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) -REFERENCES [edfi].[Grade] ([BeginDate], [GradeTypeDescriptorId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolYear], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) +ALTER TABLE [edfi].[ReportCardGrade] WITH CHECK ADD CONSTRAINT [FK_ReportCardGrade_Grade] FOREIGN KEY ([BeginDate], [GradeTypeDescriptorId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolYear], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) +REFERENCES [edfi].[Grade] ([BeginDate], [GradeTypeDescriptorId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolYear], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) ON UPDATE CASCADE GO CREATE NONCLUSTERED INDEX [FK_ReportCardGrade_Grade] -ON [edfi].[ReportCardGrade] ([BeginDate] ASC, [GradeTypeDescriptorId] ASC, [GradingPeriodDescriptorId] ASC, [GradingPeriodSequence] ASC, [GradingPeriodSchoolYear] ASC, [LocalCourseCode] ASC, [SchoolId] ASC, [SchoolYear] ASC, [SectionIdentifier] ASC, [SessionName] ASC, [StudentUSI] ASC) +ON [edfi].[ReportCardGrade] ([BeginDate] ASC, [GradeTypeDescriptorId] ASC, [GradingPeriodDescriptorId] ASC, [GradingPeriodName] ASC, [GradingPeriodSchoolYear] ASC, [LocalCourseCode] ASC, [SchoolId] ASC, [SchoolYear] ASC, [SectionIdentifier] ASC, [SessionName] ASC, [StudentUSI] ASC) GO -ALTER TABLE [edfi].[ReportCardGrade] WITH CHECK ADD CONSTRAINT [FK_ReportCardGrade_ReportCard] FOREIGN KEY ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) -REFERENCES [edfi].[ReportCard] ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) +ALTER TABLE [edfi].[ReportCardGrade] WITH CHECK ADD CONSTRAINT [FK_ReportCardGrade_ReportCard] FOREIGN KEY ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) +REFERENCES [edfi].[ReportCard] ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) ON DELETE CASCADE GO @@ -4020,22 +4055,22 @@ CREATE NONCLUSTERED INDEX [FK_ReportCardGradePointAverage_GradePointAverageTypeD ON [edfi].[ReportCardGradePointAverage] ([GradePointAverageTypeDescriptorId] ASC) GO -ALTER TABLE [edfi].[ReportCardGradePointAverage] WITH CHECK ADD CONSTRAINT [FK_ReportCardGradePointAverage_ReportCard] FOREIGN KEY ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) -REFERENCES [edfi].[ReportCard] ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) +ALTER TABLE [edfi].[ReportCardGradePointAverage] WITH CHECK ADD CONSTRAINT [FK_ReportCardGradePointAverage_ReportCard] FOREIGN KEY ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) +REFERENCES [edfi].[ReportCard] ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) ON DELETE CASCADE GO -ALTER TABLE [edfi].[ReportCardStudentCompetencyObjective] WITH CHECK ADD CONSTRAINT [FK_ReportCardStudentCompetencyObjective_ReportCard] FOREIGN KEY ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) -REFERENCES [edfi].[ReportCard] ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) +ALTER TABLE [edfi].[ReportCardStudentCompetencyObjective] WITH CHECK ADD CONSTRAINT [FK_ReportCardStudentCompetencyObjective_ReportCard] FOREIGN KEY ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) +REFERENCES [edfi].[ReportCard] ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) ON DELETE CASCADE GO -ALTER TABLE [edfi].[ReportCardStudentCompetencyObjective] WITH CHECK ADD CONSTRAINT [FK_ReportCardStudentCompetencyObjective_StudentCompetencyObjective] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) -REFERENCES [edfi].[StudentCompetencyObjective] ([GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) +ALTER TABLE [edfi].[ReportCardStudentCompetencyObjective] WITH CHECK ADD CONSTRAINT [FK_ReportCardStudentCompetencyObjective_StudentCompetencyObjective] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) +REFERENCES [edfi].[StudentCompetencyObjective] ([GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) GO CREATE NONCLUSTERED INDEX [FK_ReportCardStudentCompetencyObjective_StudentCompetencyObjective] -ON [edfi].[ReportCardStudentCompetencyObjective] ([GradingPeriodDescriptorId] ASC, [GradingPeriodSequence] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [ObjectiveEducationOrganizationId] ASC, [Objective] ASC, [ObjectiveGradeLevelDescriptorId] ASC, [StudentUSI] ASC) +ON [edfi].[ReportCardStudentCompetencyObjective] ([GradingPeriodDescriptorId] ASC, [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [ObjectiveEducationOrganizationId] ASC, [Objective] ASC, [ObjectiveGradeLevelDescriptorId] ASC, [StudentUSI] ASC) GO ALTER TABLE [edfi].[ReporterDescriptionDescriptor] WITH CHECK ADD CONSTRAINT [FK_ReporterDescriptionDescriptor_Descriptor] FOREIGN KEY ([ReporterDescriptionDescriptorId]) @@ -4322,6 +4357,14 @@ CREATE NONCLUSTERED INDEX [FK_Section_School] ON [edfi].[Section] ([LocationSchoolId] ASC) GO +ALTER TABLE [edfi].[Section] WITH CHECK ADD CONSTRAINT [FK_Section_SectionTypeDescriptor] FOREIGN KEY ([SectionTypeDescriptorId]) +REFERENCES [edfi].[SectionTypeDescriptor] ([SectionTypeDescriptorId]) +GO + +CREATE NONCLUSTERED INDEX [FK_Section_SectionTypeDescriptor] +ON [edfi].[Section] ([SectionTypeDescriptorId] ASC) +GO + ALTER TABLE [edfi].[SectionAttendanceTakenEvent] WITH CHECK ADD CONSTRAINT [FK_SectionAttendanceTakenEvent_CalendarDate] FOREIGN KEY ([CalendarCode], [Date], [SchoolId], [SchoolYear]) REFERENCES [edfi].[CalendarDate] ([CalendarCode], [Date], [SchoolId], [SchoolYear]) GO @@ -4423,6 +4466,11 @@ ON DELETE CASCADE ON UPDATE CASCADE GO +ALTER TABLE [edfi].[SectionTypeDescriptor] WITH CHECK ADD CONSTRAINT [FK_SectionTypeDescriptor_Descriptor] FOREIGN KEY ([SectionTypeDescriptorId]) +REFERENCES [edfi].[Descriptor] ([DescriptorId]) +ON DELETE CASCADE +GO + ALTER TABLE [edfi].[SeparationDescriptor] WITH CHECK ADD CONSTRAINT [FK_SeparationDescriptor_Descriptor] FOREIGN KEY ([SeparationDescriptorId]) REFERENCES [edfi].[Descriptor] ([DescriptorId]) ON DELETE CASCADE @@ -4476,12 +4524,12 @@ ON DELETE CASCADE ON UPDATE CASCADE GO -ALTER TABLE [edfi].[SessionGradingPeriod] WITH CHECK ADD CONSTRAINT [FK_SessionGradingPeriod_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [PeriodSequence], [SchoolId], [SchoolYear]) -REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [PeriodSequence], [SchoolId], [SchoolYear]) +ALTER TABLE [edfi].[SessionGradingPeriod] WITH CHECK ADD CONSTRAINT [FK_SessionGradingPeriod_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodName], [SchoolId], [SchoolYear]) +REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [GradingPeriodName], [SchoolId], [SchoolYear]) GO CREATE NONCLUSTERED INDEX [FK_SessionGradingPeriod_GradingPeriod] -ON [edfi].[SessionGradingPeriod] ([GradingPeriodDescriptorId] ASC, [PeriodSequence] ASC, [SchoolId] ASC, [SchoolYear] ASC) +ON [edfi].[SessionGradingPeriod] ([GradingPeriodDescriptorId] ASC, [GradingPeriodName] ASC, [SchoolId] ASC, [SchoolYear] ASC) GO ALTER TABLE [edfi].[SessionGradingPeriod] WITH CHECK ADD CONSTRAINT [FK_SessionGradingPeriod_Session] FOREIGN KEY ([SchoolId], [SchoolYear], [SessionName]) @@ -5411,12 +5459,12 @@ REFERENCES [edfi].[StudentAcademicRecord] ([EducationOrganizationId], [SchoolYea ON DELETE CASCADE GO -ALTER TABLE [edfi].[StudentAcademicRecordReportCard] WITH CHECK ADD CONSTRAINT [FK_StudentAcademicRecordReportCard_ReportCard] FOREIGN KEY ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) -REFERENCES [edfi].[ReportCard] ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) +ALTER TABLE [edfi].[StudentAcademicRecordReportCard] WITH CHECK ADD CONSTRAINT [FK_StudentAcademicRecordReportCard_ReportCard] FOREIGN KEY ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) +REFERENCES [edfi].[ReportCard] ([EducationOrganizationId], [GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [StudentUSI]) GO CREATE NONCLUSTERED INDEX [FK_StudentAcademicRecordReportCard_ReportCard] -ON [edfi].[StudentAcademicRecordReportCard] ([EducationOrganizationId] ASC, [GradingPeriodDescriptorId] ASC, [GradingPeriodSequence] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [StudentUSI] ASC) +ON [edfi].[StudentAcademicRecordReportCard] ([EducationOrganizationId] ASC, [GradingPeriodDescriptorId] ASC, [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC, [StudentUSI] ASC) GO ALTER TABLE [edfi].[StudentAcademicRecordReportCard] WITH CHECK ADD CONSTRAINT [FK_StudentAcademicRecordReportCard_StudentAcademicRecord] FOREIGN KEY ([EducationOrganizationId], [SchoolYear], [StudentUSI], [TermDescriptorId]) @@ -5747,12 +5795,12 @@ CREATE NONCLUSTERED INDEX [FK_StudentCompetencyObjective_CompetencyObjective] ON [edfi].[StudentCompetencyObjective] ([ObjectiveEducationOrganizationId] ASC, [Objective] ASC, [ObjectiveGradeLevelDescriptorId] ASC) GO -ALTER TABLE [edfi].[StudentCompetencyObjective] WITH CHECK ADD CONSTRAINT [FK_StudentCompetencyObjective_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear]) -REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [PeriodSequence], [SchoolId], [SchoolYear]) +ALTER TABLE [edfi].[StudentCompetencyObjective] WITH CHECK ADD CONSTRAINT [FK_StudentCompetencyObjective_GradingPeriod] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear]) +REFERENCES [edfi].[GradingPeriod] ([GradingPeriodDescriptorId], [GradingPeriodName], [SchoolId], [SchoolYear]) GO CREATE NONCLUSTERED INDEX [FK_StudentCompetencyObjective_GradingPeriod] -ON [edfi].[StudentCompetencyObjective] ([GradingPeriodDescriptorId] ASC, [GradingPeriodSequence] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC) +ON [edfi].[StudentCompetencyObjective] ([GradingPeriodDescriptorId] ASC, [GradingPeriodName] ASC, [GradingPeriodSchoolId] ASC, [GradingPeriodSchoolYear] ASC) GO ALTER TABLE [edfi].[StudentCompetencyObjective] WITH CHECK ADD CONSTRAINT [FK_StudentCompetencyObjective_Student] FOREIGN KEY ([StudentUSI]) @@ -5771,13 +5819,13 @@ CREATE NONCLUSTERED INDEX [FK_StudentCompetencyObjectiveGeneralStudentProgramAss ON [edfi].[StudentCompetencyObjectiveGeneralStudentProgramAssociation] ([BeginDate] ASC, [EducationOrganizationId] ASC, [ProgramEducationOrganizationId] ASC, [ProgramName] ASC, [ProgramTypeDescriptorId] ASC, [StudentUSI] ASC) GO -ALTER TABLE [edfi].[StudentCompetencyObjectiveGeneralStudentProgramAssociation] WITH CHECK ADD CONSTRAINT [FK_StudentCompetencyObjectiveGeneralStudentProgramAssociation_StudentCompetencyObjective] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) -REFERENCES [edfi].[StudentCompetencyObjective] ([GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) +ALTER TABLE [edfi].[StudentCompetencyObjectiveGeneralStudentProgramAssociation] WITH CHECK ADD CONSTRAINT [FK_StudentCompetencyObjectiveGeneralStudentProgramAssociation_StudentCompetencyObjective] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) +REFERENCES [edfi].[StudentCompetencyObjective] ([GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) ON DELETE CASCADE GO -ALTER TABLE [edfi].[StudentCompetencyObjectiveStudentSectionAssociation] WITH CHECK ADD CONSTRAINT [FK_StudentCompetencyObjectiveStudentSectionAssociation_StudentCompetencyObjective] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) -REFERENCES [edfi].[StudentCompetencyObjective] ([GradingPeriodDescriptorId], [GradingPeriodSequence], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) +ALTER TABLE [edfi].[StudentCompetencyObjectiveStudentSectionAssociation] WITH CHECK ADD CONSTRAINT [FK_StudentCompetencyObjectiveStudentSectionAssociation_StudentCompetencyObjective] FOREIGN KEY ([GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) +REFERENCES [edfi].[StudentCompetencyObjective] ([GradingPeriodDescriptorId], [GradingPeriodName], [GradingPeriodSchoolId], [GradingPeriodSchoolYear], [ObjectiveEducationOrganizationId], [Objective], [ObjectiveGradeLevelDescriptorId], [StudentUSI]) ON DELETE CASCADE GO @@ -5986,6 +6034,14 @@ CREATE NONCLUSTERED INDEX [FK_StudentEducationOrganizationAssociation_Student] ON [edfi].[StudentEducationOrganizationAssociation] ([StudentUSI] ASC) GO +ALTER TABLE [edfi].[StudentEducationOrganizationAssociation] WITH CHECK ADD CONSTRAINT [FK_StudentEducationOrganizationAssociation_SupporterMilitaryConnectionDescriptor] FOREIGN KEY ([SupporterMilitaryConnectionDescriptorId]) +REFERENCES [edfi].[SupporterMilitaryConnectionDescriptor] ([SupporterMilitaryConnectionDescriptorId]) +GO + +CREATE NONCLUSTERED INDEX [FK_StudentEducationOrganizationAssociation_SupporterMilitaryConnectionDescriptor] +ON [edfi].[StudentEducationOrganizationAssociation] ([SupporterMilitaryConnectionDescriptorId] ASC) +GO + ALTER TABLE [edfi].[StudentEducationOrganizationAssociationAddress] WITH CHECK ADD CONSTRAINT [FK_StudentEducationOrganizationAssociationAddress_AddressTypeDescriptor] FOREIGN KEY ([AddressTypeDescriptorId]) REFERENCES [edfi].[AddressTypeDescriptor] ([AddressTypeDescriptorId]) GO @@ -7017,6 +7073,20 @@ CREATE NONCLUSTERED INDEX [FK_StudentSectionAssociation_Student] ON [edfi].[StudentSectionAssociation] ([StudentUSI] ASC) GO +ALTER TABLE [edfi].[StudentSectionAssociationProgram] WITH CHECK ADD CONSTRAINT [FK_StudentSectionAssociationProgram_Program] FOREIGN KEY ([EducationOrganizationId], [ProgramName], [ProgramTypeDescriptorId]) +REFERENCES [edfi].[Program] ([EducationOrganizationId], [ProgramName], [ProgramTypeDescriptorId]) +GO + +CREATE NONCLUSTERED INDEX [FK_StudentSectionAssociationProgram_Program] +ON [edfi].[StudentSectionAssociationProgram] ([EducationOrganizationId] ASC, [ProgramName] ASC, [ProgramTypeDescriptorId] ASC) +GO + +ALTER TABLE [edfi].[StudentSectionAssociationProgram] WITH CHECK ADD CONSTRAINT [FK_StudentSectionAssociationProgram_StudentSectionAssociation] FOREIGN KEY ([BeginDate], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) +REFERENCES [edfi].[StudentSectionAssociation] ([BeginDate], [LocalCourseCode], [SchoolId], [SchoolYear], [SectionIdentifier], [SessionName], [StudentUSI]) +ON DELETE CASCADE +ON UPDATE CASCADE +GO + ALTER TABLE [edfi].[StudentSectionAttendanceEvent] WITH CHECK ADD CONSTRAINT [FK_StudentSectionAttendanceEvent_AttendanceEventCategoryDescriptor] FOREIGN KEY ([AttendanceEventCategoryDescriptorId]) REFERENCES [edfi].[AttendanceEventCategoryDescriptor] ([AttendanceEventCategoryDescriptorId]) GO @@ -7251,6 +7321,11 @@ REFERENCES [edfi].[Descriptor] ([DescriptorId]) ON DELETE CASCADE GO +ALTER TABLE [edfi].[SupporterMilitaryConnectionDescriptor] WITH CHECK ADD CONSTRAINT [FK_SupporterMilitaryConnectionDescriptor_Descriptor] FOREIGN KEY ([SupporterMilitaryConnectionDescriptorId]) +REFERENCES [edfi].[Descriptor] ([DescriptorId]) +ON DELETE CASCADE +GO + ALTER TABLE [edfi].[Survey] WITH CHECK ADD CONSTRAINT [FK_Survey_EducationOrganization] FOREIGN KEY ([EducationOrganizationId]) REFERENCES [edfi].[EducationOrganization] ([EducationOrganizationId]) GO diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0050-ExtendedProperties.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0050-ExtendedProperties.sql index d97008cc33..51bd07eed3 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0050-ExtendedProperties.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/0050-ExtendedProperties.sql @@ -804,6 +804,8 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alpha GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A name given to an individual at birth, baptism, or during another naming ceremony, or through legal change.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Contact', @level2type=N'COLUMN', @level2name=N'FirstName' GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The gender the contact identifies themselves as.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Contact', @level2type=N'COLUMN', @level2name=N'GenderIdentity' +GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'An appendage, if any, used to denote an individual''s generation in his family (e.g., Jr., Sr., III).', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Contact', @level2type=N'COLUMN', @level2name=N'GenerationCodeSuffix' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The extent of formal instruction an individual has received (e.g., the highest grade in school completed or its equivalent or the highest degree received).', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Contact', @level2type=N'COLUMN', @level2name=N'HighestCompletedLevelOfEducationDescriptorId' @@ -1279,6 +1281,8 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The final indi GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The method the credits were earned.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscript', @level2type=N'COLUMN', @level2name=N'MethodCreditEarnedDescriptorId' GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alphanumeric code assigned to a staff.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscript', @level2type=N'COLUMN', @level2name=N'ResponsibleTeacherStaffUSI' +GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Student''s grade level at time of course.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscript', @level2type=N'COLUMN', @level2name=N'WhenTakenGradeLevelDescriptorId' GO @@ -1398,6 +1402,54 @@ GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The indicator of student performance as submitted by the instructor.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptPartialCourseTranscriptAwards', @level2type=N'COLUMN', @level2name=N'NumericGradeEarned' GO +-- Extended Properties [edfi].[CourseTranscriptProgram] -- +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The program(s) that the student participated in the context of the course.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The result from the student''s attempt to take the course.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram', @level2type=N'COLUMN', @level2name=N'CourseAttemptResultDescriptorId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alphanumeric code assigned to a course.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram', @level2type=N'COLUMN', @level2name=N'CourseCode' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to an education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram', @level2type=N'COLUMN', @level2name=N'CourseEducationOrganizationId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to an education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram', @level2type=N'COLUMN', @level2name=N'EducationOrganizationId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier for the school year.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram', @level2type=N'COLUMN', @level2name=N'SchoolYear' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alphanumeric code assigned to a student.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram', @level2type=N'COLUMN', @level2name=N'StudentUSI' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The term for the session during the school year.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram', @level2type=N'COLUMN', @level2name=N'TermDescriptorId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram', @level2type=N'COLUMN', @level2name=N'ProgramName' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The type of program.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptProgram', @level2type=N'COLUMN', @level2name=N'ProgramTypeDescriptorId' +GO + +-- Extended Properties [edfi].[CourseTranscriptSection] -- +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The section(s) associated with the course transcript.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The result from the student''s attempt to take the course.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'CourseAttemptResultDescriptorId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alphanumeric code assigned to a course.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'CourseCode' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to an education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'CourseEducationOrganizationId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to an education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'EducationOrganizationId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier for the school year.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'SchoolYear' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alphanumeric code assigned to a student.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'StudentUSI' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The term for the session during the school year.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'TermDescriptorId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The local code assigned by the School that identifies the course offering provided for the instruction of students.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'LocalCourseCode' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'SchoolId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The local identifier assigned to a section.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'SectionIdentifier' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier for the calendar for the academic session.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'CourseTranscriptSection', @level2type=N'COLUMN', @level2name=N'SessionName' +GO + -- Extended Properties [edfi].[Credential] -- EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The legal document giving authorization to perform teaching assignment services.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Credential' GO @@ -2244,9 +2296,9 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Month, day, an GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The type of grade reported (e.g., exam, final, grading period).', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Grade', @level2type=N'COLUMN', @level2name=N'GradeTypeDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Grade', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Grade', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Grade', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Grade', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier for the grading period school year.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Grade', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolYear' GO @@ -2294,14 +2346,14 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The time the a GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The type of the gradebook entry.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradebookEntry', @level2type=N'COLUMN', @level2name=N'GradebookEntryTypeDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradebookEntry', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradebookEntry', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradebookEntry', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The local code assigned by the School that identifies the course offering provided for the instruction of students.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradebookEntry', @level2type=N'COLUMN', @level2name=N'LocalCourseCode' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The maximum number of points that can be earned for the submission.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradebookEntry', @level2type=N'COLUMN', @level2name=N'MaxPoints' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradebookEntry', @level2type=N'COLUMN', @level2name=N'PeriodSequence' -GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradebookEntry', @level2type=N'COLUMN', @level2name=N'SchoolId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier for the school year.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradebookEntry', @level2type=N'COLUMN', @level2name=N'SchoolYear' @@ -2338,9 +2390,9 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Month, day, an GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The type of grade reported (e.g., exam, final, grading period).', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradeLearningStandardGrade', @level2type=N'COLUMN', @level2name=N'GradeTypeDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradeLearningStandardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradeLearningStandardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradeLearningStandardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradeLearningStandardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier for the grading period school year.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradeLearningStandardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolYear' GO @@ -2388,9 +2440,9 @@ GO -- Extended Properties [edfi].[GradingPeriod] -- EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'This entity represents the time span for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriod' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriod', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriod', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriod', @level2type=N'COLUMN', @level2name=N'PeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriod', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriod', @level2type=N'COLUMN', @level2name=N'SchoolId' GO @@ -2400,11 +2452,13 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Month, day, an GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Month, day, and year of the last day of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriod', @level2type=N'COLUMN', @level2name=N'EndDate' GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriod', @level2type=N'COLUMN', @level2name=N'PeriodSequence' +GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Total days available for educational instruction during the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriod', @level2type=N'COLUMN', @level2name=N'TotalInstructionalDays' GO -- Extended Properties [edfi].[GradingPeriodDescriptor] -- -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'This descriptor defines the name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriodDescriptor' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'This descriptor defines the state''s name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriodDescriptor' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'GradingPeriodDescriptor', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO @@ -4056,9 +4110,9 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'This education GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to an education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCard', @level2type=N'COLUMN', @level2name=N'EducationOrganizationId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolId' GO @@ -4078,9 +4132,9 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Grades for the GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to an education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGrade', @level2type=N'COLUMN', @level2name=N'EducationOrganizationId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGrade', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolId' GO @@ -4108,9 +4162,9 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A measure of a GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to an education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGradePointAverage', @level2type=N'COLUMN', @level2name=N'EducationOrganizationId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGradePointAverage', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGradePointAverage', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGradePointAverage', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGradePointAverage', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardGradePointAverage', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolId' GO @@ -4132,9 +4186,9 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The student co GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to an education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardStudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'EducationOrganizationId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardStudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardStudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardStudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardStudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'ReportCardStudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolId' GO @@ -4304,7 +4358,7 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The grade leve GO -- Extended Properties [edfi].[SchoolTypeDescriptor] -- -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The type of education institution as classified by its primary focus.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SchoolTypeDescriptor' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The type of education institution as classified by its primary focus such as Alternative, Career and Technical Education, Regular, or Special Education schools.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SchoolTypeDescriptor' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SchoolTypeDescriptor', @level2type=N'COLUMN', @level2name=N'SchoolTypeDescriptorId' GO @@ -4354,6 +4408,8 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The type of st GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A locally-defined name for the section, generally created to make the section more recognizable in informal contexts and generally distinct from the section identifier.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Section', @level2type=N'COLUMN', @level2name=N'SectionName' GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Specifies whether the section is for attendance only, credit only, or both.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Section', @level2type=N'COLUMN', @level2name=N'SectionTypeDescriptorId' +GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'When a section is part of a sequence of parts for a course, the number of the sequence. If the course has only one part, the value of this section attribute should be 1.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Section', @level2type=N'COLUMN', @level2name=N'SequenceOfCourse' GO @@ -4469,6 +4525,12 @@ GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The type of program.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SectionProgram', @level2type=N'COLUMN', @level2name=N'ProgramTypeDescriptorId' GO +-- Extended Properties [edfi].[SectionTypeDescriptor] -- +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Specifies whether the section is for attendance only, credit only, or both.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SectionTypeDescriptor' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SectionTypeDescriptor', @level2type=N'COLUMN', @level2name=N'SectionTypeDescriptorId' +GO + -- Extended Properties [edfi].[SeparationDescriptor] -- EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Type of employment separation; for example: Voluntary separation, Involuntary separation, Mutual agreement. Other, etc.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SeparationDescriptor' GO @@ -4488,7 +4550,7 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique ident GO -- Extended Properties [edfi].[Session] -- -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A term in the school year, generally a unit of time into which courses are scheduled, instruction occurs and by which credits are awarded. Sessions may be interrupted by vacations or other events.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Session' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A specific designated unit of time during which instruction is provided, grades are reported and academic credits are awarded to students (whenever applicable). Sessions serve as organized segments of the academic year and can be interrupted by vacations or other events.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Session' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Session', @level2type=N'COLUMN', @level2name=N'SchoolId' GO @@ -4500,7 +4562,7 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Month, day, an GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Month, day and year of the last day of the session.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Session', @level2type=N'COLUMN', @level2name=N'EndDate' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'An descriptor value indicating the term.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Session', @level2type=N'COLUMN', @level2name=N'TermDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A descriptor value to indicate the term that the session is associated with.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Session', @level2type=N'COLUMN', @level2name=N'TermDescriptorId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The total number of instructional days in the school calendar.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Session', @level2type=N'COLUMN', @level2name=N'TotalInstructionalDays' GO @@ -4526,9 +4588,9 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier for the calendar for the academic session.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SessionGradingPeriod', @level2type=N'COLUMN', @level2name=N'SessionName' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SessionGradingPeriod', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SessionGradingPeriod', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SessionGradingPeriod', @level2type=N'COLUMN', @level2name=N'PeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SessionGradingPeriod', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO -- Extended Properties [edfi].[SexDescriptor] -- @@ -4586,6 +4648,8 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'An indicator o GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A name given to an individual at birth, baptism, or during another naming ceremony, or through legal change.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Staff', @level2type=N'COLUMN', @level2name=N'FirstName' GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The gender the staff member identifies themselves as.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Staff', @level2type=N'COLUMN', @level2name=N'GenderIdentity' +GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'An appendage, if any, used to denote an individual''s generation in his family (e.g., Jr., Sr., III).', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Staff', @level2type=N'COLUMN', @level2name=N'GenerationCodeSuffix' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The extent of formal instruction an individual has received (e.g., the highest grade in school completed or its equivalent or the highest degree received).', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Staff', @level2type=N'COLUMN', @level2name=N'HighestCompletedLevelOfEducationDescriptorId' @@ -4880,6 +4944,8 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The month, day GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alphanumeric code assigned to a staff.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StaffEducationOrganizationEmploymentAssociation', @level2type=N'COLUMN', @level2name=N'StaffUSI' GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Annual wage associated with the employment position being reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StaffEducationOrganizationEmploymentAssociation', @level2type=N'COLUMN', @level2name=N'AnnualWage' +GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Identifier or serial number assigned to the credential.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StaffEducationOrganizationEmploymentAssociation', @level2type=N'COLUMN', @level2name=N'CredentialIdentifier' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The department or suborganization the employee/contractor is associated with in the education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StaffEducationOrganizationEmploymentAssociation', @level2type=N'COLUMN', @level2name=N'Department' @@ -5496,9 +5562,9 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alpha GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The term for the session during the school year.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentAcademicRecordReportCard', @level2type=N'COLUMN', @level2name=N'TermDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentAcademicRecordReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentAcademicRecordReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentAcademicRecordReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentAcademicRecordReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentAcademicRecordReportCard', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolId' GO @@ -5766,9 +5832,9 @@ GO -- Extended Properties [edfi].[StudentCompetencyObjective] -- EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'This entity represents the competency assessed or evaluated for the student against a specific competency objective.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjective' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjective', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolId' GO @@ -5790,9 +5856,9 @@ GO -- Extended Properties [edfi].[StudentCompetencyObjectiveGeneralStudentProgramAssociation] -- EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Relates the student and program associated with the competency objective.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveGeneralStudentProgramAssociation' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveGeneralStudentProgramAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveGeneralStudentProgramAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveGeneralStudentProgramAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveGeneralStudentProgramAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveGeneralStudentProgramAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolId' GO @@ -5820,9 +5886,9 @@ GO -- Extended Properties [edfi].[StudentCompetencyObjectiveStudentSectionAssociation] -- EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Relates the student and section associated with the competency objective.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveStudentSectionAssociation' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveStudentSectionAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The state''s name of the period for which grades are reported.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveStudentSectionAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodDescriptorId' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The sequential order of this period relative to other periods.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveStudentSectionAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodSequence' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The school''s descriptive name of the grading period.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveStudentSectionAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentCompetencyObjectiveStudentSectionAssociation', @level2type=N'COLUMN', @level2name=N'GradingPeriodSchoolId' GO @@ -5978,6 +6044,8 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alpha GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'An indication of the barrier to having internet access in the student’s primary place of residence.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentEducationOrganizationAssociation', @level2type=N'COLUMN', @level2name=N'BarrierToInternetAccessInResidenceDescriptorId' GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The student''s gender as last reported to the education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentEducationOrganizationAssociation', @level2type=N'COLUMN', @level2name=N'GenderIdentity' +GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'An indication that the individual traces his or her origin or descent to Mexico, Puerto Rico, Cuba, Central, and South America, and other Spanish cultures, regardless of race, as last reported to the education organization. The term, "Spanish origin," can be used in addition to "Hispanic or Latino."', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentEducationOrganizationAssociation', @level2type=N'COLUMN', @level2name=N'HispanicLatinoEthnicity' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'An indication of whether the student is able to access the internet in their primary place of residence.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentEducationOrganizationAssociation', @level2type=N'COLUMN', @level2name=N'InternetAccessInResidence' @@ -5998,7 +6066,9 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The provider o GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Locator reference for the student photo. The specification for that reference is left to local definition.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentEducationOrganizationAssociation', @level2type=N'COLUMN', @level2name=N'ProfileThumbnail' GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The student''s gender as last reported to the education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentEducationOrganizationAssociation', @level2type=N'COLUMN', @level2name=N'SexDescriptorId' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The student''s birth sex as reported to the education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentEducationOrganizationAssociation', @level2type=N'COLUMN', @level2name=N'SexDescriptorId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Military connection of the person/people whom the student is a dependent of.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentEducationOrganizationAssociation', @level2type=N'COLUMN', @level2name=N'SupporterMilitaryConnectionDescriptorId' GO -- Extended Properties [edfi].[StudentEducationOrganizationAssociationAddress] -- @@ -7044,6 +7114,30 @@ GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Indicates that the student-section combination is excluded from calculation of value-added or growth attribution calculations used for a particular teacher evaluation.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociation', @level2type=N'COLUMN', @level2name=N'TeacherStudentDataLinkExclusion' GO +-- Extended Properties [edfi].[StudentSectionAssociationProgram] -- +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The program(s) that the student is participating in the context of the course.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Month, day, and year of the student''s entry or assignment to the section.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'BeginDate' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The local code assigned by the School that identifies the course offering provided for the instruction of students.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'LocalCourseCode' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to a school.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'SchoolId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier for the school year.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'SchoolYear' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The local identifier assigned to a section.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'SectionIdentifier' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier for the calendar for the academic session.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'SessionName' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique alphanumeric code assigned to a student.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'StudentUSI' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The identifier assigned to an education organization.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'EducationOrganizationId' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'ProgramName' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'The type of program.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAssociationProgram', @level2type=N'COLUMN', @level2name=N'ProgramTypeDescriptorId' +GO + -- Extended Properties [edfi].[StudentSectionAttendanceEvent] -- EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'This event entity represents the recording of whether a student is in attendance for a section.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'StudentSectionAttendanceEvent' GO @@ -7350,6 +7444,12 @@ GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SubmissionStatusDescriptor', @level2type=N'COLUMN', @level2name=N'SubmissionStatusDescriptorId' GO +-- Extended Properties [edfi].[SupporterMilitaryConnectionDescriptor] -- +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Military connection of the person/people whom the student is a dependent of.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SupporterMilitaryConnectionDescriptor' +GO +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'SupporterMilitaryConnectionDescriptor', @level2type=N'COLUMN', @level2name=N'SupporterMilitaryConnectionDescriptorId' +GO + -- Extended Properties [edfi].[Survey] -- EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A survey to identified or anonymous respondents.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'Survey' GO @@ -7673,7 +7773,7 @@ EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique ident GO -- Extended Properties [edfi].[TermDescriptor] -- -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'This descriptor defines the term of a session during the school year (e.g., Semester).', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'TermDescriptor' +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A distinct period of time into which the academic year is divided. These could be “semesters”, “trimesters” or “quarters”, depending on the school or district’s academic calendar.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'TermDescriptor' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.', @level0type=N'SCHEMA', @level0name=N'edfi', @level1type=N'TABLE', @level1name=N'TermDescriptor', @level2type=N'COLUMN', @level2name=N'TermDescriptorId' GO diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0200-CreateTrackedChangeTables.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0200-CreateTrackedChangeTables.sql index 8723be454a..e3afe51f4d 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0200-CreateTrackedChangeTables.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0200-CreateTrackedChangeTables.sql @@ -547,7 +547,7 @@ CREATE TABLE [tracked_changes_edfi].[Grade] OldGradingPeriodDescriptorId [INT] NOT NULL, OldGradingPeriodDescriptorNamespace [NVARCHAR](255) NOT NULL, OldGradingPeriodDescriptorCodeValue [NVARCHAR](50) NOT NULL, - OldGradingPeriodSequence [INT] NOT NULL, + OldGradingPeriodName [NVARCHAR](60) NOT NULL, OldGradingPeriodSchoolYear [SMALLINT] NOT NULL, OldLocalCourseCode [NVARCHAR](60) NOT NULL, OldSchoolId [BIGINT] NOT NULL, @@ -563,7 +563,7 @@ CREATE TABLE [tracked_changes_edfi].[Grade] NewGradingPeriodDescriptorId [INT] NULL, NewGradingPeriodDescriptorNamespace [NVARCHAR](255) NULL, NewGradingPeriodDescriptorCodeValue [NVARCHAR](50) NULL, - NewGradingPeriodSequence [INT] NULL, + NewGradingPeriodName [NVARCHAR](60) NULL, NewGradingPeriodSchoolYear [SMALLINT] NULL, NewLocalCourseCode [NVARCHAR](60) NULL, NewSchoolId [BIGINT] NULL, @@ -597,13 +597,13 @@ CREATE TABLE [tracked_changes_edfi].[GradingPeriod] OldGradingPeriodDescriptorId [INT] NOT NULL, OldGradingPeriodDescriptorNamespace [NVARCHAR](255) NOT NULL, OldGradingPeriodDescriptorCodeValue [NVARCHAR](50) NOT NULL, - OldPeriodSequence [INT] NOT NULL, + OldGradingPeriodName [NVARCHAR](60) NOT NULL, OldSchoolId [BIGINT] NOT NULL, OldSchoolYear [SMALLINT] NOT NULL, NewGradingPeriodDescriptorId [INT] NULL, NewGradingPeriodDescriptorNamespace [NVARCHAR](255) NULL, NewGradingPeriodDescriptorCodeValue [NVARCHAR](50) NULL, - NewPeriodSequence [INT] NULL, + NewGradingPeriodName [NVARCHAR](60) NULL, NewSchoolId [BIGINT] NULL, NewSchoolYear [SMALLINT] NULL, Id uniqueidentifier NOT NULL, @@ -1065,7 +1065,7 @@ CREATE TABLE [tracked_changes_edfi].[ReportCard] OldGradingPeriodDescriptorId [INT] NOT NULL, OldGradingPeriodDescriptorNamespace [NVARCHAR](255) NOT NULL, OldGradingPeriodDescriptorCodeValue [NVARCHAR](50) NOT NULL, - OldGradingPeriodSequence [INT] NOT NULL, + OldGradingPeriodName [NVARCHAR](60) NOT NULL, OldGradingPeriodSchoolId [BIGINT] NOT NULL, OldGradingPeriodSchoolYear [SMALLINT] NOT NULL, OldStudentUSI [INT] NOT NULL, @@ -1074,7 +1074,7 @@ CREATE TABLE [tracked_changes_edfi].[ReportCard] NewGradingPeriodDescriptorId [INT] NULL, NewGradingPeriodDescriptorNamespace [NVARCHAR](255) NULL, NewGradingPeriodDescriptorCodeValue [NVARCHAR](50) NULL, - NewGradingPeriodSequence [INT] NULL, + NewGradingPeriodName [NVARCHAR](60) NULL, NewGradingPeriodSchoolId [BIGINT] NULL, NewGradingPeriodSchoolYear [SMALLINT] NULL, NewStudentUSI [INT] NULL, @@ -1512,7 +1512,7 @@ CREATE TABLE [tracked_changes_edfi].[StudentCompetencyObjective] OldGradingPeriodDescriptorId [INT] NOT NULL, OldGradingPeriodDescriptorNamespace [NVARCHAR](255) NOT NULL, OldGradingPeriodDescriptorCodeValue [NVARCHAR](50) NOT NULL, - OldGradingPeriodSequence [INT] NOT NULL, + OldGradingPeriodName [NVARCHAR](60) NOT NULL, OldGradingPeriodSchoolId [BIGINT] NOT NULL, OldGradingPeriodSchoolYear [SMALLINT] NOT NULL, OldObjectiveEducationOrganizationId [BIGINT] NOT NULL, @@ -1525,7 +1525,7 @@ CREATE TABLE [tracked_changes_edfi].[StudentCompetencyObjective] NewGradingPeriodDescriptorId [INT] NULL, NewGradingPeriodDescriptorNamespace [NVARCHAR](255) NULL, NewGradingPeriodDescriptorCodeValue [NVARCHAR](50) NULL, - NewGradingPeriodSequence [INT] NULL, + NewGradingPeriodName [NVARCHAR](60) NULL, NewGradingPeriodSchoolId [BIGINT] NULL, NewGradingPeriodSchoolYear [SMALLINT] NULL, NewObjectiveEducationOrganizationId [BIGINT] NULL, diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0210-CreateTriggersForChangeVersionAndKeyChanges.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0210-CreateTriggersForChangeVersionAndKeyChanges.sql index 3df7ffa089..b1292eace2 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0210-CreateTriggersForChangeVersionAndKeyChanges.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0210-CreateTriggersForChangeVersionAndKeyChanges.sql @@ -485,12 +485,12 @@ BEGIN -- Handle key changes INSERT INTO tracked_changes_edfi.Grade( - OldBeginDate, OldGradeTypeDescriptorId, OldGradeTypeDescriptorNamespace, OldGradeTypeDescriptorCodeValue, OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldGradingPeriodSequence, OldGradingPeriodSchoolYear, OldLocalCourseCode, OldSchoolId, OldSchoolYear, OldSectionIdentifier, OldSessionName, OldStudentUSI, OldStudentUniqueId, - NewBeginDate, NewGradeTypeDescriptorId, NewGradeTypeDescriptorNamespace, NewGradeTypeDescriptorCodeValue, NewGradingPeriodDescriptorId, NewGradingPeriodDescriptorNamespace, NewGradingPeriodDescriptorCodeValue, NewGradingPeriodSequence, NewGradingPeriodSchoolYear, NewLocalCourseCode, NewSchoolId, NewSchoolYear, NewSectionIdentifier, NewSessionName, NewStudentUSI, NewStudentUniqueId, + OldBeginDate, OldGradeTypeDescriptorId, OldGradeTypeDescriptorNamespace, OldGradeTypeDescriptorCodeValue, OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldGradingPeriodName, OldGradingPeriodSchoolYear, OldLocalCourseCode, OldSchoolId, OldSchoolYear, OldSectionIdentifier, OldSessionName, OldStudentUSI, OldStudentUniqueId, + NewBeginDate, NewGradeTypeDescriptorId, NewGradeTypeDescriptorNamespace, NewGradeTypeDescriptorCodeValue, NewGradingPeriodDescriptorId, NewGradingPeriodDescriptorNamespace, NewGradingPeriodDescriptorCodeValue, NewGradingPeriodName, NewGradingPeriodSchoolYear, NewLocalCourseCode, NewSchoolId, NewSchoolYear, NewSectionIdentifier, NewSessionName, NewStudentUSI, NewStudentUniqueId, Id, ChangeVersion) SELECT - d.BeginDate, d.GradeTypeDescriptorId, dj0.Namespace, dj0.CodeValue, d.GradingPeriodDescriptorId, dj1.Namespace, dj1.CodeValue, d.GradingPeriodSequence, d.GradingPeriodSchoolYear, d.LocalCourseCode, d.SchoolId, d.SchoolYear, d.SectionIdentifier, d.SessionName, d.StudentUSI, dj2.StudentUniqueId, - i.BeginDate, i.GradeTypeDescriptorId, ij0.Namespace, ij0.CodeValue, i.GradingPeriodDescriptorId, ij1.Namespace, ij1.CodeValue, i.GradingPeriodSequence, i.GradingPeriodSchoolYear, i.LocalCourseCode, i.SchoolId, i.SchoolYear, i.SectionIdentifier, i.SessionName, i.StudentUSI, ij2.StudentUniqueId, + d.BeginDate, d.GradeTypeDescriptorId, dj0.Namespace, dj0.CodeValue, d.GradingPeriodDescriptorId, dj1.Namespace, dj1.CodeValue, d.GradingPeriodName, d.GradingPeriodSchoolYear, d.LocalCourseCode, d.SchoolId, d.SchoolYear, d.SectionIdentifier, d.SessionName, d.StudentUSI, dj2.StudentUniqueId, + i.BeginDate, i.GradeTypeDescriptorId, ij0.Namespace, ij0.CodeValue, i.GradingPeriodDescriptorId, ij1.Namespace, ij1.CodeValue, i.GradingPeriodName, i.GradingPeriodSchoolYear, i.LocalCourseCode, i.SchoolId, i.SchoolYear, i.SectionIdentifier, i.SessionName, i.StudentUSI, ij2.StudentUniqueId, d.Id, (NEXT VALUE FOR [changes].[ChangeVersionSequence]) FROM deleted d INNER JOIN inserted i ON d.Id = i.Id INNER JOIN edfi.Descriptor dj0 @@ -507,7 +507,7 @@ BEGIN ON i.StudentUSI = ij2.StudentUSI WHERE - d.BeginDate <> i.BeginDate OR d.GradeTypeDescriptorId <> i.GradeTypeDescriptorId OR d.GradingPeriodDescriptorId <> i.GradingPeriodDescriptorId OR d.GradingPeriodSequence <> i.GradingPeriodSequence OR d.GradingPeriodSchoolYear <> i.GradingPeriodSchoolYear OR d.LocalCourseCode <> i.LocalCourseCode OR d.SchoolId <> i.SchoolId OR d.SchoolYear <> i.SchoolYear OR d.SectionIdentifier <> i.SectionIdentifier OR d.SessionName <> i.SessionName OR d.StudentUSI <> i.StudentUSI; + d.BeginDate <> i.BeginDate OR d.GradeTypeDescriptorId <> i.GradeTypeDescriptorId OR d.GradingPeriodDescriptorId <> i.GradingPeriodDescriptorId OR d.GradingPeriodName <> i.GradingPeriodName OR d.GradingPeriodSchoolYear <> i.GradingPeriodSchoolYear OR d.LocalCourseCode <> i.LocalCourseCode OR d.SchoolId <> i.SchoolId OR d.SchoolYear <> i.SchoolYear OR d.SectionIdentifier <> i.SectionIdentifier OR d.SessionName <> i.SessionName OR d.StudentUSI <> i.StudentUSI; END GO diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0220-CreateTriggersForDeleteTracking.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0220-CreateTriggersForDeleteTracking.sql index 5b3bf0bc9f..8855463bc4 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0220-CreateTriggersForDeleteTracking.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/MsSql/Structure/Ods/Changes/0220-CreateTriggersForDeleteTracking.sql @@ -2271,8 +2271,8 @@ BEGIN SET NOCOUNT ON - INSERT INTO [tracked_changes_edfi].[Grade](OldBeginDate, OldGradeTypeDescriptorId, OldGradeTypeDescriptorNamespace, OldGradeTypeDescriptorCodeValue, OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldGradingPeriodSequence, OldGradingPeriodSchoolYear, OldLocalCourseCode, OldSchoolId, OldSchoolYear, OldSectionIdentifier, OldSessionName, OldStudentUSI, OldStudentUniqueId, Id, Discriminator, ChangeVersion) - SELECT d.BeginDate, d.GradeTypeDescriptorId, j0.Namespace, j0.CodeValue, d.GradingPeriodDescriptorId, j1.Namespace, j1.CodeValue, d.GradingPeriodSequence, d.GradingPeriodSchoolYear, d.LocalCourseCode, d.SchoolId, d.SchoolYear, d.SectionIdentifier, d.SessionName, d.StudentUSI, j2.StudentUniqueId, d.Id, d.Discriminator, (NEXT VALUE FOR [changes].[ChangeVersionSequence]) + INSERT INTO [tracked_changes_edfi].[Grade](OldBeginDate, OldGradeTypeDescriptorId, OldGradeTypeDescriptorNamespace, OldGradeTypeDescriptorCodeValue, OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldGradingPeriodName, OldGradingPeriodSchoolYear, OldLocalCourseCode, OldSchoolId, OldSchoolYear, OldSectionIdentifier, OldSessionName, OldStudentUSI, OldStudentUniqueId, Id, Discriminator, ChangeVersion) + SELECT d.BeginDate, d.GradeTypeDescriptorId, j0.Namespace, j0.CodeValue, d.GradingPeriodDescriptorId, j1.Namespace, j1.CodeValue, d.GradingPeriodName, d.GradingPeriodSchoolYear, d.LocalCourseCode, d.SchoolId, d.SchoolYear, d.SectionIdentifier, d.SessionName, d.StudentUSI, j2.StudentUniqueId, d.Id, d.Discriminator, (NEXT VALUE FOR [changes].[ChangeVersionSequence]) FROM deleted d INNER JOIN edfi.Descriptor j0 ON d.GradeTypeDescriptorId = j0.DescriptorId @@ -2401,8 +2401,8 @@ BEGIN SET NOCOUNT ON - INSERT INTO [tracked_changes_edfi].[GradingPeriod](OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldPeriodSequence, OldSchoolId, OldSchoolYear, Id, Discriminator, ChangeVersion) - SELECT d.GradingPeriodDescriptorId, j0.Namespace, j0.CodeValue, d.PeriodSequence, d.SchoolId, d.SchoolYear, d.Id, d.Discriminator, (NEXT VALUE FOR [changes].[ChangeVersionSequence]) + INSERT INTO [tracked_changes_edfi].[GradingPeriod](OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldGradingPeriodName, OldSchoolId, OldSchoolYear, Id, Discriminator, ChangeVersion) + SELECT d.GradingPeriodDescriptorId, j0.Namespace, j0.CodeValue, d.GradingPeriodName, d.SchoolId, d.SchoolYear, d.Id, d.Discriminator, (NEXT VALUE FOR [changes].[ChangeVersionSequence]) FROM deleted d INNER JOIN edfi.Descriptor j0 ON d.GradingPeriodDescriptorId = j0.DescriptorId @@ -4530,8 +4530,8 @@ BEGIN SET NOCOUNT ON - INSERT INTO [tracked_changes_edfi].[ReportCard](OldEducationOrganizationId, OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldGradingPeriodSequence, OldGradingPeriodSchoolId, OldGradingPeriodSchoolYear, OldStudentUSI, OldStudentUniqueId, Id, Discriminator, ChangeVersion) - SELECT d.EducationOrganizationId, d.GradingPeriodDescriptorId, j0.Namespace, j0.CodeValue, d.GradingPeriodSequence, d.GradingPeriodSchoolId, d.GradingPeriodSchoolYear, d.StudentUSI, j1.StudentUniqueId, d.Id, d.Discriminator, (NEXT VALUE FOR [changes].[ChangeVersionSequence]) + INSERT INTO [tracked_changes_edfi].[ReportCard](OldEducationOrganizationId, OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldGradingPeriodName, OldGradingPeriodSchoolId, OldGradingPeriodSchoolYear, OldStudentUSI, OldStudentUniqueId, Id, Discriminator, ChangeVersion) + SELECT d.EducationOrganizationId, d.GradingPeriodDescriptorId, j0.Namespace, j0.CodeValue, d.GradingPeriodName, d.GradingPeriodSchoolId, d.GradingPeriodSchoolYear, d.StudentUSI, j1.StudentUniqueId, d.Id, d.Discriminator, (NEXT VALUE FOR [changes].[ChangeVersionSequence]) FROM deleted d INNER JOIN edfi.Descriptor j0 ON d.GradingPeriodDescriptorId = j0.DescriptorId @@ -4920,6 +4920,27 @@ ALTER TABLE [edfi].[SectionCharacteristicDescriptor] ENABLE TRIGGER [edfi_Sectio GO +DROP TRIGGER IF EXISTS [edfi].[edfi_SectionTypeDescriptor_TR_DeleteTracking] +GO + +CREATE TRIGGER [edfi].[edfi_SectionTypeDescriptor_TR_DeleteTracking] ON [edfi].[SectionTypeDescriptor] AFTER DELETE AS +BEGIN + IF @@rowcount = 0 + RETURN + + SET NOCOUNT ON + + INSERT INTO [tracked_changes_edfi].[Descriptor](OldDescriptorId, OldCodeValue, OldNamespace, Id, Discriminator, ChangeVersion) + SELECT d.SectionTypeDescriptorId, b.CodeValue, b.Namespace, b.Id, 'edfi.SectionTypeDescriptor', (NEXT VALUE FOR [changes].[ChangeVersionSequence]) + FROM deleted d + INNER JOIN edfi.Descriptor b ON d.SectionTypeDescriptorId = b.DescriptorId +END +GO + +ALTER TABLE [edfi].[SectionTypeDescriptor] ENABLE TRIGGER [edfi_SectionTypeDescriptor_TR_DeleteTracking] +GO + + DROP TRIGGER IF EXISTS [edfi].[edfi_SeparationDescriptor_TR_DeleteTracking] GO @@ -5586,8 +5607,8 @@ BEGIN SET NOCOUNT ON - INSERT INTO [tracked_changes_edfi].[StudentCompetencyObjective](OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldGradingPeriodSequence, OldGradingPeriodSchoolId, OldGradingPeriodSchoolYear, OldObjectiveEducationOrganizationId, OldObjective, OldObjectiveGradeLevelDescriptorId, OldObjectiveGradeLevelDescriptorNamespace, OldObjectiveGradeLevelDescriptorCodeValue, OldStudentUSI, OldStudentUniqueId, Id, Discriminator, ChangeVersion) - SELECT d.GradingPeriodDescriptorId, j0.Namespace, j0.CodeValue, d.GradingPeriodSequence, d.GradingPeriodSchoolId, d.GradingPeriodSchoolYear, d.ObjectiveEducationOrganizationId, d.Objective, d.ObjectiveGradeLevelDescriptorId, j1.Namespace, j1.CodeValue, d.StudentUSI, j2.StudentUniqueId, d.Id, d.Discriminator, (NEXT VALUE FOR [changes].[ChangeVersionSequence]) + INSERT INTO [tracked_changes_edfi].[StudentCompetencyObjective](OldGradingPeriodDescriptorId, OldGradingPeriodDescriptorNamespace, OldGradingPeriodDescriptorCodeValue, OldGradingPeriodName, OldGradingPeriodSchoolId, OldGradingPeriodSchoolYear, OldObjectiveEducationOrganizationId, OldObjective, OldObjectiveGradeLevelDescriptorId, OldObjectiveGradeLevelDescriptorNamespace, OldObjectiveGradeLevelDescriptorCodeValue, OldStudentUSI, OldStudentUniqueId, Id, Discriminator, ChangeVersion) + SELECT d.GradingPeriodDescriptorId, j0.Namespace, j0.CodeValue, d.GradingPeriodName, d.GradingPeriodSchoolId, d.GradingPeriodSchoolYear, d.ObjectiveEducationOrganizationId, d.Objective, d.ObjectiveGradeLevelDescriptorId, j1.Namespace, j1.CodeValue, d.StudentUSI, j2.StudentUniqueId, d.Id, d.Discriminator, (NEXT VALUE FOR [changes].[ChangeVersionSequence]) FROM deleted d INNER JOIN edfi.Descriptor j0 ON d.GradingPeriodDescriptorId = j0.DescriptorId @@ -6019,6 +6040,27 @@ ALTER TABLE [edfi].[SubmissionStatusDescriptor] ENABLE TRIGGER [edfi_SubmissionS GO +DROP TRIGGER IF EXISTS [edfi].[edfi_SupporterMilitaryConnectionDescriptor_TR_DeleteTracking] +GO + +CREATE TRIGGER [edfi].[edfi_SupporterMilitaryConnectionDescriptor_TR_DeleteTracking] ON [edfi].[SupporterMilitaryConnectionDescriptor] AFTER DELETE AS +BEGIN + IF @@rowcount = 0 + RETURN + + SET NOCOUNT ON + + INSERT INTO [tracked_changes_edfi].[Descriptor](OldDescriptorId, OldCodeValue, OldNamespace, Id, Discriminator, ChangeVersion) + SELECT d.SupporterMilitaryConnectionDescriptorId, b.CodeValue, b.Namespace, b.Id, 'edfi.SupporterMilitaryConnectionDescriptor', (NEXT VALUE FOR [changes].[ChangeVersionSequence]) + FROM deleted d + INNER JOIN edfi.Descriptor b ON d.SupporterMilitaryConnectionDescriptorId = b.DescriptorId +END +GO + +ALTER TABLE [edfi].[SupporterMilitaryConnectionDescriptor] ENABLE TRIGGER [edfi_SupporterMilitaryConnectionDescriptor_TR_DeleteTracking] +GO + + DROP TRIGGER IF EXISTS [edfi].[edfi_Survey_TR_DeleteTracking] GO diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0020-Tables.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0020-Tables.sql index 17063e9c58..fcd8c2e7c3 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0020-Tables.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0020-Tables.sql @@ -767,6 +767,7 @@ CREATE TABLE edfi.Contact ( ContactUSI SERIAL NOT NULL, ContactUniqueId VARCHAR(32) NOT NULL, FirstName VARCHAR(75) NOT NULL, + GenderIdentity VARCHAR(60) NULL, GenerationCodeSuffix VARCHAR(10) NULL, HighestCompletedLevelOfEducationDescriptorId INT NULL, LastSurname VARCHAR(75) NOT NULL, @@ -1158,6 +1159,7 @@ CREATE TABLE edfi.CourseTranscript ( FinalLetterGradeEarned VARCHAR(20) NULL, FinalNumericGradeEarned DECIMAL(9, 2) NULL, MethodCreditEarnedDescriptorId INT NULL, + ResponsibleTeacherStaffUSI INT NULL, WhenTakenGradeLevelDescriptorId INT NULL, Discriminator VARCHAR(128) NULL, CreateDate TIMESTAMP NOT NULL, @@ -1252,6 +1254,40 @@ CREATE TABLE edfi.CourseTranscriptPartialCourseTranscriptAwards ( ); ALTER TABLE edfi.CourseTranscriptPartialCourseTranscriptAwards ALTER COLUMN CreateDate SET DEFAULT current_timestamp; +-- Table edfi.CourseTranscriptProgram -- +CREATE TABLE edfi.CourseTranscriptProgram ( + CourseAttemptResultDescriptorId INT NOT NULL, + CourseCode VARCHAR(60) NOT NULL, + CourseEducationOrganizationId BIGINT NOT NULL, + EducationOrganizationId BIGINT NOT NULL, + SchoolYear SMALLINT NOT NULL, + StudentUSI INT NOT NULL, + TermDescriptorId INT NOT NULL, + ProgramName VARCHAR(60) NOT NULL, + ProgramTypeDescriptorId INT NOT NULL, + CreateDate TIMESTAMP NOT NULL, + CONSTRAINT CourseTranscriptProgram_PK PRIMARY KEY (CourseAttemptResultDescriptorId, CourseCode, CourseEducationOrganizationId, EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId, ProgramName, ProgramTypeDescriptorId) +); +ALTER TABLE edfi.CourseTranscriptProgram ALTER COLUMN CreateDate SET DEFAULT current_timestamp; + +-- Table edfi.CourseTranscriptSection -- +CREATE TABLE edfi.CourseTranscriptSection ( + CourseAttemptResultDescriptorId INT NOT NULL, + CourseCode VARCHAR(60) NOT NULL, + CourseEducationOrganizationId BIGINT NOT NULL, + EducationOrganizationId BIGINT NOT NULL, + SchoolYear SMALLINT NOT NULL, + StudentUSI INT NOT NULL, + TermDescriptorId INT NOT NULL, + LocalCourseCode VARCHAR(60) NOT NULL, + SchoolId BIGINT NOT NULL, + SectionIdentifier VARCHAR(255) NOT NULL, + SessionName VARCHAR(60) NOT NULL, + CreateDate TIMESTAMP NOT NULL, + CONSTRAINT CourseTranscriptSection_PK PRIMARY KEY (CourseAttemptResultDescriptorId, CourseCode, CourseEducationOrganizationId, EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId, LocalCourseCode, SchoolId, SectionIdentifier, SessionName) +); +ALTER TABLE edfi.CourseTranscriptSection ALTER COLUMN CreateDate SET DEFAULT current_timestamp; + -- Table edfi.Credential -- CREATE TABLE edfi.Credential ( CredentialIdentifier VARCHAR(60) NOT NULL, @@ -2071,7 +2107,7 @@ CREATE TABLE edfi.Grade ( BeginDate DATE NOT NULL, GradeTypeDescriptorId INT NOT NULL, GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, LocalCourseCode VARCHAR(60) NOT NULL, SchoolId BIGINT NOT NULL, @@ -2090,7 +2126,7 @@ CREATE TABLE edfi.Grade ( CreateDate TIMESTAMP NOT NULL, LastModifiedDate TIMESTAMP NOT NULL, Id UUID NOT NULL, - CONSTRAINT Grade_PK PRIMARY KEY (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) + CONSTRAINT Grade_PK PRIMARY KEY (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) ); ALTER TABLE edfi.Grade ALTER COLUMN CreateDate SET DEFAULT current_timestamp; ALTER TABLE edfi.Grade ALTER COLUMN Id SET DEFAULT gen_random_uuid(); @@ -2106,9 +2142,9 @@ CREATE TABLE edfi.GradebookEntry ( DueTime TIME NULL, GradebookEntryTypeDescriptorId INT NULL, GradingPeriodDescriptorId INT NULL, + GradingPeriodName VARCHAR(60) NULL, LocalCourseCode VARCHAR(60) NULL, MaxPoints DECIMAL(9, 2) NULL, - PeriodSequence INT NULL, SchoolId BIGINT NULL, SchoolYear SMALLINT NULL, SectionIdentifier VARCHAR(255) NULL, @@ -2146,7 +2182,7 @@ CREATE TABLE edfi.GradeLearningStandardGrade ( BeginDate DATE NOT NULL, GradeTypeDescriptorId INT NOT NULL, GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, LocalCourseCode VARCHAR(60) NOT NULL, SchoolId BIGINT NOT NULL, @@ -2160,7 +2196,7 @@ CREATE TABLE edfi.GradeLearningStandardGrade ( NumericGradeEarned DECIMAL(9, 2) NULL, PerformanceBaseConversionDescriptorId INT NULL, CreateDate TIMESTAMP NOT NULL, - CONSTRAINT GradeLearningStandardGrade_PK PRIMARY KEY (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI, LearningStandardId) + CONSTRAINT GradeLearningStandardGrade_PK PRIMARY KEY (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI, LearningStandardId) ); ALTER TABLE edfi.GradeLearningStandardGrade ALTER COLUMN CreateDate SET DEFAULT current_timestamp; @@ -2185,17 +2221,18 @@ CREATE TABLE edfi.GradeTypeDescriptor ( -- Table edfi.GradingPeriod -- CREATE TABLE edfi.GradingPeriod ( GradingPeriodDescriptorId INT NOT NULL, - PeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, SchoolId BIGINT NOT NULL, SchoolYear SMALLINT NOT NULL, BeginDate DATE NOT NULL, EndDate DATE NOT NULL, + PeriodSequence INT NULL, TotalInstructionalDays INT NOT NULL, Discriminator VARCHAR(128) NULL, CreateDate TIMESTAMP NOT NULL, LastModifiedDate TIMESTAMP NOT NULL, Id UUID NOT NULL, - CONSTRAINT GradingPeriod_PK PRIMARY KEY (GradingPeriodDescriptorId, PeriodSequence, SchoolId, SchoolYear) + CONSTRAINT GradingPeriod_PK PRIMARY KEY (GradingPeriodDescriptorId, GradingPeriodName, SchoolId, SchoolYear) ); ALTER TABLE edfi.GradingPeriod ALTER COLUMN CreateDate SET DEFAULT current_timestamp; ALTER TABLE edfi.GradingPeriod ALTER COLUMN Id SET DEFAULT gen_random_uuid(); @@ -3798,7 +3835,7 @@ CREATE TABLE edfi.RepeatIdentifierDescriptor ( CREATE TABLE edfi.ReportCard ( EducationOrganizationId BIGINT NOT NULL, GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolId BIGINT NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, StudentUSI INT NOT NULL, @@ -3809,7 +3846,7 @@ CREATE TABLE edfi.ReportCard ( CreateDate TIMESTAMP NOT NULL, LastModifiedDate TIMESTAMP NOT NULL, Id UUID NOT NULL, - CONSTRAINT ReportCard_PK PRIMARY KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) + CONSTRAINT ReportCard_PK PRIMARY KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) ); ALTER TABLE edfi.ReportCard ALTER COLUMN CreateDate SET DEFAULT current_timestamp; ALTER TABLE edfi.ReportCard ALTER COLUMN Id SET DEFAULT gen_random_uuid(); @@ -3819,7 +3856,7 @@ ALTER TABLE edfi.ReportCard ALTER COLUMN LastModifiedDate SET DEFAULT current_ti CREATE TABLE edfi.ReportCardGrade ( EducationOrganizationId BIGINT NOT NULL, GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolId BIGINT NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, StudentUSI INT NOT NULL, @@ -3831,7 +3868,7 @@ CREATE TABLE edfi.ReportCardGrade ( SectionIdentifier VARCHAR(255) NOT NULL, SessionName VARCHAR(60) NOT NULL, CreateDate TIMESTAMP NOT NULL, - CONSTRAINT ReportCardGrade_PK PRIMARY KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI, BeginDate, GradeTypeDescriptorId, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName) + CONSTRAINT ReportCardGrade_PK PRIMARY KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI, BeginDate, GradeTypeDescriptorId, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName) ); ALTER TABLE edfi.ReportCardGrade ALTER COLUMN CreateDate SET DEFAULT current_timestamp; @@ -3839,7 +3876,7 @@ ALTER TABLE edfi.ReportCardGrade ALTER COLUMN CreateDate SET DEFAULT current_tim CREATE TABLE edfi.ReportCardGradePointAverage ( EducationOrganizationId BIGINT NOT NULL, GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolId BIGINT NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, StudentUSI INT NOT NULL, @@ -3848,7 +3885,7 @@ CREATE TABLE edfi.ReportCardGradePointAverage ( IsCumulative BOOLEAN NULL, MaxGradePointAverageValue DECIMAL(18, 4) NULL, CreateDate TIMESTAMP NOT NULL, - CONSTRAINT ReportCardGradePointAverage_PK PRIMARY KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI, GradePointAverageTypeDescriptorId) + CONSTRAINT ReportCardGradePointAverage_PK PRIMARY KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI, GradePointAverageTypeDescriptorId) ); ALTER TABLE edfi.ReportCardGradePointAverage ALTER COLUMN CreateDate SET DEFAULT current_timestamp; @@ -3856,7 +3893,7 @@ ALTER TABLE edfi.ReportCardGradePointAverage ALTER COLUMN CreateDate SET DEFAULT CREATE TABLE edfi.ReportCardStudentCompetencyObjective ( EducationOrganizationId BIGINT NOT NULL, GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolId BIGINT NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, StudentUSI INT NOT NULL, @@ -3864,7 +3901,7 @@ CREATE TABLE edfi.ReportCardStudentCompetencyObjective ( Objective VARCHAR(60) NOT NULL, ObjectiveGradeLevelDescriptorId INT NOT NULL, CreateDate TIMESTAMP NOT NULL, - CONSTRAINT ReportCardStudentCompetencyObjective_PK PRIMARY KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId) + CONSTRAINT ReportCardStudentCompetencyObjective_PK PRIMARY KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId) ); ALTER TABLE edfi.ReportCardStudentCompetencyObjective ALTER COLUMN CreateDate SET DEFAULT current_timestamp; @@ -4052,6 +4089,7 @@ CREATE TABLE edfi.Section ( OfficialAttendancePeriod BOOLEAN NULL, PopulationServedDescriptorId INT NULL, SectionName VARCHAR(100) NULL, + SectionTypeDescriptorId INT NULL, SequenceOfCourse INT NULL, Discriminator VARCHAR(128) NULL, CreateDate TIMESTAMP NOT NULL, @@ -4157,6 +4195,12 @@ CREATE TABLE edfi.SectionProgram ( ); ALTER TABLE edfi.SectionProgram ALTER COLUMN CreateDate SET DEFAULT current_timestamp; +-- Table edfi.SectionTypeDescriptor -- +CREATE TABLE edfi.SectionTypeDescriptor ( + SectionTypeDescriptorId INT NOT NULL, + CONSTRAINT SectionTypeDescriptor_PK PRIMARY KEY (SectionTypeDescriptorId) +); + -- Table edfi.SeparationDescriptor -- CREATE TABLE edfi.SeparationDescriptor ( SeparationDescriptorId INT NOT NULL, @@ -4211,9 +4255,9 @@ CREATE TABLE edfi.SessionGradingPeriod ( SchoolYear SMALLINT NOT NULL, SessionName VARCHAR(60) NOT NULL, GradingPeriodDescriptorId INT NOT NULL, - PeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, CreateDate TIMESTAMP NOT NULL, - CONSTRAINT SessionGradingPeriod_PK PRIMARY KEY (SchoolId, SchoolYear, SessionName, GradingPeriodDescriptorId, PeriodSequence) + CONSTRAINT SessionGradingPeriod_PK PRIMARY KEY (SchoolId, SchoolYear, SessionName, GradingPeriodDescriptorId, GradingPeriodName) ); ALTER TABLE edfi.SessionGradingPeriod ALTER COLUMN CreateDate SET DEFAULT current_timestamp; @@ -4272,6 +4316,7 @@ CREATE TABLE edfi.Staff ( BirthDate DATE NULL, CitizenshipStatusDescriptorId INT NULL, FirstName VARCHAR(75) NOT NULL, + GenderIdentity VARCHAR(60) NULL, GenerationCodeSuffix VARCHAR(10) NULL, HighestCompletedLevelOfEducationDescriptorId INT NULL, HighlyQualifiedTeacher BOOLEAN NULL, @@ -4522,6 +4567,7 @@ CREATE TABLE edfi.StaffEducationOrganizationEmploymentAssociation ( EmploymentStatusDescriptorId INT NOT NULL, HireDate DATE NOT NULL, StaffUSI INT NOT NULL, + AnnualWage MONEY NULL, CredentialIdentifier VARCHAR(60) NULL, Department VARCHAR(60) NULL, EndDate DATE NULL, @@ -5024,11 +5070,11 @@ CREATE TABLE edfi.StudentAcademicRecordReportCard ( StudentUSI INT NOT NULL, TermDescriptorId INT NOT NULL, GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolId BIGINT NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, CreateDate TIMESTAMP NOT NULL, - CONSTRAINT StudentAcademicRecordReportCard_PK PRIMARY KEY (EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear) + CONSTRAINT StudentAcademicRecordReportCard_PK PRIMARY KEY (EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear) ); ALTER TABLE edfi.StudentAcademicRecordReportCard ALTER COLUMN CreateDate SET DEFAULT current_timestamp; @@ -5242,7 +5288,7 @@ ALTER TABLE edfi.StudentCohortAssociationSection ALTER COLUMN CreateDate SET DEF -- Table edfi.StudentCompetencyObjective -- CREATE TABLE edfi.StudentCompetencyObjective ( GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolId BIGINT NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, ObjectiveEducationOrganizationId BIGINT NOT NULL, @@ -5255,7 +5301,7 @@ CREATE TABLE edfi.StudentCompetencyObjective ( CreateDate TIMESTAMP NOT NULL, LastModifiedDate TIMESTAMP NOT NULL, Id UUID NOT NULL, - CONSTRAINT StudentCompetencyObjective_PK PRIMARY KEY (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) + CONSTRAINT StudentCompetencyObjective_PK PRIMARY KEY (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) ); ALTER TABLE edfi.StudentCompetencyObjective ALTER COLUMN CreateDate SET DEFAULT current_timestamp; ALTER TABLE edfi.StudentCompetencyObjective ALTER COLUMN Id SET DEFAULT gen_random_uuid(); @@ -5264,7 +5310,7 @@ ALTER TABLE edfi.StudentCompetencyObjective ALTER COLUMN LastModifiedDate SET DE -- Table edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation -- CREATE TABLE edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation ( GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolId BIGINT NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, ObjectiveEducationOrganizationId BIGINT NOT NULL, @@ -5277,14 +5323,14 @@ CREATE TABLE edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation ( ProgramName VARCHAR(60) NOT NULL, ProgramTypeDescriptorId INT NOT NULL, CreateDate TIMESTAMP NOT NULL, - CONSTRAINT StudentCompetencyObjectiveGeneralStudentProgramAssociation_PK PRIMARY KEY (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI, BeginDate, EducationOrganizationId, ProgramEducationOrganizationId, ProgramName, ProgramTypeDescriptorId) + CONSTRAINT StudentCompetencyObjectiveGeneralStudentProgramAssociation_PK PRIMARY KEY (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI, BeginDate, EducationOrganizationId, ProgramEducationOrganizationId, ProgramName, ProgramTypeDescriptorId) ); ALTER TABLE edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation ALTER COLUMN CreateDate SET DEFAULT current_timestamp; -- Table edfi.StudentCompetencyObjectiveStudentSectionAssociation -- CREATE TABLE edfi.StudentCompetencyObjectiveStudentSectionAssociation ( GradingPeriodDescriptorId INT NOT NULL, - GradingPeriodSequence INT NOT NULL, + GradingPeriodName VARCHAR(60) NOT NULL, GradingPeriodSchoolId BIGINT NOT NULL, GradingPeriodSchoolYear SMALLINT NOT NULL, ObjectiveEducationOrganizationId BIGINT NOT NULL, @@ -5298,7 +5344,7 @@ CREATE TABLE edfi.StudentCompetencyObjectiveStudentSectionAssociation ( SectionIdentifier VARCHAR(255) NOT NULL, SessionName VARCHAR(60) NOT NULL, CreateDate TIMESTAMP NOT NULL, - CONSTRAINT StudentCompetencyObjectiveStudentSectionAssociation_PK PRIMARY KEY (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI, BeginDate, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName) + CONSTRAINT StudentCompetencyObjectiveStudentSectionAssociation_PK PRIMARY KEY (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI, BeginDate, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName) ); ALTER TABLE edfi.StudentCompetencyObjectiveStudentSectionAssociation ALTER COLUMN CreateDate SET DEFAULT current_timestamp; @@ -5415,6 +5461,7 @@ CREATE TABLE edfi.StudentEducationOrganizationAssociation ( EducationOrganizationId BIGINT NOT NULL, StudentUSI INT NOT NULL, BarrierToInternetAccessInResidenceDescriptorId INT NULL, + GenderIdentity VARCHAR(60) NULL, HispanicLatinoEthnicity BOOLEAN NULL, InternetAccessInResidence BOOLEAN NULL, InternetAccessTypeInResidenceDescriptorId INT NULL, @@ -5425,7 +5472,8 @@ CREATE TABLE edfi.StudentEducationOrganizationAssociation ( PrimaryLearningDeviceAwayFromSchoolDescriptorId INT NULL, PrimaryLearningDeviceProviderDescriptorId INT NULL, ProfileThumbnail VARCHAR(255) NULL, - SexDescriptorId INT NOT NULL, + SexDescriptorId INT NULL, + SupporterMilitaryConnectionDescriptorId INT NULL, Discriminator VARCHAR(128) NULL, CreateDate TIMESTAMP NOT NULL, LastModifiedDate TIMESTAMP NOT NULL, @@ -6235,6 +6283,23 @@ ALTER TABLE edfi.StudentSectionAssociation ALTER COLUMN CreateDate SET DEFAULT c ALTER TABLE edfi.StudentSectionAssociation ALTER COLUMN Id SET DEFAULT gen_random_uuid(); ALTER TABLE edfi.StudentSectionAssociation ALTER COLUMN LastModifiedDate SET DEFAULT current_timestamp; +-- Table edfi.StudentSectionAssociationProgram -- +CREATE TABLE edfi.StudentSectionAssociationProgram ( + BeginDate DATE NOT NULL, + LocalCourseCode VARCHAR(60) NOT NULL, + SchoolId BIGINT NOT NULL, + SchoolYear SMALLINT NOT NULL, + SectionIdentifier VARCHAR(255) NOT NULL, + SessionName VARCHAR(60) NOT NULL, + StudentUSI INT NOT NULL, + EducationOrganizationId BIGINT NOT NULL, + ProgramName VARCHAR(60) NOT NULL, + ProgramTypeDescriptorId INT NOT NULL, + CreateDate TIMESTAMP NOT NULL, + CONSTRAINT StudentSectionAssociationProgram_PK PRIMARY KEY (BeginDate, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI, EducationOrganizationId, ProgramName, ProgramTypeDescriptorId) +); +ALTER TABLE edfi.StudentSectionAssociationProgram ALTER COLUMN CreateDate SET DEFAULT current_timestamp; + -- Table edfi.StudentSectionAttendanceEvent -- CREATE TABLE edfi.StudentSectionAttendanceEvent ( AttendanceEventCategoryDescriptorId INT NOT NULL, @@ -6453,6 +6518,12 @@ CREATE TABLE edfi.SubmissionStatusDescriptor ( CONSTRAINT SubmissionStatusDescriptor_PK PRIMARY KEY (SubmissionStatusDescriptorId) ); +-- Table edfi.SupporterMilitaryConnectionDescriptor -- +CREATE TABLE edfi.SupporterMilitaryConnectionDescriptor ( + SupporterMilitaryConnectionDescriptorId INT NOT NULL, + CONSTRAINT SupporterMilitaryConnectionDescriptor_PK PRIMARY KEY (SupporterMilitaryConnectionDescriptorId) +); + -- Table edfi.Survey -- CREATE TABLE edfi.Survey ( Namespace VARCHAR(255) NOT NULL, diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0030-ForeignKeys.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0030-ForeignKeys.sql index 7b3f1f26d7..1d4841ef4c 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0030-ForeignKeys.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0030-ForeignKeys.sql @@ -1185,6 +1185,13 @@ REFERENCES edfi.MethodCreditEarnedDescriptor (MethodCreditEarnedDescriptorId) CREATE INDEX FK_6acf2b_MethodCreditEarnedDescriptor ON edfi.CourseTranscript (MethodCreditEarnedDescriptorId ASC); +ALTER TABLE edfi.CourseTranscript ADD CONSTRAINT FK_6acf2b_Staff FOREIGN KEY (ResponsibleTeacherStaffUSI) +REFERENCES edfi.Staff (StaffUSI) +; + +CREATE INDEX FK_6acf2b_Staff +ON edfi.CourseTranscript (ResponsibleTeacherStaffUSI ASC); + ALTER TABLE edfi.CourseTranscript ADD CONSTRAINT FK_6acf2b_StudentAcademicRecord FOREIGN KEY (EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId) REFERENCES edfi.StudentAcademicRecord (EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId) ; @@ -1252,6 +1259,31 @@ REFERENCES edfi.MethodCreditEarnedDescriptor (MethodCreditEarnedDescriptorId) CREATE INDEX FK_e811ad_MethodCreditEarnedDescriptor ON edfi.CourseTranscriptPartialCourseTranscriptAwards (MethodCreditEarnedDescriptorId ASC); +ALTER TABLE edfi.CourseTranscriptProgram ADD CONSTRAINT FK_57d145_CourseTranscript FOREIGN KEY (CourseAttemptResultDescriptorId, CourseCode, CourseEducationOrganizationId, EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId) +REFERENCES edfi.CourseTranscript (CourseAttemptResultDescriptorId, CourseCode, CourseEducationOrganizationId, EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId) +ON DELETE CASCADE +; + +ALTER TABLE edfi.CourseTranscriptProgram ADD CONSTRAINT FK_57d145_Program FOREIGN KEY (EducationOrganizationId, ProgramName, ProgramTypeDescriptorId) +REFERENCES edfi.Program (EducationOrganizationId, ProgramName, ProgramTypeDescriptorId) +; + +CREATE INDEX FK_57d145_Program +ON edfi.CourseTranscriptProgram (EducationOrganizationId ASC, ProgramName ASC, ProgramTypeDescriptorId ASC); + +ALTER TABLE edfi.CourseTranscriptSection ADD CONSTRAINT FK_cd2ae9_CourseTranscript FOREIGN KEY (CourseAttemptResultDescriptorId, CourseCode, CourseEducationOrganizationId, EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId) +REFERENCES edfi.CourseTranscript (CourseAttemptResultDescriptorId, CourseCode, CourseEducationOrganizationId, EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId) +ON DELETE CASCADE +; + +ALTER TABLE edfi.CourseTranscriptSection ADD CONSTRAINT FK_cd2ae9_Section FOREIGN KEY (LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName) +REFERENCES edfi.Section (LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName) +ON UPDATE CASCADE +; + +CREATE INDEX FK_cd2ae9_Section +ON edfi.CourseTranscriptSection (LocalCourseCode ASC, SchoolId ASC, SchoolYear ASC, SectionIdentifier ASC, SessionName ASC); + ALTER TABLE edfi.Credential ADD CONSTRAINT FK_b1c42b_CredentialFieldDescriptor FOREIGN KEY (CredentialFieldDescriptorId) REFERENCES edfi.CredentialFieldDescriptor (CredentialFieldDescriptorId) ; @@ -1989,12 +2021,12 @@ REFERENCES edfi.GradeTypeDescriptor (GradeTypeDescriptorId) CREATE INDEX FK_839e20_GradeTypeDescriptor ON edfi.Grade (GradeTypeDescriptorId ASC); -ALTER TABLE edfi.Grade ADD CONSTRAINT FK_839e20_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodSequence, SchoolId, GradingPeriodSchoolYear) -REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, PeriodSequence, SchoolId, SchoolYear) +ALTER TABLE edfi.Grade ADD CONSTRAINT FK_839e20_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodName, SchoolId, GradingPeriodSchoolYear) +REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, GradingPeriodName, SchoolId, SchoolYear) ; CREATE INDEX FK_839e20_GradingPeriod -ON edfi.Grade (GradingPeriodDescriptorId ASC, GradingPeriodSequence ASC, SchoolId ASC, GradingPeriodSchoolYear ASC); +ON edfi.Grade (GradingPeriodDescriptorId ASC, GradingPeriodName ASC, SchoolId ASC, GradingPeriodSchoolYear ASC); ALTER TABLE edfi.Grade ADD CONSTRAINT FK_839e20_PerformanceBaseConversionDescriptor FOREIGN KEY (PerformanceBaseConversionDescriptorId) REFERENCES edfi.PerformanceBaseConversionDescriptor (PerformanceBaseConversionDescriptorId) @@ -2018,12 +2050,12 @@ REFERENCES edfi.GradebookEntryTypeDescriptor (GradebookEntryTypeDescriptorId) CREATE INDEX FK_466cfa_GradebookEntryTypeDescriptor ON edfi.GradebookEntry (GradebookEntryTypeDescriptorId ASC); -ALTER TABLE edfi.GradebookEntry ADD CONSTRAINT FK_466cfa_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, PeriodSequence, SchoolId, SchoolYear) -REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, PeriodSequence, SchoolId, SchoolYear) +ALTER TABLE edfi.GradebookEntry ADD CONSTRAINT FK_466cfa_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodName, SchoolId, SchoolYear) +REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, GradingPeriodName, SchoolId, SchoolYear) ; CREATE INDEX FK_466cfa_GradingPeriod -ON edfi.GradebookEntry (GradingPeriodDescriptorId ASC, PeriodSequence ASC, SchoolId ASC, SchoolYear ASC); +ON edfi.GradebookEntry (GradingPeriodDescriptorId ASC, GradingPeriodName ASC, SchoolId ASC, SchoolYear ASC); ALTER TABLE edfi.GradebookEntry ADD CONSTRAINT FK_466cfa_Section FOREIGN KEY (LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName) REFERENCES edfi.Section (LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName) @@ -2051,8 +2083,8 @@ REFERENCES edfi.Descriptor (DescriptorId) ON DELETE CASCADE ; -ALTER TABLE edfi.GradeLearningStandardGrade ADD CONSTRAINT FK_92f7f8_Grade FOREIGN KEY (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) -REFERENCES edfi.Grade (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) +ALTER TABLE edfi.GradeLearningStandardGrade ADD CONSTRAINT FK_92f7f8_Grade FOREIGN KEY (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) +REFERENCES edfi.Grade (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) ON DELETE CASCADE ON UPDATE CASCADE ; @@ -3671,12 +3703,12 @@ REFERENCES edfi.EducationOrganization (EducationOrganizationId) CREATE INDEX FK_ec1992_EducationOrganization ON edfi.ReportCard (EducationOrganizationId ASC); -ALTER TABLE edfi.ReportCard ADD CONSTRAINT FK_ec1992_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear) -REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, PeriodSequence, SchoolId, SchoolYear) +ALTER TABLE edfi.ReportCard ADD CONSTRAINT FK_ec1992_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear) +REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, GradingPeriodName, SchoolId, SchoolYear) ; CREATE INDEX FK_ec1992_GradingPeriod -ON edfi.ReportCard (GradingPeriodDescriptorId ASC, GradingPeriodSequence ASC, GradingPeriodSchoolId ASC, GradingPeriodSchoolYear ASC); +ON edfi.ReportCard (GradingPeriodDescriptorId ASC, GradingPeriodName ASC, GradingPeriodSchoolId ASC, GradingPeriodSchoolYear ASC); ALTER TABLE edfi.ReportCard ADD CONSTRAINT FK_ec1992_Student FOREIGN KEY (StudentUSI) REFERENCES edfi.Student (StudentUSI) @@ -3685,16 +3717,16 @@ REFERENCES edfi.Student (StudentUSI) CREATE INDEX FK_ec1992_Student ON edfi.ReportCard (StudentUSI ASC); -ALTER TABLE edfi.ReportCardGrade ADD CONSTRAINT FK_f203d3_Grade FOREIGN KEY (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) -REFERENCES edfi.Grade (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) +ALTER TABLE edfi.ReportCardGrade ADD CONSTRAINT FK_f203d3_Grade FOREIGN KEY (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) +REFERENCES edfi.Grade (BeginDate, GradeTypeDescriptorId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolYear, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) ON UPDATE CASCADE ; CREATE INDEX FK_f203d3_Grade -ON edfi.ReportCardGrade (BeginDate ASC, GradeTypeDescriptorId ASC, GradingPeriodDescriptorId ASC, GradingPeriodSequence ASC, GradingPeriodSchoolYear ASC, LocalCourseCode ASC, SchoolId ASC, SchoolYear ASC, SectionIdentifier ASC, SessionName ASC, StudentUSI ASC); +ON edfi.ReportCardGrade (BeginDate ASC, GradeTypeDescriptorId ASC, GradingPeriodDescriptorId ASC, GradingPeriodName ASC, GradingPeriodSchoolYear ASC, LocalCourseCode ASC, SchoolId ASC, SchoolYear ASC, SectionIdentifier ASC, SessionName ASC, StudentUSI ASC); -ALTER TABLE edfi.ReportCardGrade ADD CONSTRAINT FK_f203d3_ReportCard FOREIGN KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) -REFERENCES edfi.ReportCard (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) +ALTER TABLE edfi.ReportCardGrade ADD CONSTRAINT FK_f203d3_ReportCard FOREIGN KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) +REFERENCES edfi.ReportCard (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) ON DELETE CASCADE ; @@ -3705,22 +3737,22 @@ REFERENCES edfi.GradePointAverageTypeDescriptor (GradePointAverageTypeDescriptor CREATE INDEX FK_8574ad_GradePointAverageTypeDescriptor ON edfi.ReportCardGradePointAverage (GradePointAverageTypeDescriptorId ASC); -ALTER TABLE edfi.ReportCardGradePointAverage ADD CONSTRAINT FK_8574ad_ReportCard FOREIGN KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) -REFERENCES edfi.ReportCard (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) +ALTER TABLE edfi.ReportCardGradePointAverage ADD CONSTRAINT FK_8574ad_ReportCard FOREIGN KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) +REFERENCES edfi.ReportCard (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) ON DELETE CASCADE ; -ALTER TABLE edfi.ReportCardStudentCompetencyObjective ADD CONSTRAINT FK_c16d6c_ReportCard FOREIGN KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) -REFERENCES edfi.ReportCard (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) +ALTER TABLE edfi.ReportCardStudentCompetencyObjective ADD CONSTRAINT FK_c16d6c_ReportCard FOREIGN KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) +REFERENCES edfi.ReportCard (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) ON DELETE CASCADE ; -ALTER TABLE edfi.ReportCardStudentCompetencyObjective ADD CONSTRAINT FK_c16d6c_StudentCompetencyObjective FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) -REFERENCES edfi.StudentCompetencyObjective (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) +ALTER TABLE edfi.ReportCardStudentCompetencyObjective ADD CONSTRAINT FK_c16d6c_StudentCompetencyObjective FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) +REFERENCES edfi.StudentCompetencyObjective (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) ; CREATE INDEX FK_c16d6c_StudentCompetencyObjective -ON edfi.ReportCardStudentCompetencyObjective (GradingPeriodDescriptorId ASC, GradingPeriodSequence ASC, GradingPeriodSchoolId ASC, GradingPeriodSchoolYear ASC, ObjectiveEducationOrganizationId ASC, Objective ASC, ObjectiveGradeLevelDescriptorId ASC, StudentUSI ASC); +ON edfi.ReportCardStudentCompetencyObjective (GradingPeriodDescriptorId ASC, GradingPeriodName ASC, GradingPeriodSchoolId ASC, GradingPeriodSchoolYear ASC, ObjectiveEducationOrganizationId ASC, Objective ASC, ObjectiveGradeLevelDescriptorId ASC, StudentUSI ASC); ALTER TABLE edfi.ReporterDescriptionDescriptor ADD CONSTRAINT FK_62c0d2_Descriptor FOREIGN KEY (ReporterDescriptionDescriptorId) REFERENCES edfi.Descriptor (DescriptorId) @@ -3982,6 +4014,13 @@ REFERENCES edfi.School (SchoolId) CREATE INDEX FK_dfca5d_School ON edfi.Section (LocationSchoolId ASC); +ALTER TABLE edfi.Section ADD CONSTRAINT FK_dfca5d_SectionTypeDescriptor FOREIGN KEY (SectionTypeDescriptorId) +REFERENCES edfi.SectionTypeDescriptor (SectionTypeDescriptorId) +; + +CREATE INDEX FK_dfca5d_SectionTypeDescriptor +ON edfi.Section (SectionTypeDescriptorId ASC); + ALTER TABLE edfi.SectionAttendanceTakenEvent ADD CONSTRAINT FK_7bbbe7_CalendarDate FOREIGN KEY (CalendarCode, Date, SchoolId, SchoolYear) REFERENCES edfi.CalendarDate (CalendarCode, Date, SchoolId, SchoolYear) ; @@ -4075,6 +4114,11 @@ ON DELETE CASCADE ON UPDATE CASCADE ; +ALTER TABLE edfi.SectionTypeDescriptor ADD CONSTRAINT FK_17bb6e_Descriptor FOREIGN KEY (SectionTypeDescriptorId) +REFERENCES edfi.Descriptor (DescriptorId) +ON DELETE CASCADE +; + ALTER TABLE edfi.SeparationDescriptor ADD CONSTRAINT FK_cd3406_Descriptor FOREIGN KEY (SeparationDescriptorId) REFERENCES edfi.Descriptor (DescriptorId) ON DELETE CASCADE @@ -4124,12 +4168,12 @@ ON DELETE CASCADE ON UPDATE CASCADE ; -ALTER TABLE edfi.SessionGradingPeriod ADD CONSTRAINT FK_c4b3e0_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, PeriodSequence, SchoolId, SchoolYear) -REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, PeriodSequence, SchoolId, SchoolYear) +ALTER TABLE edfi.SessionGradingPeriod ADD CONSTRAINT FK_c4b3e0_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodName, SchoolId, SchoolYear) +REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, GradingPeriodName, SchoolId, SchoolYear) ; CREATE INDEX FK_c4b3e0_GradingPeriod -ON edfi.SessionGradingPeriod (GradingPeriodDescriptorId ASC, PeriodSequence ASC, SchoolId ASC, SchoolYear ASC); +ON edfi.SessionGradingPeriod (GradingPeriodDescriptorId ASC, GradingPeriodName ASC, SchoolId ASC, SchoolYear ASC); ALTER TABLE edfi.SessionGradingPeriod ADD CONSTRAINT FK_c4b3e0_Session FOREIGN KEY (SchoolId, SchoolYear, SessionName) REFERENCES edfi.Session (SchoolId, SchoolYear, SessionName) @@ -4968,12 +5012,12 @@ REFERENCES edfi.StudentAcademicRecord (EducationOrganizationId, SchoolYear, Stud ON DELETE CASCADE ; -ALTER TABLE edfi.StudentAcademicRecordReportCard ADD CONSTRAINT FK_84e5e0_ReportCard FOREIGN KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) -REFERENCES edfi.ReportCard (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) +ALTER TABLE edfi.StudentAcademicRecordReportCard ADD CONSTRAINT FK_84e5e0_ReportCard FOREIGN KEY (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) +REFERENCES edfi.ReportCard (EducationOrganizationId, GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, StudentUSI) ; CREATE INDEX FK_84e5e0_ReportCard -ON edfi.StudentAcademicRecordReportCard (EducationOrganizationId ASC, GradingPeriodDescriptorId ASC, GradingPeriodSequence ASC, GradingPeriodSchoolId ASC, GradingPeriodSchoolYear ASC, StudentUSI ASC); +ON edfi.StudentAcademicRecordReportCard (EducationOrganizationId ASC, GradingPeriodDescriptorId ASC, GradingPeriodName ASC, GradingPeriodSchoolId ASC, GradingPeriodSchoolYear ASC, StudentUSI ASC); ALTER TABLE edfi.StudentAcademicRecordReportCard ADD CONSTRAINT FK_84e5e0_StudentAcademicRecord FOREIGN KEY (EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId) REFERENCES edfi.StudentAcademicRecord (EducationOrganizationId, SchoolYear, StudentUSI, TermDescriptorId) @@ -5269,12 +5313,12 @@ REFERENCES edfi.CompetencyObjective (EducationOrganizationId, Objective, Objecti CREATE INDEX FK_395c07_CompetencyObjective ON edfi.StudentCompetencyObjective (ObjectiveEducationOrganizationId ASC, Objective ASC, ObjectiveGradeLevelDescriptorId ASC); -ALTER TABLE edfi.StudentCompetencyObjective ADD CONSTRAINT FK_395c07_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear) -REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, PeriodSequence, SchoolId, SchoolYear) +ALTER TABLE edfi.StudentCompetencyObjective ADD CONSTRAINT FK_395c07_GradingPeriod FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear) +REFERENCES edfi.GradingPeriod (GradingPeriodDescriptorId, GradingPeriodName, SchoolId, SchoolYear) ; CREATE INDEX FK_395c07_GradingPeriod -ON edfi.StudentCompetencyObjective (GradingPeriodDescriptorId ASC, GradingPeriodSequence ASC, GradingPeriodSchoolId ASC, GradingPeriodSchoolYear ASC); +ON edfi.StudentCompetencyObjective (GradingPeriodDescriptorId ASC, GradingPeriodName ASC, GradingPeriodSchoolId ASC, GradingPeriodSchoolYear ASC); ALTER TABLE edfi.StudentCompetencyObjective ADD CONSTRAINT FK_395c07_Student FOREIGN KEY (StudentUSI) REFERENCES edfi.Student (StudentUSI) @@ -5290,13 +5334,13 @@ REFERENCES edfi.GeneralStudentProgramAssociation (BeginDate, EducationOrganizati CREATE INDEX FK_005337_GeneralStudentProgramAssociation ON edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation (BeginDate ASC, EducationOrganizationId ASC, ProgramEducationOrganizationId ASC, ProgramName ASC, ProgramTypeDescriptorId ASC, StudentUSI ASC); -ALTER TABLE edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation ADD CONSTRAINT FK_005337_StudentCompetencyObjective FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) -REFERENCES edfi.StudentCompetencyObjective (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) +ALTER TABLE edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation ADD CONSTRAINT FK_005337_StudentCompetencyObjective FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) +REFERENCES edfi.StudentCompetencyObjective (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) ON DELETE CASCADE ; -ALTER TABLE edfi.StudentCompetencyObjectiveStudentSectionAssociation ADD CONSTRAINT FK_ee68ed_StudentCompetencyObjective FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) -REFERENCES edfi.StudentCompetencyObjective (GradingPeriodDescriptorId, GradingPeriodSequence, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) +ALTER TABLE edfi.StudentCompetencyObjectiveStudentSectionAssociation ADD CONSTRAINT FK_ee68ed_StudentCompetencyObjective FOREIGN KEY (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) +REFERENCES edfi.StudentCompetencyObjective (GradingPeriodDescriptorId, GradingPeriodName, GradingPeriodSchoolId, GradingPeriodSchoolYear, ObjectiveEducationOrganizationId, Objective, ObjectiveGradeLevelDescriptorId, StudentUSI) ON DELETE CASCADE ; @@ -5482,6 +5526,13 @@ REFERENCES edfi.Student (StudentUSI) CREATE INDEX FK_8e1257_Student ON edfi.StudentEducationOrganizationAssociation (StudentUSI ASC); +ALTER TABLE edfi.StudentEducationOrganizationAssociation ADD CONSTRAINT FK_8e1257_SupporterMilitaryConnectionDescriptor FOREIGN KEY (SupporterMilitaryConnectionDescriptorId) +REFERENCES edfi.SupporterMilitaryConnectionDescriptor (SupporterMilitaryConnectionDescriptorId) +; + +CREATE INDEX FK_8e1257_SupporterMilitaryConnectionDescriptor +ON edfi.StudentEducationOrganizationAssociation (SupporterMilitaryConnectionDescriptorId ASC); + ALTER TABLE edfi.StudentEducationOrganizationAssociationAddress ADD CONSTRAINT FK_f9e163_AddressTypeDescriptor FOREIGN KEY (AddressTypeDescriptorId) REFERENCES edfi.AddressTypeDescriptor (AddressTypeDescriptorId) ; @@ -6411,6 +6462,19 @@ REFERENCES edfi.Student (StudentUSI) CREATE INDEX FK_39aa3c_Student ON edfi.StudentSectionAssociation (StudentUSI ASC); +ALTER TABLE edfi.StudentSectionAssociationProgram ADD CONSTRAINT FK_990204_Program FOREIGN KEY (EducationOrganizationId, ProgramName, ProgramTypeDescriptorId) +REFERENCES edfi.Program (EducationOrganizationId, ProgramName, ProgramTypeDescriptorId) +; + +CREATE INDEX FK_990204_Program +ON edfi.StudentSectionAssociationProgram (EducationOrganizationId ASC, ProgramName ASC, ProgramTypeDescriptorId ASC); + +ALTER TABLE edfi.StudentSectionAssociationProgram ADD CONSTRAINT FK_990204_StudentSectionAssociation FOREIGN KEY (BeginDate, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) +REFERENCES edfi.StudentSectionAssociation (BeginDate, LocalCourseCode, SchoolId, SchoolYear, SectionIdentifier, SessionName, StudentUSI) +ON DELETE CASCADE +ON UPDATE CASCADE +; + ALTER TABLE edfi.StudentSectionAttendanceEvent ADD CONSTRAINT FK_61b087_AttendanceEventCategoryDescriptor FOREIGN KEY (AttendanceEventCategoryDescriptorId) REFERENCES edfi.AttendanceEventCategoryDescriptor (AttendanceEventCategoryDescriptorId) ; @@ -6623,6 +6687,11 @@ REFERENCES edfi.Descriptor (DescriptorId) ON DELETE CASCADE ; +ALTER TABLE edfi.SupporterMilitaryConnectionDescriptor ADD CONSTRAINT FK_5d0e44_Descriptor FOREIGN KEY (SupporterMilitaryConnectionDescriptorId) +REFERENCES edfi.Descriptor (DescriptorId) +ON DELETE CASCADE +; + ALTER TABLE edfi.Survey ADD CONSTRAINT FK_211bb3_EducationOrganization FOREIGN KEY (EducationOrganizationId) REFERENCES edfi.EducationOrganization (EducationOrganizationId) ; diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0050-ExtendedProperties.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0050-ExtendedProperties.sql index 635906299b..f2ae3b26c2 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0050-ExtendedProperties.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/0050-ExtendedProperties.sql @@ -479,6 +479,7 @@ COMMENT ON TABLE edfi.Contact IS 'This entity represents a contact of a student, COMMENT ON COLUMN edfi.Contact.ContactUSI IS 'A unique alphanumeric code assigned to a contact.'; COMMENT ON COLUMN edfi.Contact.ContactUniqueId IS 'A unique alphanumeric code assigned to a contact.'; COMMENT ON COLUMN edfi.Contact.FirstName IS 'A name given to an individual at birth, baptism, or during another naming ceremony, or through legal change.'; +COMMENT ON COLUMN edfi.Contact.GenderIdentity IS 'The gender the contact identifies themselves as.'; COMMENT ON COLUMN edfi.Contact.GenerationCodeSuffix IS 'An appendage, if any, used to denote an individual''s generation in his family (e.g., Jr., Sr., III).'; COMMENT ON COLUMN edfi.Contact.HighestCompletedLevelOfEducationDescriptorId IS 'The extent of formal instruction an individual has received (e.g., the highest grade in school completed or its equivalent or the highest degree received).'; COMMENT ON COLUMN edfi.Contact.LastSurname IS 'The name borne in common by members of a family.'; @@ -749,6 +750,7 @@ COMMENT ON COLUMN edfi.CourseTranscript.ExternalEducationOrganizationNameOfInsti COMMENT ON COLUMN edfi.CourseTranscript.FinalLetterGradeEarned IS 'The final indicator of student performance in a class as submitted by the instructor.'; COMMENT ON COLUMN edfi.CourseTranscript.FinalNumericGradeEarned IS 'The final indicator of student performance in a class as submitted by the instructor.'; COMMENT ON COLUMN edfi.CourseTranscript.MethodCreditEarnedDescriptorId IS 'The method the credits were earned.'; +COMMENT ON COLUMN edfi.CourseTranscript.ResponsibleTeacherStaffUSI IS 'A unique alphanumeric code assigned to a staff.'; COMMENT ON COLUMN edfi.CourseTranscript.WhenTakenGradeLevelDescriptorId IS 'Student''s grade level at time of course.'; -- Extended Properties [edfi].[CourseTranscriptAcademicSubject] -- @@ -814,6 +816,32 @@ COMMENT ON COLUMN edfi.CourseTranscriptPartialCourseTranscriptAwards.LetterGrade COMMENT ON COLUMN edfi.CourseTranscriptPartialCourseTranscriptAwards.MethodCreditEarnedDescriptorId IS 'The method the credits were earned.'; COMMENT ON COLUMN edfi.CourseTranscriptPartialCourseTranscriptAwards.NumericGradeEarned IS 'The indicator of student performance as submitted by the instructor.'; +-- Extended Properties [edfi].[CourseTranscriptProgram] -- +COMMENT ON TABLE edfi.CourseTranscriptProgram IS 'The program(s) that the student participated in the context of the course.'; +COMMENT ON COLUMN edfi.CourseTranscriptProgram.CourseAttemptResultDescriptorId IS 'The result from the student''s attempt to take the course.'; +COMMENT ON COLUMN edfi.CourseTranscriptProgram.CourseCode IS 'A unique alphanumeric code assigned to a course.'; +COMMENT ON COLUMN edfi.CourseTranscriptProgram.CourseEducationOrganizationId IS 'The identifier assigned to an education organization.'; +COMMENT ON COLUMN edfi.CourseTranscriptProgram.EducationOrganizationId IS 'The identifier assigned to an education organization.'; +COMMENT ON COLUMN edfi.CourseTranscriptProgram.SchoolYear IS 'The identifier for the school year.'; +COMMENT ON COLUMN edfi.CourseTranscriptProgram.StudentUSI IS 'A unique alphanumeric code assigned to a student.'; +COMMENT ON COLUMN edfi.CourseTranscriptProgram.TermDescriptorId IS 'The term for the session during the school year.'; +COMMENT ON COLUMN edfi.CourseTranscriptProgram.ProgramName IS 'The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies.'; +COMMENT ON COLUMN edfi.CourseTranscriptProgram.ProgramTypeDescriptorId IS 'The type of program.'; + +-- Extended Properties [edfi].[CourseTranscriptSection] -- +COMMENT ON TABLE edfi.CourseTranscriptSection IS 'The section(s) associated with the course transcript.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.CourseAttemptResultDescriptorId IS 'The result from the student''s attempt to take the course.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.CourseCode IS 'A unique alphanumeric code assigned to a course.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.CourseEducationOrganizationId IS 'The identifier assigned to an education organization.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.EducationOrganizationId IS 'The identifier assigned to an education organization.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.SchoolYear IS 'The identifier for the school year.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.StudentUSI IS 'A unique alphanumeric code assigned to a student.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.TermDescriptorId IS 'The term for the session during the school year.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.LocalCourseCode IS 'The local code assigned by the School that identifies the course offering provided for the instruction of students.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.SchoolId IS 'The identifier assigned to a school.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.SectionIdentifier IS 'The local identifier assigned to a section.'; +COMMENT ON COLUMN edfi.CourseTranscriptSection.SessionName IS 'The identifier for the calendar for the academic session.'; + -- Extended Properties [edfi].[Credential] -- COMMENT ON TABLE edfi.Credential IS 'The legal document giving authorization to perform teaching assignment services.'; COMMENT ON COLUMN edfi.Credential.CredentialIdentifier IS 'Identifier or serial number assigned to the credential.'; @@ -1315,8 +1343,8 @@ COMMENT ON COLUMN edfi.GeneralStudentProgramAssociationProgramParticipationStatu COMMENT ON TABLE edfi.Grade IS 'This educational entity represents an overall score or assessment tied to a course over a period of time (i.e., the grading period). Student grades are usually a compilation of marks and other scores.'; COMMENT ON COLUMN edfi.Grade.BeginDate IS 'Month, day, and year of the student''s entry or assignment to the section.'; COMMENT ON COLUMN edfi.Grade.GradeTypeDescriptorId IS 'The type of grade reported (e.g., exam, final, grading period).'; -COMMENT ON COLUMN edfi.Grade.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.Grade.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.Grade.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.Grade.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.Grade.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.Grade.LocalCourseCode IS 'The local code assigned by the School that identifies the course offering provided for the instruction of students.'; COMMENT ON COLUMN edfi.Grade.SchoolId IS 'The identifier assigned to a school.'; @@ -1341,10 +1369,10 @@ COMMENT ON COLUMN edfi.GradebookEntry.Description IS 'A description of the assig COMMENT ON COLUMN edfi.GradebookEntry.DueDate IS 'The date the assignment, homework, or assessment is due.'; COMMENT ON COLUMN edfi.GradebookEntry.DueTime IS 'The time the assignment, homework, or assessment is due.'; COMMENT ON COLUMN edfi.GradebookEntry.GradebookEntryTypeDescriptorId IS 'The type of the gradebook entry.'; -COMMENT ON COLUMN edfi.GradebookEntry.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.GradebookEntry.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.GradebookEntry.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.GradebookEntry.LocalCourseCode IS 'The local code assigned by the School that identifies the course offering provided for the instruction of students.'; COMMENT ON COLUMN edfi.GradebookEntry.MaxPoints IS 'The maximum number of points that can be earned for the submission.'; -COMMENT ON COLUMN edfi.GradebookEntry.PeriodSequence IS 'The sequential order of this period relative to other periods.'; COMMENT ON COLUMN edfi.GradebookEntry.SchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.GradebookEntry.SchoolYear IS 'The identifier for the school year.'; COMMENT ON COLUMN edfi.GradebookEntry.SectionIdentifier IS 'The local identifier assigned to a section.'; @@ -1366,8 +1394,8 @@ COMMENT ON COLUMN edfi.GradebookEntryTypeDescriptor.GradebookEntryTypeDescriptor COMMENT ON TABLE edfi.GradeLearningStandardGrade IS 'A collection of learning standards associated with the grade.'; COMMENT ON COLUMN edfi.GradeLearningStandardGrade.BeginDate IS 'Month, day, and year of the student''s entry or assignment to the section.'; COMMENT ON COLUMN edfi.GradeLearningStandardGrade.GradeTypeDescriptorId IS 'The type of grade reported (e.g., exam, final, grading period).'; -COMMENT ON COLUMN edfi.GradeLearningStandardGrade.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.GradeLearningStandardGrade.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.GradeLearningStandardGrade.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.GradeLearningStandardGrade.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.GradeLearningStandardGrade.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.GradeLearningStandardGrade.LocalCourseCode IS 'The local code assigned by the School that identifies the course offering provided for the instruction of students.'; COMMENT ON COLUMN edfi.GradeLearningStandardGrade.SchoolId IS 'The identifier assigned to a school.'; @@ -1395,16 +1423,17 @@ COMMENT ON COLUMN edfi.GradeTypeDescriptor.GradeTypeDescriptorId IS 'A unique id -- Extended Properties [edfi].[GradingPeriod] -- COMMENT ON TABLE edfi.GradingPeriod IS 'This entity represents the time span for which grades are reported.'; -COMMENT ON COLUMN edfi.GradingPeriod.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.GradingPeriod.PeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.GradingPeriod.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.GradingPeriod.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.GradingPeriod.SchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.GradingPeriod.SchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.GradingPeriod.BeginDate IS 'Month, day, and year of the first day of the grading period.'; COMMENT ON COLUMN edfi.GradingPeriod.EndDate IS 'Month, day, and year of the last day of the grading period.'; +COMMENT ON COLUMN edfi.GradingPeriod.PeriodSequence IS 'The sequential order of this period relative to other periods.'; COMMENT ON COLUMN edfi.GradingPeriod.TotalInstructionalDays IS 'Total days available for educational instruction during the grading period.'; -- Extended Properties [edfi].[GradingPeriodDescriptor] -- -COMMENT ON TABLE edfi.GradingPeriodDescriptor IS 'This descriptor defines the name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required.'; +COMMENT ON TABLE edfi.GradingPeriodDescriptor IS 'This descriptor defines the state''s name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required.'; COMMENT ON COLUMN edfi.GradingPeriodDescriptor.GradingPeriodDescriptorId IS 'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.'; -- Extended Properties [edfi].[GraduationPlan] -- @@ -2390,8 +2419,8 @@ COMMENT ON COLUMN edfi.RepeatIdentifierDescriptor.RepeatIdentifierDescriptorId I -- Extended Properties [edfi].[ReportCard] -- COMMENT ON TABLE edfi.ReportCard IS 'This educational entity represents the collection of student grades for courses taken during a grading period.'; COMMENT ON COLUMN edfi.ReportCard.EducationOrganizationId IS 'The identifier assigned to an education organization.'; -COMMENT ON COLUMN edfi.ReportCard.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.ReportCard.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.ReportCard.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.ReportCard.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.ReportCard.GradingPeriodSchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.ReportCard.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.ReportCard.StudentUSI IS 'A unique alphanumeric code assigned to a student.'; @@ -2402,8 +2431,8 @@ COMMENT ON COLUMN edfi.ReportCard.NumberOfDaysTardy IS 'The number of days an in -- Extended Properties [edfi].[ReportCardGrade] -- COMMENT ON TABLE edfi.ReportCardGrade IS 'Grades for the classes attended by the student for this grading period.'; COMMENT ON COLUMN edfi.ReportCardGrade.EducationOrganizationId IS 'The identifier assigned to an education organization.'; -COMMENT ON COLUMN edfi.ReportCardGrade.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.ReportCardGrade.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.ReportCardGrade.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.ReportCardGrade.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.ReportCardGrade.GradingPeriodSchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.ReportCardGrade.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.ReportCardGrade.StudentUSI IS 'A unique alphanumeric code assigned to a student.'; @@ -2418,8 +2447,8 @@ COMMENT ON COLUMN edfi.ReportCardGrade.SessionName IS 'The identifier for the ca -- Extended Properties [edfi].[ReportCardGradePointAverage] -- COMMENT ON TABLE edfi.ReportCardGradePointAverage IS 'A measure of average performance for courses taken by an individual.'; COMMENT ON COLUMN edfi.ReportCardGradePointAverage.EducationOrganizationId IS 'The identifier assigned to an education organization.'; -COMMENT ON COLUMN edfi.ReportCardGradePointAverage.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.ReportCardGradePointAverage.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.ReportCardGradePointAverage.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.ReportCardGradePointAverage.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.ReportCardGradePointAverage.GradingPeriodSchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.ReportCardGradePointAverage.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.ReportCardGradePointAverage.StudentUSI IS 'A unique alphanumeric code assigned to a student.'; @@ -2431,8 +2460,8 @@ COMMENT ON COLUMN edfi.ReportCardGradePointAverage.MaxGradePointAverageValue IS -- Extended Properties [edfi].[ReportCardStudentCompetencyObjective] -- COMMENT ON TABLE edfi.ReportCardStudentCompetencyObjective IS 'The student competency evaluations associated for this grading period.'; COMMENT ON COLUMN edfi.ReportCardStudentCompetencyObjective.EducationOrganizationId IS 'The identifier assigned to an education organization.'; -COMMENT ON COLUMN edfi.ReportCardStudentCompetencyObjective.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.ReportCardStudentCompetencyObjective.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.ReportCardStudentCompetencyObjective.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.ReportCardStudentCompetencyObjective.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.ReportCardStudentCompetencyObjective.GradingPeriodSchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.ReportCardStudentCompetencyObjective.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.ReportCardStudentCompetencyObjective.StudentUSI IS 'A unique alphanumeric code assigned to a student.'; @@ -2536,7 +2565,7 @@ COMMENT ON COLUMN edfi.SchoolGradeLevel.SchoolId IS 'The identifier assigned to COMMENT ON COLUMN edfi.SchoolGradeLevel.GradeLevelDescriptorId IS 'The grade levels served at the school.'; -- Extended Properties [edfi].[SchoolTypeDescriptor] -- -COMMENT ON TABLE edfi.SchoolTypeDescriptor IS 'The type of education institution as classified by its primary focus.'; +COMMENT ON TABLE edfi.SchoolTypeDescriptor IS 'The type of education institution as classified by its primary focus such as Alternative, Career and Technical Education, Regular, or Special Education schools.'; COMMENT ON COLUMN edfi.SchoolTypeDescriptor.SchoolTypeDescriptorId IS 'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.'; -- Extended Properties [edfi].[SchoolYearType] -- @@ -2563,6 +2592,7 @@ COMMENT ON COLUMN edfi.Section.MediumOfInstructionDescriptorId IS 'The media thr COMMENT ON COLUMN edfi.Section.OfficialAttendancePeriod IS 'Indicator of whether this section is used for official daily attendance. Alternatively, official daily attendance may be tied to a class period.'; COMMENT ON COLUMN edfi.Section.PopulationServedDescriptorId IS 'The type of students the section is offered and tailored to.'; COMMENT ON COLUMN edfi.Section.SectionName IS 'A locally-defined name for the section, generally created to make the section more recognizable in informal contexts and generally distinct from the section identifier.'; +COMMENT ON COLUMN edfi.Section.SectionTypeDescriptorId IS 'Specifies whether the section is for attendance only, credit only, or both.'; COMMENT ON COLUMN edfi.Section.SequenceOfCourse IS 'When a section is part of a sequence of parts for a course, the number of the sequence. If the course has only one part, the value of this section attribute should be 1.'; -- Extended Properties [edfi].[SectionAttendanceTakenEvent] -- @@ -2628,6 +2658,10 @@ COMMENT ON COLUMN edfi.SectionProgram.EducationOrganizationId IS 'The identifier COMMENT ON COLUMN edfi.SectionProgram.ProgramName IS 'The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies.'; COMMENT ON COLUMN edfi.SectionProgram.ProgramTypeDescriptorId IS 'The type of program.'; +-- Extended Properties [edfi].[SectionTypeDescriptor] -- +COMMENT ON TABLE edfi.SectionTypeDescriptor IS 'Specifies whether the section is for attendance only, credit only, or both.'; +COMMENT ON COLUMN edfi.SectionTypeDescriptor.SectionTypeDescriptorId IS 'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.'; + -- Extended Properties [edfi].[SeparationDescriptor] -- COMMENT ON TABLE edfi.SeparationDescriptor IS 'Type of employment separation; for example: Voluntary separation, Involuntary separation, Mutual agreement. Other, etc.'; COMMENT ON COLUMN edfi.SeparationDescriptor.SeparationDescriptorId IS 'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.'; @@ -2641,13 +2675,13 @@ COMMENT ON TABLE edfi.ServiceDescriptor IS 'This descriptor defines the services COMMENT ON COLUMN edfi.ServiceDescriptor.ServiceDescriptorId IS 'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.'; -- Extended Properties [edfi].[Session] -- -COMMENT ON TABLE edfi.Session IS 'A term in the school year, generally a unit of time into which courses are scheduled, instruction occurs and by which credits are awarded. Sessions may be interrupted by vacations or other events.'; +COMMENT ON TABLE edfi.Session IS 'A specific designated unit of time during which instruction is provided, grades are reported and academic credits are awarded to students (whenever applicable). Sessions serve as organized segments of the academic year and can be interrupted by vacations or other events.'; COMMENT ON COLUMN edfi.Session.SchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.Session.SchoolYear IS 'The identifier for the school year.'; COMMENT ON COLUMN edfi.Session.SessionName IS 'The identifier for the calendar for the academic session.'; COMMENT ON COLUMN edfi.Session.BeginDate IS 'Month, day, and year of the first day of the session.'; COMMENT ON COLUMN edfi.Session.EndDate IS 'Month, day and year of the last day of the session.'; -COMMENT ON COLUMN edfi.Session.TermDescriptorId IS 'An descriptor value indicating the term.'; +COMMENT ON COLUMN edfi.Session.TermDescriptorId IS 'A descriptor value to indicate the term that the session is associated with.'; COMMENT ON COLUMN edfi.Session.TotalInstructionalDays IS 'The total number of instructional days in the school calendar.'; -- Extended Properties [edfi].[SessionAcademicWeek] -- @@ -2662,8 +2696,8 @@ COMMENT ON TABLE edfi.SessionGradingPeriod IS 'Grading periods associated with t COMMENT ON COLUMN edfi.SessionGradingPeriod.SchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.SessionGradingPeriod.SchoolYear IS 'The identifier for the school year.'; COMMENT ON COLUMN edfi.SessionGradingPeriod.SessionName IS 'The identifier for the calendar for the academic session.'; -COMMENT ON COLUMN edfi.SessionGradingPeriod.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.SessionGradingPeriod.PeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.SessionGradingPeriod.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.SessionGradingPeriod.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; -- Extended Properties [edfi].[SexDescriptor] -- COMMENT ON TABLE edfi.SexDescriptor IS 'A person''s birth sex.'; @@ -2699,6 +2733,7 @@ COMMENT ON COLUMN edfi.Staff.StaffUSI IS 'A unique alphanumeric code assigned to COMMENT ON COLUMN edfi.Staff.BirthDate IS 'The month, day, and year on which an individual was born.'; COMMENT ON COLUMN edfi.Staff.CitizenshipStatusDescriptorId IS 'An indicator of whether or not the person is a U.S. citizen.'; COMMENT ON COLUMN edfi.Staff.FirstName IS 'A name given to an individual at birth, baptism, or during another naming ceremony, or through legal change.'; +COMMENT ON COLUMN edfi.Staff.GenderIdentity IS 'The gender the staff member identifies themselves as.'; COMMENT ON COLUMN edfi.Staff.GenerationCodeSuffix IS 'An appendage, if any, used to denote an individual''s generation in his family (e.g., Jr., Sr., III).'; COMMENT ON COLUMN edfi.Staff.HighestCompletedLevelOfEducationDescriptorId IS 'The extent of formal instruction an individual has received (e.g., the highest grade in school completed or its equivalent or the highest degree received).'; COMMENT ON COLUMN edfi.Staff.HighlyQualifiedTeacher IS 'An indication of whether a teacher is classified as highly qualified for his/her assignment according to state definition. This attribute indicates the teacher is highly qualified for ALL Sections being taught.'; @@ -2862,6 +2897,7 @@ COMMENT ON COLUMN edfi.StaffEducationOrganizationEmploymentAssociation.Education COMMENT ON COLUMN edfi.StaffEducationOrganizationEmploymentAssociation.EmploymentStatusDescriptorId IS 'Reflects the type of employment or contract.'; COMMENT ON COLUMN edfi.StaffEducationOrganizationEmploymentAssociation.HireDate IS 'The month, day, and year on which an individual was hired for a position.'; COMMENT ON COLUMN edfi.StaffEducationOrganizationEmploymentAssociation.StaffUSI IS 'A unique alphanumeric code assigned to a staff.'; +COMMENT ON COLUMN edfi.StaffEducationOrganizationEmploymentAssociation.AnnualWage IS 'Annual wage associated with the employment position being reported.'; COMMENT ON COLUMN edfi.StaffEducationOrganizationEmploymentAssociation.CredentialIdentifier IS 'Identifier or serial number assigned to the credential.'; COMMENT ON COLUMN edfi.StaffEducationOrganizationEmploymentAssociation.Department IS 'The department or suborganization the employee/contractor is associated with in the education organization.'; COMMENT ON COLUMN edfi.StaffEducationOrganizationEmploymentAssociation.EndDate IS 'The month, day, and year on which a contract between an individual and a governing authority ends or is terminated under the provisions of the contract (or the date on which the agreement is made invalid).'; @@ -3203,8 +3239,8 @@ COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.EducationOrganizationId I COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.SchoolYear IS 'The identifier for the school year.'; COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.StudentUSI IS 'A unique alphanumeric code assigned to a student.'; COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.TermDescriptorId IS 'The term for the session during the school year.'; -COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.GradingPeriodSchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.StudentAcademicRecordReportCard.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; @@ -3352,8 +3388,8 @@ COMMENT ON COLUMN edfi.StudentCohortAssociationSection.SessionName IS 'The ident -- Extended Properties [edfi].[StudentCompetencyObjective] -- COMMENT ON TABLE edfi.StudentCompetencyObjective IS 'This entity represents the competency assessed or evaluated for the student against a specific competency objective.'; -COMMENT ON COLUMN edfi.StudentCompetencyObjective.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.StudentCompetencyObjective.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.StudentCompetencyObjective.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.StudentCompetencyObjective.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.StudentCompetencyObjective.GradingPeriodSchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.StudentCompetencyObjective.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.StudentCompetencyObjective.ObjectiveEducationOrganizationId IS 'The identifier assigned to an education organization.'; @@ -3365,8 +3401,8 @@ COMMENT ON COLUMN edfi.StudentCompetencyObjective.DiagnosticStatement IS 'A stat -- Extended Properties [edfi].[StudentCompetencyObjectiveGeneralStudentProgramAssociation] -- COMMENT ON TABLE edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation IS 'Relates the student and program associated with the competency objective.'; -COMMENT ON COLUMN edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation.GradingPeriodSchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociation.ObjectiveEducationOrganizationId IS 'The identifier assigned to an education organization.'; @@ -3381,8 +3417,8 @@ COMMENT ON COLUMN edfi.StudentCompetencyObjectiveGeneralStudentProgramAssociatio -- Extended Properties [edfi].[StudentCompetencyObjectiveStudentSectionAssociation] -- COMMENT ON TABLE edfi.StudentCompetencyObjectiveStudentSectionAssociation IS 'Relates the student and section associated with the competency objective.'; -COMMENT ON COLUMN edfi.StudentCompetencyObjectiveStudentSectionAssociation.GradingPeriodDescriptorId IS 'The name of the period for which grades are reported.'; -COMMENT ON COLUMN edfi.StudentCompetencyObjectiveStudentSectionAssociation.GradingPeriodSequence IS 'The sequential order of this period relative to other periods.'; +COMMENT ON COLUMN edfi.StudentCompetencyObjectiveStudentSectionAssociation.GradingPeriodDescriptorId IS 'The state''s name of the period for which grades are reported.'; +COMMENT ON COLUMN edfi.StudentCompetencyObjectiveStudentSectionAssociation.GradingPeriodName IS 'The school''s descriptive name of the grading period.'; COMMENT ON COLUMN edfi.StudentCompetencyObjectiveStudentSectionAssociation.GradingPeriodSchoolId IS 'The identifier assigned to a school.'; COMMENT ON COLUMN edfi.StudentCompetencyObjectiveStudentSectionAssociation.GradingPeriodSchoolYear IS 'The identifier for the grading period school year.'; COMMENT ON COLUMN edfi.StudentCompetencyObjectiveStudentSectionAssociation.ObjectiveEducationOrganizationId IS 'The identifier assigned to an education organization.'; @@ -3468,6 +3504,7 @@ COMMENT ON TABLE edfi.StudentEducationOrganizationAssociation IS 'This associati COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.EducationOrganizationId IS 'The identifier assigned to an education organization.'; COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.StudentUSI IS 'A unique alphanumeric code assigned to a student.'; COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.BarrierToInternetAccessInResidenceDescriptorId IS 'An indication of the barrier to having internet access in the student’s primary place of residence.'; +COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.GenderIdentity IS 'The student''s gender as last reported to the education organization.'; COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.HispanicLatinoEthnicity IS 'An indication that the individual traces his or her origin or descent to Mexico, Puerto Rico, Cuba, Central, and South America, and other Spanish cultures, regardless of race, as last reported to the education organization. The term, "Spanish origin," can be used in addition to "Hispanic or Latino."'; COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.InternetAccessInResidence IS 'An indication of whether the student is able to access the internet in their primary place of residence.'; COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.InternetAccessTypeInResidenceDescriptorId IS 'The primary type of internet service used in the student’s primary place of residence.'; @@ -3478,7 +3515,8 @@ COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.PrimaryLearningDe COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.PrimaryLearningDeviceAwayFromSchoolDescriptorId IS 'The type of device the student uses most often to complete learning activities away from school.'; COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.PrimaryLearningDeviceProviderDescriptorId IS 'The provider of the primary learning device.'; COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.ProfileThumbnail IS 'Locator reference for the student photo. The specification for that reference is left to local definition.'; -COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.SexDescriptorId IS 'The student''s gender as last reported to the education organization.'; +COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.SexDescriptorId IS 'The student''s birth sex as reported to the education organization.'; +COMMENT ON COLUMN edfi.StudentEducationOrganizationAssociation.SupporterMilitaryConnectionDescriptorId IS 'Military connection of the person/people whom the student is a dependent of.'; -- Extended Properties [edfi].[StudentEducationOrganizationAssociationAddress] -- COMMENT ON TABLE edfi.StudentEducationOrganizationAssociationAddress IS 'The set of elements that describes an address, including the street address, city, state, and ZIP code.'; @@ -4059,6 +4097,19 @@ COMMENT ON COLUMN edfi.StudentSectionAssociation.HomeroomIndicator IS 'Indicates COMMENT ON COLUMN edfi.StudentSectionAssociation.RepeatIdentifierDescriptorId IS 'An indication as to whether a student has previously taken a given course.'; COMMENT ON COLUMN edfi.StudentSectionAssociation.TeacherStudentDataLinkExclusion IS 'Indicates that the student-section combination is excluded from calculation of value-added or growth attribution calculations used for a particular teacher evaluation.'; +-- Extended Properties [edfi].[StudentSectionAssociationProgram] -- +COMMENT ON TABLE edfi.StudentSectionAssociationProgram IS 'The program(s) that the student is participating in the context of the course.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.BeginDate IS 'Month, day, and year of the student''s entry or assignment to the section.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.LocalCourseCode IS 'The local code assigned by the School that identifies the course offering provided for the instruction of students.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.SchoolId IS 'The identifier assigned to a school.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.SchoolYear IS 'The identifier for the school year.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.SectionIdentifier IS 'The local identifier assigned to a section.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.SessionName IS 'The identifier for the calendar for the academic session.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.StudentUSI IS 'A unique alphanumeric code assigned to a student.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.EducationOrganizationId IS 'The identifier assigned to an education organization.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.ProgramName IS 'The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies.'; +COMMENT ON COLUMN edfi.StudentSectionAssociationProgram.ProgramTypeDescriptorId IS 'The type of program.'; + -- Extended Properties [edfi].[StudentSectionAttendanceEvent] -- COMMENT ON TABLE edfi.StudentSectionAttendanceEvent IS 'This event entity represents the recording of whether a student is in attendance for a section.'; COMMENT ON COLUMN edfi.StudentSectionAttendanceEvent.AttendanceEventCategoryDescriptorId IS 'A code describing the attendance event, for example: @@ -4229,6 +4280,10 @@ COMMENT ON COLUMN edfi.StudentVisa.VisaDescriptorId IS 'An indicator of a non-US COMMENT ON TABLE edfi.SubmissionStatusDescriptor IS 'The status of the student''s submission.'; COMMENT ON COLUMN edfi.SubmissionStatusDescriptor.SubmissionStatusDescriptorId IS 'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.'; +-- Extended Properties [edfi].[SupporterMilitaryConnectionDescriptor] -- +COMMENT ON TABLE edfi.SupporterMilitaryConnectionDescriptor IS 'Military connection of the person/people whom the student is a dependent of.'; +COMMENT ON COLUMN edfi.SupporterMilitaryConnectionDescriptor.SupporterMilitaryConnectionDescriptorId IS 'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.'; + -- Extended Properties [edfi].[Survey] -- COMMENT ON TABLE edfi.Survey IS 'A survey to identified or anonymous respondents.'; COMMENT ON COLUMN edfi.Survey.Namespace IS 'Namespace for the survey.'; @@ -4415,7 +4470,7 @@ COMMENT ON TABLE edfi.TelephoneNumberTypeDescriptor IS 'The type of communicatio COMMENT ON COLUMN edfi.TelephoneNumberTypeDescriptor.TelephoneNumberTypeDescriptorId IS 'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.'; -- Extended Properties [edfi].[TermDescriptor] -- -COMMENT ON TABLE edfi.TermDescriptor IS 'This descriptor defines the term of a session during the school year (e.g., Semester).'; +COMMENT ON TABLE edfi.TermDescriptor IS 'A distinct period of time into which the academic year is divided. These could be “semesters”, “trimesters” or “quarters”, depending on the school or district’s academic calendar.'; COMMENT ON COLUMN edfi.TermDescriptor.TermDescriptorId IS 'A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table.'; -- Extended Properties [edfi].[TitleIPartAParticipantDescriptor] -- diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0200-CreateTrackedChangeTables.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0200-CreateTrackedChangeTables.sql index 6c478d62fc..ec864ccd45 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0200-CreateTrackedChangeTables.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0200-CreateTrackedChangeTables.sql @@ -616,7 +616,7 @@ CREATE TABLE tracked_changes_edfi.grade oldgradingperioddescriptorid INT NOT NULL, oldgradingperioddescriptornamespace VARCHAR(255) NOT NULL, oldgradingperioddescriptorcodevalue VARCHAR(50) NOT NULL, - oldgradingperiodsequence INT NOT NULL, + oldgradingperiodname VARCHAR(60) NOT NULL, oldgradingperiodschoolyear SMALLINT NOT NULL, oldlocalcoursecode VARCHAR(60) NOT NULL, oldschoolid BIGINT NOT NULL, @@ -632,7 +632,7 @@ CREATE TABLE tracked_changes_edfi.grade newgradingperioddescriptorid INT NULL, newgradingperioddescriptornamespace VARCHAR(255) NULL, newgradingperioddescriptorcodevalue VARCHAR(50) NULL, - newgradingperiodsequence INT NULL, + newgradingperiodname VARCHAR(60) NULL, newgradingperiodschoolyear SMALLINT NULL, newlocalcoursecode VARCHAR(60) NULL, newschoolid BIGINT NULL, @@ -670,13 +670,13 @@ CREATE TABLE tracked_changes_edfi.gradingperiod oldgradingperioddescriptorid INT NOT NULL, oldgradingperioddescriptornamespace VARCHAR(255) NOT NULL, oldgradingperioddescriptorcodevalue VARCHAR(50) NOT NULL, - oldperiodsequence INT NOT NULL, + oldgradingperiodname VARCHAR(60) NOT NULL, oldschoolid BIGINT NOT NULL, oldschoolyear SMALLINT NOT NULL, newgradingperioddescriptorid INT NULL, newgradingperioddescriptornamespace VARCHAR(255) NULL, newgradingperioddescriptorcodevalue VARCHAR(50) NULL, - newperiodsequence INT NULL, + newgradingperiodname VARCHAR(60) NULL, newschoolid BIGINT NULL, newschoolyear SMALLINT NULL, id uuid NOT NULL, @@ -1190,7 +1190,7 @@ CREATE TABLE tracked_changes_edfi.reportcard oldgradingperioddescriptorid INT NOT NULL, oldgradingperioddescriptornamespace VARCHAR(255) NOT NULL, oldgradingperioddescriptorcodevalue VARCHAR(50) NOT NULL, - oldgradingperiodsequence INT NOT NULL, + oldgradingperiodname VARCHAR(60) NOT NULL, oldgradingperiodschoolid BIGINT NOT NULL, oldgradingperiodschoolyear SMALLINT NOT NULL, oldstudentusi INT NOT NULL, @@ -1199,7 +1199,7 @@ CREATE TABLE tracked_changes_edfi.reportcard newgradingperioddescriptorid INT NULL, newgradingperioddescriptornamespace VARCHAR(255) NULL, newgradingperioddescriptorcodevalue VARCHAR(50) NULL, - newgradingperiodsequence INT NULL, + newgradingperiodname VARCHAR(60) NULL, newgradingperiodschoolid BIGINT NULL, newgradingperiodschoolyear SMALLINT NULL, newstudentusi INT NULL, @@ -1683,7 +1683,7 @@ CREATE TABLE tracked_changes_edfi.studentcompetencyobjective oldgradingperioddescriptorid INT NOT NULL, oldgradingperioddescriptornamespace VARCHAR(255) NOT NULL, oldgradingperioddescriptorcodevalue VARCHAR(50) NOT NULL, - oldgradingperiodsequence INT NOT NULL, + oldgradingperiodname VARCHAR(60) NOT NULL, oldgradingperiodschoolid BIGINT NOT NULL, oldgradingperiodschoolyear SMALLINT NOT NULL, oldobjectiveeducationorganizationid BIGINT NOT NULL, @@ -1696,7 +1696,7 @@ CREATE TABLE tracked_changes_edfi.studentcompetencyobjective newgradingperioddescriptorid INT NULL, newgradingperioddescriptornamespace VARCHAR(255) NULL, newgradingperioddescriptorcodevalue VARCHAR(50) NULL, - newgradingperiodsequence INT NULL, + newgradingperiodname VARCHAR(60) NULL, newgradingperiodschoolid BIGINT NULL, newgradingperiodschoolyear SMALLINT NULL, newobjectiveeducationorganizationid BIGINT NULL, diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0210-CreateTriggersForChangeVersionAndKeyChanges.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0210-CreateTriggersForChangeVersionAndKeyChanges.sql index 129416eb67..e32d5f2996 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0210-CreateTriggersForChangeVersionAndKeyChanges.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0210-CreateTriggersForChangeVersionAndKeyChanges.sql @@ -270,12 +270,12 @@ BEGIN -- Handle key changes INSERT INTO tracked_changes_edfi.grade( - oldbegindate, oldgradetypedescriptorid, oldgradetypedescriptornamespace, oldgradetypedescriptorcodevalue, oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldgradingperiodsequence, oldgradingperiodschoolyear, oldlocalcoursecode, oldschoolid, oldschoolyear, oldsectionidentifier, oldsessionname, oldstudentusi, oldstudentuniqueid, - newbegindate, newgradetypedescriptorid, newgradetypedescriptornamespace, newgradetypedescriptorcodevalue, newgradingperioddescriptorid, newgradingperioddescriptornamespace, newgradingperioddescriptorcodevalue, newgradingperiodsequence, newgradingperiodschoolyear, newlocalcoursecode, newschoolid, newschoolyear, newsectionidentifier, newsessionname, newstudentusi, newstudentuniqueid, + oldbegindate, oldgradetypedescriptorid, oldgradetypedescriptornamespace, oldgradetypedescriptorcodevalue, oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldgradingperiodname, oldgradingperiodschoolyear, oldlocalcoursecode, oldschoolid, oldschoolyear, oldsectionidentifier, oldsessionname, oldstudentusi, oldstudentuniqueid, + newbegindate, newgradetypedescriptorid, newgradetypedescriptornamespace, newgradetypedescriptorcodevalue, newgradingperioddescriptorid, newgradingperioddescriptornamespace, newgradingperioddescriptorcodevalue, newgradingperiodname, newgradingperiodschoolyear, newlocalcoursecode, newschoolid, newschoolyear, newsectionidentifier, newsessionname, newstudentusi, newstudentuniqueid, id, changeversion) VALUES ( - old.begindate, old.gradetypedescriptorid, dj0.namespace, dj0.codevalue, old.gradingperioddescriptorid, dj1.namespace, dj1.codevalue, old.gradingperiodsequence, old.gradingperiodschoolyear, old.localcoursecode, old.schoolid, old.schoolyear, old.sectionidentifier, old.sessionname, old.studentusi, dj2.studentuniqueid, - new.begindate, new.gradetypedescriptorid, ij0.namespace, ij0.codevalue, new.gradingperioddescriptorid, ij1.namespace, ij1.codevalue, new.gradingperiodsequence, new.gradingperiodschoolyear, new.localcoursecode, new.schoolid, new.schoolyear, new.sectionidentifier, new.sessionname, new.studentusi, ij2.studentuniqueid, + old.begindate, old.gradetypedescriptorid, dj0.namespace, dj0.codevalue, old.gradingperioddescriptorid, dj1.namespace, dj1.codevalue, old.gradingperiodname, old.gradingperiodschoolyear, old.localcoursecode, old.schoolid, old.schoolyear, old.sectionidentifier, old.sessionname, old.studentusi, dj2.studentuniqueid, + new.begindate, new.gradetypedescriptorid, ij0.namespace, ij0.codevalue, new.gradingperioddescriptorid, ij1.namespace, ij1.codevalue, new.gradingperiodname, new.gradingperiodschoolyear, new.localcoursecode, new.schoolid, new.schoolyear, new.sectionidentifier, new.sessionname, new.studentusi, ij2.studentuniqueid, old.id, (nextval('changes.changeversionsequence'))); RETURN null; @@ -283,7 +283,7 @@ END; $BODY$ LANGUAGE plpgsql; IF NOT EXISTS(SELECT 1 FROM information_schema.triggers WHERE trigger_name = 'handlekeychanges' AND event_object_schema = 'edfi' AND event_object_table = 'grade') THEN - CREATE TRIGGER HandleKeyChanges AFTER UPDATE OF begindate, gradetypedescriptorid, gradingperioddescriptorid, gradingperiodsequence, gradingperiodschoolyear, localcoursecode, schoolid, schoolyear, sectionidentifier, sessionname, studentusi ON edfi.grade + CREATE TRIGGER HandleKeyChanges AFTER UPDATE OF begindate, gradetypedescriptorid, gradingperioddescriptorid, gradingperiodname, gradingperiodschoolyear, localcoursecode, schoolid, schoolyear, sectionidentifier, sessionname, studentusi ON edfi.grade FOR EACH ROW EXECUTE PROCEDURE tracked_changes_edfi.grade_keychg(); END IF; diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0220-CreateTriggersForDeleteTracking.sql b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0220-CreateTriggersForDeleteTracking.sql index ba6d105521..3e9f4a52ad 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0220-CreateTriggersForDeleteTracking.sql +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/PgSql/Structure/Ods/Changes/0220-CreateTriggersForDeleteTracking.sql @@ -1991,10 +1991,10 @@ BEGIN SELECT INTO dj2 * FROM edfi.student j2 WHERE studentusi = old.studentusi; INSERT INTO tracked_changes_edfi.grade( - oldbegindate, oldgradetypedescriptorid, oldgradetypedescriptornamespace, oldgradetypedescriptorcodevalue, oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldgradingperiodsequence, oldgradingperiodschoolyear, oldlocalcoursecode, oldschoolid, oldschoolyear, oldsectionidentifier, oldsessionname, oldstudentusi, oldstudentuniqueid, + oldbegindate, oldgradetypedescriptorid, oldgradetypedescriptornamespace, oldgradetypedescriptorcodevalue, oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldgradingperiodname, oldgradingperiodschoolyear, oldlocalcoursecode, oldschoolid, oldschoolyear, oldsectionidentifier, oldsessionname, oldstudentusi, oldstudentuniqueid, id, discriminator, changeversion) VALUES ( - OLD.begindate, OLD.gradetypedescriptorid, dj0.namespace, dj0.codevalue, OLD.gradingperioddescriptorid, dj1.namespace, dj1.codevalue, OLD.gradingperiodsequence, OLD.gradingperiodschoolyear, OLD.localcoursecode, OLD.schoolid, OLD.schoolyear, OLD.sectionidentifier, OLD.sessionname, OLD.studentusi, dj2.studentuniqueid, + OLD.begindate, OLD.gradetypedescriptorid, dj0.namespace, dj0.codevalue, OLD.gradingperioddescriptorid, dj1.namespace, dj1.codevalue, OLD.gradingperiodname, OLD.gradingperiodschoolyear, OLD.localcoursecode, OLD.schoolid, OLD.schoolyear, OLD.sectionidentifier, OLD.sessionname, OLD.studentusi, dj2.studentuniqueid, OLD.id, OLD.discriminator, nextval('changes.changeversionsequence')); RETURN NULL; @@ -2103,10 +2103,10 @@ BEGIN SELECT INTO dj0 * FROM edfi.descriptor j0 WHERE descriptorid = old.gradingperioddescriptorid; INSERT INTO tracked_changes_edfi.gradingperiod( - oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldperiodsequence, oldschoolid, oldschoolyear, + oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldgradingperiodname, oldschoolid, oldschoolyear, id, discriminator, changeversion) VALUES ( - OLD.gradingperioddescriptorid, dj0.namespace, dj0.codevalue, OLD.periodsequence, OLD.schoolid, OLD.schoolyear, + OLD.gradingperioddescriptorid, dj0.namespace, dj0.codevalue, OLD.gradingperiodname, OLD.schoolid, OLD.schoolyear, OLD.id, OLD.discriminator, nextval('changes.changeversionsequence')); RETURN NULL; @@ -3962,10 +3962,10 @@ BEGIN SELECT INTO dj1 * FROM edfi.student j1 WHERE studentusi = old.studentusi; INSERT INTO tracked_changes_edfi.reportcard( - oldeducationorganizationid, oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldgradingperiodsequence, oldgradingperiodschoolid, oldgradingperiodschoolyear, oldstudentusi, oldstudentuniqueid, + oldeducationorganizationid, oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldgradingperiodname, oldgradingperiodschoolid, oldgradingperiodschoolyear, oldstudentusi, oldstudentuniqueid, id, discriminator, changeversion) VALUES ( - OLD.educationorganizationid, OLD.gradingperioddescriptorid, dj0.namespace, dj0.codevalue, OLD.gradingperiodsequence, OLD.gradingperiodschoolid, OLD.gradingperiodschoolyear, OLD.studentusi, dj1.studentuniqueid, + OLD.educationorganizationid, OLD.gradingperioddescriptorid, dj0.namespace, dj0.codevalue, OLD.gradingperiodname, OLD.gradingperiodschoolid, OLD.gradingperiodschoolyear, OLD.studentusi, dj1.studentuniqueid, OLD.id, OLD.discriminator, nextval('changes.changeversionsequence')); RETURN NULL; @@ -4299,6 +4299,23 @@ CREATE TRIGGER TrackDeletes AFTER DELETE ON edfi.sectioncharacteristicdescriptor FOR EACH ROW EXECUTE PROCEDURE tracked_changes_edfi.sectioncharacteristicdescriptor_deleted(); END IF; +CREATE OR REPLACE FUNCTION tracked_changes_edfi.sectiontypedescriptor_deleted() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tracked_changes_edfi.descriptor(olddescriptorid, oldcodevalue, oldnamespace, id, discriminator, changeversion) + SELECT OLD.SectionTypeDescriptorId, b.codevalue, b.namespace, b.id, 'edfi.SectionTypeDescriptor', nextval('changes.ChangeVersionSequence') + FROM edfi.descriptor b WHERE old.SectionTypeDescriptorId = b.descriptorid ; + + RETURN NULL; +END; +$BODY$ LANGUAGE plpgsql; + +IF NOT EXISTS(SELECT 1 FROM information_schema.triggers WHERE trigger_name = 'trackdeletes' AND event_object_schema = 'edfi' AND event_object_table = 'sectiontypedescriptor') THEN +CREATE TRIGGER TrackDeletes AFTER DELETE ON edfi.sectiontypedescriptor + FOR EACH ROW EXECUTE PROCEDURE tracked_changes_edfi.sectiontypedescriptor_deleted(); +END IF; + CREATE OR REPLACE FUNCTION tracked_changes_edfi.separationdescriptor_deleted() RETURNS trigger AS $BODY$ @@ -4958,10 +4975,10 @@ BEGIN SELECT INTO dj2 * FROM edfi.student j2 WHERE studentusi = old.studentusi; INSERT INTO tracked_changes_edfi.studentcompetencyobjective( - oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldgradingperiodsequence, oldgradingperiodschoolid, oldgradingperiodschoolyear, oldobjectiveeducationorganizationid, oldobjective, oldobjectivegradeleveldescriptorid, oldobjectivegradeleveldescriptornamespace, oldobjectivegradeleveldescriptorcodevalue, oldstudentusi, oldstudentuniqueid, + oldgradingperioddescriptorid, oldgradingperioddescriptornamespace, oldgradingperioddescriptorcodevalue, oldgradingperiodname, oldgradingperiodschoolid, oldgradingperiodschoolyear, oldobjectiveeducationorganizationid, oldobjective, oldobjectivegradeleveldescriptorid, oldobjectivegradeleveldescriptornamespace, oldobjectivegradeleveldescriptorcodevalue, oldstudentusi, oldstudentuniqueid, id, discriminator, changeversion) VALUES ( - OLD.gradingperioddescriptorid, dj0.namespace, dj0.codevalue, OLD.gradingperiodsequence, OLD.gradingperiodschoolid, OLD.gradingperiodschoolyear, OLD.objectiveeducationorganizationid, OLD.objective, OLD.objectivegradeleveldescriptorid, dj1.namespace, dj1.codevalue, OLD.studentusi, dj2.studentuniqueid, + OLD.gradingperioddescriptorid, dj0.namespace, dj0.codevalue, OLD.gradingperiodname, OLD.gradingperiodschoolid, OLD.gradingperiodschoolyear, OLD.objectiveeducationorganizationid, OLD.objective, OLD.objectivegradeleveldescriptorid, dj1.namespace, dj1.codevalue, OLD.studentusi, dj2.studentuniqueid, OLD.id, OLD.discriminator, nextval('changes.changeversionsequence')); RETURN NULL; @@ -5420,6 +5437,23 @@ CREATE TRIGGER TrackDeletes AFTER DELETE ON edfi.submissionstatusdescriptor FOR EACH ROW EXECUTE PROCEDURE tracked_changes_edfi.submissionstatusdescriptor_deleted(); END IF; +CREATE OR REPLACE FUNCTION tracked_changes_edfi.supportermilitaryconnectiondescriptor_deleted() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tracked_changes_edfi.descriptor(olddescriptorid, oldcodevalue, oldnamespace, id, discriminator, changeversion) + SELECT OLD.SupporterMilitaryConnectionDescriptorId, b.codevalue, b.namespace, b.id, 'edfi.SupporterMilitaryConnectionDescriptor', nextval('changes.ChangeVersionSequence') + FROM edfi.descriptor b WHERE old.SupporterMilitaryConnectionDescriptorId = b.descriptorid ; + + RETURN NULL; +END; +$BODY$ LANGUAGE plpgsql; + +IF NOT EXISTS(SELECT 1 FROM information_schema.triggers WHERE trigger_name = 'trackdeletes' AND event_object_schema = 'edfi' AND event_object_table = 'supportermilitaryconnectiondescriptor') THEN +CREATE TRIGGER TrackDeletes AFTER DELETE ON edfi.supportermilitaryconnectiondescriptor + FOR EACH ROW EXECUTE PROCEDURE tracked_changes_edfi.supportermilitaryconnectiondescriptor_deleted(); +END IF; + CREATE OR REPLACE FUNCTION tracked_changes_edfi.survey_deleted() RETURNS trigger AS $BODY$ diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/Ed-Fi-Core.xsd b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/Ed-Fi-Core.xsd index e38a75080f..b8b3bfb088 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/Ed-Fi-Core.xsd +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/Ed-Fi-Core.xsd @@ -896,6 +896,11 @@ + + + The gender the contact identifies themselves as. + + Contact's address, if different from the student address. @@ -1223,6 +1228,21 @@ Link to the student's academic record for a semester/school year. + + + The section(s) associated with the course transcript. + + + + + The staff member that is the responsible teacher for instructing or monitoring instruction for student attempting the course. + + + + + The program(s) that the student participated in the context of the course. + + The descriptive name given to a course of study offered in a school or other institution or organization. In departmentalized classes at the elementary, secondary, and postsecondary levels (and for staff development activities), this refers to the name by which a course is identified (e.g., American History, English III). For elementary and other non-departmentalized classes, it refers to any portion of the instruction for which a grade or report is assigned (e.g., reading, composition, spelling, language arts). @@ -2063,13 +2083,18 @@ - The name of the period for which grades are reported. + The state's name of the period for which grades are reported. GradingPeriodDescriptor - + + + The school's descriptive name of the grading period. + + + The sequential order of this period relative to other periods. @@ -3792,6 +3817,14 @@ The local identifier assigned to a section. + + + Specifies whether the section is for attendance only, credit only, or both. + + SectionTypeDescriptor + + + When a section is part of a sequence of parts for a course, the number of the sequence. If the course has only one part, the value of this section attribute should be 1. @@ -3933,7 +3966,7 @@ - A term in the school year, generally a unit of time into which courses are scheduled, instruction occurs and by which credits are awarded. Sessions may be interrupted by vacations or other events. + A specific designated unit of time during which instruction is provided, grades are reported and academic credits are awarded to students (whenever applicable). Sessions serve as organized segments of the academic year and can be interrupted by vacations or other events. Domain Entity @@ -3963,7 +3996,7 @@ - An descriptor value indicating the term. + A descriptor value to indicate the term that the session is associated with. TermDescriptor @@ -4068,6 +4101,11 @@ + + + The gender the staff member identifies themselves as. + + The month, day, and year on which an individual was born. @@ -6140,7 +6178,7 @@ - This descriptor defines the name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required. + This descriptor defines the state's name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required. Descriptor @@ -7097,7 +7135,7 @@ - The type of education institution as classified by its primary focus. + The type of education institution as classified by its primary focus such as Alternative, Career and Technical Education, Regular, or Special Education schools. Descriptor @@ -7117,6 +7155,17 @@ + + + Specifies whether the section is for attendance only, credit only, or both. + + Descriptor + + + + + + Type of employment separation; for example: Voluntary separation, Involuntary separation, Mutual agreement. Other, etc. @@ -7282,6 +7331,17 @@ + + + Military connection of the person/people whom the student is a dependent of. + + Descriptor + + + + + + The descriptor holds the category or type of survey. @@ -7350,7 +7410,7 @@ - This descriptor defines the term of a session during the school year (e.g., Semester). + A distinct period of time into which the academic year is divided. These could be “semesters”, “trimesters” or “quarters”, depending on the school or district’s academic calendar. Descriptor @@ -7906,6 +7966,11 @@ Hourly wage associated with the employment position being reported. + + + Annual wage associated with the employment position being reported. + + Reference to the credential that is the basis for this employment. @@ -8346,14 +8411,19 @@ A coding scheme that is used for identification and record-keeping purposes by schools, social services, or other agencies to refer to a student. - + - The student's gender as last reported to the education organization. + The student's birth sex as reported to the education organization. SexDescriptor + + + The student's gender as last reported to the education organization. + + The set of elements that describes an address, including the street address, city, state, and ZIP code. @@ -8499,6 +8569,14 @@ + + + Military connection of the person/people whom the student is a dependent of. + + SupporterMilitaryConnectionDescriptor + + + @@ -9040,6 +9118,11 @@ + + + The program(s) that the student is participating in the context of the course. + + @@ -11257,15 +11340,15 @@ - The name of the period for which grades are reported. + The state's name of the period for which grades are reported. GradingPeriodDescriptor - + - The sequential order of this period relative to other periods. + The school's descriptive name of the grading period. @@ -12859,7 +12942,7 @@ - An descriptor value indicating the term. + A descriptor value to indicate the term that the session is associated with. TermDescriptor @@ -16263,7 +16346,7 @@ - This descriptor defines the name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required. + This descriptor defines the state's name of the period for which grades are reported. The mapping of descriptor values to known Ed-Fi enumeration values is required. Extended Descriptor Reference @@ -17046,7 +17129,7 @@ - The type of education institution as classified by its primary focus. + The type of education institution as classified by its primary focus such as Alternative, Career and Technical Education, Regular, or Special Education schools. Extended Descriptor Reference @@ -17062,6 +17145,15 @@ + + + Specifies whether the section is for attendance only, credit only, or both. + + Extended Descriptor Reference + + + + Type of employment separation; for example: Voluntary separation, Involuntary separation, Mutual agreement. Other, etc. @@ -17197,6 +17289,15 @@ + + + Military connection of the person/people whom the student is a dependent of. + + Extended Descriptor Reference + + + + The descriptor holds the category or type of survey. @@ -17253,7 +17354,7 @@ - This descriptor defines the term of a session during the school year (e.g., Semester). + A distinct period of time into which the academic year is divided. These could be “semesters”, “trimesters” or “quarters”, depending on the school or district’s academic calendar. Extended Descriptor Reference @@ -21323,6 +21424,17 @@ + + + The gender a person identifies themselves as. + + Simple + + + + + + An appendage, if any, used to denote an individual's generation in his family (e.g., Jr., Sr., III). @@ -21383,6 +21495,18 @@ + + + The school's descriptive name of the grading period. + + Simple + + + + + + + A description of the type of academic distinctions earned by or awarded to the individual. diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/Interchange-Descriptors.xsd b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/Interchange-Descriptors.xsd index dc625a0e56..604e22de60 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/Interchange-Descriptors.xsd +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/Interchange-Descriptors.xsd @@ -180,6 +180,7 @@ The Descriptor interchange is used to describe metadata about the descriptors an + @@ -195,6 +196,7 @@ The Descriptor interchange is used to describe metadata about the descriptors an + diff --git a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/SchemaAnnotation.xsd b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/SchemaAnnotation.xsd index 1da12e0a68..c630ba9eba 100644 --- a/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/SchemaAnnotation.xsd +++ b/Application/EdFi.Ods.Standard/Standard/5.0.0/Artifacts/Schemas/SchemaAnnotation.xsd @@ -184,6 +184,7 @@ + @@ -199,6 +200,7 @@ + diff --git a/Application/EdFi.Ods.Standard/versionmap.json b/Application/EdFi.Ods.Standard/versionmap.json index 258bbc27a8..62d0b1f46e 100644 --- a/Application/EdFi.Ods.Standard/versionmap.json +++ b/Application/EdFi.Ods.Standard/versionmap.json @@ -1,10 +1,10 @@ { "Ed-Fi-Standard": { "4.0.0": "v4.0.0", - "5.0.0": "v5.0.0-pre.2" + "5.0.0": "v5.0.0" }, "Ed-Fi-TPDM-Artifacts": { "4.0.0": "Data-Standard-v4.0.0", - "5.0.0": "Data-Standard-v5.0.0-pre.2" + "5.0.0": "Data-Standard-v5.0.0" } } \ No newline at end of file diff --git a/Postman Test Suite/Ed-Fi ODS-API ChangeQueries Key Changes and Deletes Test Suite.postman_collection.json b/Postman Test Suite/Ed-Fi ODS-API ChangeQueries Key Changes and Deletes Test Suite.postman_collection.json index fe1f65b847..709acc1920 100644 --- a/Postman Test Suite/Ed-Fi ODS-API ChangeQueries Key Changes and Deletes Test Suite.postman_collection.json +++ b/Postman Test Suite/Ed-Fi ODS-API ChangeQueries Key Changes and Deletes Test Suite.postman_collection.json @@ -5790,7 +5790,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"gradingPeriodReference\": {\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1,\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022\r\n },\r\n \"studentSectionAssociationReference\": {\r\n \"beginDate\": \"2021-08-23\",\r\n \"localCourseCode\": \"ALG-1\",\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"sectionIdentifier\": \"25590100102Trad220ALG112011\",\r\n \"sessionName\": \"2021-2022 Fall Semester\",\r\n \"studentUniqueId\": \"604822\"\r\n },\r\n \"gradeTypeDescriptor\": \"uri://ed-fi.org/GradeTypeDescriptor#Final\",\r\n \"numericGradeEarned\": 63.00,\r\n \"learningStandardGrades\": [\r\n {\r\n \"learningStandardReference\": {\r\n \"learningStandardId\": \"111.32.NA.A.1.D\"\r\n },\r\n \"numericGradeEarned\": 63.00\r\n }\r\n ]\r\n}", + "raw": "{\r\n \"gradingPeriodReference\": {\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"periodSequence\": 1,\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022\r\n },\r\n \"studentSectionAssociationReference\": {\r\n \"beginDate\": \"2021-08-23\",\r\n \"localCourseCode\": \"ALG-1\",\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"sectionIdentifier\": \"25590100102Trad220ALG112011\",\r\n \"sessionName\": \"2021-2022 Fall Semester\",\r\n \"studentUniqueId\": \"604822\"\r\n },\r\n \"gradeTypeDescriptor\": \"uri://ed-fi.org/GradeTypeDescriptor#Final\",\r\n \"numericGradeEarned\": 63.00,\r\n \"learningStandardGrades\": [\r\n {\r\n \"learningStandardReference\": {\r\n \"learningStandardId\": \"111.32.NA.A.1.D\"\r\n },\r\n \"numericGradeEarned\": 63.00\r\n }\r\n ]\r\n}", "options": { "raw": { "language": "json" @@ -5844,7 +5844,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"gradingPeriodReference\": {\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1,\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022\r\n },\r\n \"studentSectionAssociationReference\": {\r\n \"beginDate\": \"2021-08-23\",\r\n \"localCourseCode\": \"ALG-1\",\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"sectionIdentifier\": \"25590100102Trad220ALG112011\",\r\n \"sessionName\": \"2021-2022 Fall Semester\",\r\n \"studentUniqueId\": \"604822\"\r\n },\r\n \"gradeTypeDescriptor\": \"uri://ed-fi.org/GradeTypeDescriptor#Progress Report\",\r\n \"numericGradeEarned\": 63.00,\r\n \"learningStandardGrades\": [\r\n {\r\n \"learningStandardReference\": {\r\n \"learningStandardId\": \"111.32.NA.A.1.D\"\r\n },\r\n \"numericGradeEarned\": 63.00\r\n }\r\n ]\r\n}", + "raw": "{\r\n \"gradingPeriodReference\": {\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"periodSequence\": 1, \r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022\r\n },\r\n \"studentSectionAssociationReference\": {\r\n \"beginDate\": \"2021-08-23\",\r\n \"localCourseCode\": \"ALG-1\",\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"sectionIdentifier\": \"25590100102Trad220ALG112011\",\r\n \"sessionName\": \"2021-2022 Fall Semester\",\r\n \"studentUniqueId\": \"604822\"\r\n },\r\n \"gradeTypeDescriptor\": \"uri://ed-fi.org/GradeTypeDescriptor#Progress Report\",\r\n \"numericGradeEarned\": 63.00,\r\n \"learningStandardGrades\": [\r\n {\r\n \"learningStandardReference\": {\r\n \"learningStandardId\": \"111.32.NA.A.1.D\"\r\n },\r\n \"numericGradeEarned\": 63.00\r\n }\r\n ]\r\n}", "options": { "raw": { "language": "json" @@ -9016,7 +9016,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": 255901001\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"SESSION ONE\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1\r\n }\r\n },\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#Second Six Weeks\",\r\n \"periodSequence\": 2\r\n }\r\n },\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#Third Six Weeks\",\r\n \"periodSequence\": 3\r\n }\r\n }\r\n ]\r\n}\r\n", + "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": 255901001\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"SESSION ONE\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"periodSequence\": 1\r\n\r\n }\r\n },\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#Second Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 2\",\r\n \"periodSequence\": 2\r\n }\r\n },\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#Third Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Final Exam\",\r\n \"periodSequence\": 3\r\n }\r\n }\r\n ]\r\n}\r\n", "options": { "raw": { "language": "json" @@ -9070,7 +9070,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": 255901001\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"SESSION TWO\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1\r\n }\r\n },\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#Second Six Weeks\",\r\n \"periodSequence\": 2\r\n }\r\n },\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#Third Six Weeks\",\r\n \"periodSequence\": 3\r\n }\r\n }\r\n ]\r\n}\r\n", + "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": 255901001\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"SESSION TWO\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"periodSequence\": 1\r\n }\r\n },\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#Second Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 2\",\r\n \"periodSequence\": 2\r\n }\r\n },\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#Third Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Final Exam\",\r\n \"periodSequence\": 3\r\n }\r\n }\r\n ]\r\n}\r\n", "options": { "raw": { "language": "json" diff --git a/Postman Test Suite/Ed-Fi ODS-API Integration Test Suite AuthorizationTests.postman_collection.json b/Postman Test Suite/Ed-Fi ODS-API Integration Test Suite AuthorizationTests.postman_collection.json index 1257619686..57ea0dba58 100644 --- a/Postman Test Suite/Ed-Fi ODS-API Integration Test Suite AuthorizationTests.postman_collection.json +++ b/Postman Test Suite/Ed-Fi ODS-API Integration Test Suite AuthorizationTests.postman_collection.json @@ -5141,6 +5141,10 @@ "\r", "const responseItems = pm.response.json();\r", "\r", + "pm.test(\"Check if responseItems array has at least one item\", function () {\r", + " pm.expect(responseItems.length).to.be.least(1);\r", + "});\r", + "\r", "pm.environment.set('known:student:uniqueId:001', responseItems[0].studentReference.studentUniqueId);" ], "type": "text/javascript" @@ -5202,6 +5206,10 @@ "\r", "const responseItems = pm.response.json();\r", "\r", + "pm.test(\"Check if responseItems array has at least one item\", function () {\r", + " pm.expect(responseItems.length).to.be.least(1);\r", + "});\r", + "\r", "pm.environment.set('known:student:uniqueId:044', responseItems[0].studentReference.studentUniqueId);" ], "type": "text/javascript" @@ -10329,8 +10337,8 @@ "listen": "test", "script": { "exec": [ - "pm.test(\"Response is 201\", () => {\r", - " pm.expect(pm.response.code).to.equal(201);\r", + "pm.test(\"Response is 200 or 201\", () => {\r", + " pm.expect(pm.response.code).to.be.oneOf([200, 201]);\r", "});\r", "\r", "pm.environment.set('known:program:id', pm.response.headers.one('Location').value.split(\"/\").pop());" @@ -10354,7 +10362,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"educationOrganizationReference\": {\r\n \"educationOrganizationId\": 255901001\r\n },\r\n \"programName\": \"Bilingual\",\r\n \"programTypeDescriptor\": \"uri://ed-fi.org/ProgramTypeDescriptor#Bilingual\",\r\n \"programId\": \"1\",\r\n \"characteristics\": [],\r\n \"learningStandards\": [],\r\n \"sponsors\": [\r\n {\r\n \"programSponsorDescriptor\": \"uri://ed-fi.org/ProgramSponsorDescriptor#Local Education Agency\"\r\n }\r\n ]\r\n}", + "raw": "{\r\n \"educationOrganizationReference\": {\r\n \"educationOrganizationId\": 255901044\r\n },\r\n \"programName\": \"Bilingual\",\r\n \"programTypeDescriptor\": \"uri://ed-fi.org/ProgramTypeDescriptor#Bilingual\",\r\n \"programId\": \"1\",\r\n \"characteristics\": [],\r\n \"learningStandards\": [],\r\n \"sponsors\": [\r\n {\r\n \"programSponsorDescriptor\": \"uri://ed-fi.org/ProgramSponsorDescriptor#Local Education Agency\"\r\n }\r\n ]\r\n}", "options": { "raw": { "language": "json" @@ -10470,7 +10478,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"consentToEvaluationReceivedDate\": \"2023-07-08\",\r\n \"educationOrganizationReference\": {\r\n \"educationOrganizationId\": 255901001\r\n },\r\n \"programReference\": {\r\n \"educationOrganizationId\": 255901001,\r\n \"programName\": \"Bilingual\",\r\n \"programTypeDescriptor\": \"uri://ed-fi.org/ProgramTypeDescriptor#Bilingual\"\r\n },\r\n \"studentReference\": {\r\n \"studentUniqueId\": \"{{known:studentUniqueId:MS}}\"\r\n },\r\n \"ideaPartDescriptor\": \"uri://ed-fi.org/IDEAPartDescriptor#IDEA Part C\"\r\n}", + "raw": "{\r\n \"consentToEvaluationReceivedDate\": \"2023-07-08\",\r\n \"educationOrganizationReference\": {\r\n \"educationOrganizationId\": 255901044\r\n },\r\n \"programReference\": {\r\n \"educationOrganizationId\": 255901044,\r\n \"programName\": \"Bilingual\",\r\n \"programTypeDescriptor\": \"uri://ed-fi.org/ProgramTypeDescriptor#Bilingual\"\r\n },\r\n \"studentReference\": {\r\n \"studentUniqueId\": \"{{known:studentUniqueId:MS}}\"\r\n },\r\n \"ideaPartDescriptor\": \"uri://ed-fi.org/IDEAPartDescriptor#IDEA Part C\"\r\n}", "options": { "raw": { "language": "json" @@ -11082,7 +11090,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": 255901001\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"SESSION ONE\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1\r\n }\r\n }\r\n ]\r\n}\r\n", + "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": 255901001\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"SESSION ONE\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901001,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"PeriodSequence\":1\r\n }\r\n }\r\n ]\r\n}\r\n", "options": { "raw": { "language": "json" @@ -11155,7 +11163,7 @@ "header": [], "body": { "mode": "raw", - "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": 255901044\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"SESSION ONE\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901044,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1\r\n }\r\n }\r\n ]\r\n}\r\n", + "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": 255901044\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"SESSION ONE\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": 255901044,\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"PeriodSequence\":1\r\n }\r\n }\r\n ]\r\n}\r\n", "options": { "raw": { "language": "json" diff --git a/Postman Test Suite/Ed-Fi ODS-API Record Ownership Test Suite.postman_collection.json b/Postman Test Suite/Ed-Fi ODS-API Record Ownership Test Suite.postman_collection.json index b48bfb034b..384c09d2d6 100644 --- a/Postman Test Suite/Ed-Fi ODS-API Record Ownership Test Suite.postman_collection.json +++ b/Postman Test Suite/Ed-Fi ODS-API Record Ownership Test Suite.postman_collection.json @@ -3,7 +3,8 @@ "_postman_id": "b3df0f17-9180-40c9-be67-19c103a01468", "name": "Ed-Fi ODS/API Record Ownership Test Suite", "description": "Localhost integration testing using Postman Scripts", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "26378282" }, "item": [ { @@ -1730,7 +1731,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": \"{{known:schoolId_9011}}\"\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1,\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-10-03\",\r\n \"totalInstructionalDays\": 99\r\n }" + "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": \"{{known:schoolId_9011}}\"\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"PeriodSequence\": 1,\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-10-03\",\r\n \"totalInstructionalDays\": 99\r\n }" }, "url": { "raw": "{{ApiBaseUrl}}/data/v3/ed-fi/gradingPeriods", @@ -1794,7 +1795,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": \"{{known:schoolId_9011}}\"\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"2021-2022 Fall Semester Record Ownership\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": \"{{known:schoolId_9011}}\",\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1\r\n }\r\n }\r\n ]\r\n }" + "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": \"{{known:schoolId_9011}}\"\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"2021-2022 Fall Semester Record Ownership\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": \"{{known:schoolId_9011}}\",\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"PeriodSequence\": 1\r\n }\r\n }\r\n ]\r\n }" }, "url": { "raw": "{{ApiBaseUrl}}/data/v3/ed-fi/sessions", @@ -2374,7 +2375,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": \"{{known:schoolId_9021}}\"\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1,\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-10-03\",\r\n \"totalInstructionalDays\": 99\r\n }" + "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": \"{{known:schoolId_9021}}\"\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"PeriodSequence\": 1, \r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-10-03\",\r\n \"totalInstructionalDays\": 99\r\n }" }, "url": { "raw": "{{ApiBaseUrl}}/data/v3/ed-fi/gradingPeriods", @@ -2438,7 +2439,7 @@ ], "body": { "mode": "raw", - "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": \"{{known:schoolId_9021}}\"\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"2021-2022 Fall Semester Record Ownership\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": \"{{known:schoolId_9021}}\",\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"periodSequence\": 1\r\n }\r\n }\r\n ]\r\n }" + "raw": "{\r\n \"schoolReference\": {\r\n \"schoolId\": \"{{known:schoolId_9021}}\"\r\n },\r\n \"schoolYearTypeReference\": {\r\n \"schoolYear\": 2022\r\n },\r\n \"sessionName\": \"2021-2022 Fall Semester Record Ownership\",\r\n \"beginDate\": \"2021-08-23\",\r\n \"endDate\": \"2021-12-17\",\r\n \"termDescriptor\": \"uri://ed-fi.org/TermDescriptor#Fall Semester\",\r\n \"totalInstructionalDays\": 81,\r\n \"academicWeeks\": [],\r\n \"gradingPeriods\": [\r\n {\r\n \"gradingPeriodReference\": {\r\n \"schoolId\": \"{{known:schoolId_9021}}\",\r\n \"schoolYear\": 2022,\r\n \"gradingPeriodDescriptor\": \"uri://ed-fi.org/GradingPeriodDescriptor#First Six Weeks\",\r\n \"gradingPeriodName\": \"2021-2022 Fall Semester Exam 1\",\r\n \"PeriodSequence\": 1\r\n }\r\n }\r\n ]\r\n }" }, "url": { "raw": "{{ApiBaseUrl}}/data/v3/ed-fi/sessions", diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Artifacts_MsSql_Data_Security_0002-ResourceClaimMetadata_generated.approved.sql b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Artifacts_MsSql_Data_Security_0002-ResourceClaimMetadata_generated.approved.sql index dc576a5b04..09f626867b 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Artifacts_MsSql_Data_Security_0002-ResourceClaimMetadata_generated.approved.sql +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Artifacts_MsSql_Data_Security_0002-ResourceClaimMetadata_generated.approved.sql @@ -2212,6 +2212,15 @@ BEGIN END +IF NOT EXISTS(SELECT 1 FROM [dbo].[ResourceClaims] WHERE [ClaimName] = 'http://ed-fi.org/ods/identity/claims/sectionTypeDescriptor') +BEGIN + + INSERT [dbo].[ResourceClaims] ([ResourceName], [ClaimName], [ParentResourceClaimId]) + VALUES (N'sectionTypeDescriptor', N'http://ed-fi.org/ods/identity/claims/sectionTypeDescriptor', +@systemDescriptorsResourceClaimId); + +END + IF NOT EXISTS(SELECT 1 FROM [dbo].[ResourceClaims] WHERE [ClaimName] = 'http://ed-fi.org/ods/identity/claims/separationDescriptor') BEGIN @@ -2743,6 +2752,15 @@ BEGIN END +IF NOT EXISTS(SELECT 1 FROM [dbo].[ResourceClaims] WHERE [ClaimName] = 'http://ed-fi.org/ods/identity/claims/supporterMilitaryConnectionDescriptor') +BEGIN + + INSERT [dbo].[ResourceClaims] ([ResourceName], [ClaimName], [ParentResourceClaimId]) + VALUES (N'supporterMilitaryConnectionDescriptor', N'http://ed-fi.org/ods/identity/claims/supporterMilitaryConnectionDescriptor', +@systemDescriptorsResourceClaimId); + +END + IF NOT EXISTS(SELECT 1 FROM [dbo].[ResourceClaims] WHERE [ClaimName] = 'http://ed-fi.org/ods/identity/claims/survey') BEGIN diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Artifacts_PgSql_Data_Security_0002-ResourceClaimMetadata_generated.approved.sql b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Artifacts_PgSql_Data_Security_0002-ResourceClaimMetadata_generated.approved.sql index 494684297f..39bd190ba3 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Artifacts_PgSql_Data_Security_0002-ResourceClaimMetadata_generated.approved.sql +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Artifacts_PgSql_Data_Security_0002-ResourceClaimMetadata_generated.approved.sql @@ -1234,6 +1234,11 @@ begin values ('sectionCharacteristicDescriptor', 'http://ed-fi.org/ods/identity/claims/sectionCharacteristicDescriptor', systemDescriptorsResourceClaimId); END IF; + IF NOT EXISTS(SELECT 1 FROM dbo.ResourceClaims WHERE ResourceName ='sectionTypeDescriptor') THEN + insert into dbo.ResourceClaims (ResourceName, ClaimName, ParentResourceClaimId) + values ('sectionTypeDescriptor', 'http://ed-fi.org/ods/identity/claims/sectionTypeDescriptor', systemDescriptorsResourceClaimId); + END IF; + IF NOT EXISTS(SELECT 1 FROM dbo.ResourceClaims WHERE ResourceName ='separationDescriptor') THEN insert into dbo.ResourceClaims (ResourceName, ClaimName, ParentResourceClaimId) values ('separationDescriptor', 'http://ed-fi.org/ods/identity/claims/separationDescriptor', systemDescriptorsResourceClaimId); @@ -1529,6 +1534,11 @@ begin values ('submissionStatusDescriptor', 'http://ed-fi.org/ods/identity/claims/submissionStatusDescriptor', systemDescriptorsResourceClaimId); END IF; + IF NOT EXISTS(SELECT 1 FROM dbo.ResourceClaims WHERE ResourceName ='supporterMilitaryConnectionDescriptor') THEN + insert into dbo.ResourceClaims (ResourceName, ClaimName, ParentResourceClaimId) + values ('supporterMilitaryConnectionDescriptor', 'http://ed-fi.org/ods/identity/claims/supporterMilitaryConnectionDescriptor', systemDescriptorsResourceClaimId); + END IF; + IF NOT EXISTS(SELECT 1 FROM dbo.ResourceClaims WHERE ResourceName ='survey') THEN insert into dbo.ResourceClaims (ResourceName, ClaimName, ParentResourceClaimId) values ('survey', 'http://ed-fi.org/ods/identity/claims/survey', surveyDomainResourceClaimId); diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Controllers_Controllers.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Controllers_Controllers.generated.approved.cs index 8b92709c8a..495754c9ab 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Controllers_Controllers.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Controllers_Controllers.generated.approved.cs @@ -1618,6 +1618,7 @@ protected override void MapAll(Api.Common.Models.Requests.Contacts.EdFi.ContactG specification.SuspendReferenceAssignmentCheck(); specification.ContactUniqueId = request.ContactUniqueId; specification.FirstName = request.FirstName; + specification.GenderIdentity = request.GenderIdentity; specification.GenerationCodeSuffix = request.GenerationCodeSuffix; specification.HighestCompletedLevelOfEducationDescriptor = request.HighestCompletedLevelOfEducationDescriptor; specification.Id = request.Id; @@ -2097,6 +2098,7 @@ protected override void MapAll(Api.Common.Models.Requests.CourseTranscripts.EdFi specification.FinalNumericGradeEarned = request.FinalNumericGradeEarned; specification.Id = request.Id; specification.MethodCreditEarnedDescriptor = request.MethodCreditEarnedDescriptor; + specification.ResponsibleTeacherStaffUniqueId = request.ResponsibleTeacherStaffUniqueId; specification.SchoolYear = request.SchoolYear; specification.StudentUniqueId = request.StudentUniqueId; specification.TermDescriptor = request.TermDescriptor; @@ -3604,8 +3606,8 @@ protected override void MapAll(Api.Common.Models.Requests.Grades.EdFi.GradeGetBy specification.GradeEarnedDescription = request.GradeEarnedDescription; specification.GradeTypeDescriptor = request.GradeTypeDescriptor; specification.GradingPeriodDescriptor = request.GradingPeriodDescriptor; + specification.GradingPeriodName = request.GradingPeriodName; specification.GradingPeriodSchoolYear = request.GradingPeriodSchoolYear; - specification.GradingPeriodSequence = request.GradingPeriodSequence; specification.Id = request.Id; specification.LetterGradeEarned = request.LetterGradeEarned; specification.LocalCourseCode = request.LocalCourseCode; @@ -3652,11 +3654,11 @@ protected override void MapAll(Api.Common.Models.Requests.GradebookEntries.EdFi. specification.GradebookEntryIdentifier = request.GradebookEntryIdentifier; specification.GradebookEntryTypeDescriptor = request.GradebookEntryTypeDescriptor; specification.GradingPeriodDescriptor = request.GradingPeriodDescriptor; + specification.GradingPeriodName = request.GradingPeriodName; specification.Id = request.Id; specification.LocalCourseCode = request.LocalCourseCode; specification.MaxPoints = request.MaxPoints; specification.Namespace = request.Namespace; - specification.PeriodSequence = request.PeriodSequence; specification.SchoolId = request.SchoolId; specification.SchoolYear = request.SchoolYear; specification.SectionIdentifier = request.SectionIdentifier; @@ -3815,6 +3817,7 @@ protected override void MapAll(Api.Common.Models.Requests.GradingPeriods.EdFi.Gr specification.BeginDate = request.BeginDate; specification.EndDate = request.EndDate; specification.GradingPeriodDescriptor = request.GradingPeriodDescriptor; + specification.GradingPeriodName = request.GradingPeriodName; specification.Id = request.Id; specification.PeriodSequence = request.PeriodSequence; specification.SchoolId = request.SchoolId; @@ -7110,9 +7113,9 @@ protected override void MapAll(Api.Common.Models.Requests.ReportCards.EdFi.Repor specification.SuspendReferenceAssignmentCheck(); specification.EducationOrganizationId = request.EducationOrganizationId; specification.GradingPeriodDescriptor = request.GradingPeriodDescriptor; + specification.GradingPeriodName = request.GradingPeriodName; specification.GradingPeriodSchoolId = request.GradingPeriodSchoolId; specification.GradingPeriodSchoolYear = request.GradingPeriodSchoolYear; - specification.GradingPeriodSequence = request.GradingPeriodSequence; specification.Id = request.Id; specification.NumberOfDaysAbsent = request.NumberOfDaysAbsent; specification.NumberOfDaysInAttendance = request.NumberOfDaysInAttendance; @@ -7660,6 +7663,7 @@ protected override void MapAll(Api.Common.Models.Requests.Sections.EdFi.SectionG specification.SchoolYear = request.SchoolYear; specification.SectionIdentifier = request.SectionIdentifier; specification.SectionName = request.SectionName; + specification.SectionTypeDescriptor = request.SectionTypeDescriptor; specification.SequenceOfCourse = request.SequenceOfCourse; specification.SessionName = request.SessionName; } @@ -7735,6 +7739,36 @@ protected override void MapAll(Api.Common.Models.Requests.SectionCharacteristicD } } +namespace EdFi.Ods.Api.Services.Controllers.SectionTypeDescriptors.EdFi +{ + [ApiExplorerSettings(IgnoreApi = true)] + [ExcludeFromCodeCoverage] + [ApiController] + [Authorize] + [ApplyOdsRouteRootTemplate, Route($"{RouteConstants.DataManagementRoutePrefix}/ed-fi/sectionTypeDescriptors")] + public partial class SectionTypeDescriptorsController : DataManagementControllerBase< + Api.Common.Models.Resources.SectionTypeDescriptor.EdFi.SectionTypeDescriptor, + Entities.Common.EdFi.ISectionTypeDescriptor, + Entities.NHibernate.SectionTypeDescriptorAggregate.EdFi.SectionTypeDescriptor, + Api.Common.Models.Requests.SectionTypeDescriptors.EdFi.SectionTypeDescriptorPut, + Api.Common.Models.Requests.SectionTypeDescriptors.EdFi.SectionTypeDescriptorPost, + Api.Common.Models.Requests.SectionTypeDescriptors.EdFi.SectionTypeDescriptorDelete, + Api.Common.Models.Requests.SectionTypeDescriptors.EdFi.SectionTypeDescriptorGetByExample> + { + public SectionTypeDescriptorsController(IPipelineFactory pipelineFactory, IRESTErrorProvider restErrorProvider, IDefaultPageSizeLimitProvider defaultPageSizeLimitProvider, ApiSettings apiSettings, IContextProvider profileContentTypeContextProvider, ILogContextAccessor logContextAccessor) + : base(pipelineFactory, restErrorProvider, defaultPageSizeLimitProvider, apiSettings, profileContentTypeContextProvider, logContextAccessor) + { + } + + protected override void MapAll(Api.Common.Models.Requests.SectionTypeDescriptors.EdFi.SectionTypeDescriptorGetByExample request, Entities.Common.EdFi.ISectionTypeDescriptor specification) + { + // Copy all existing values + specification.SuspendReferenceAssignmentCheck(); + specification.SectionTypeDescriptorId = request.SectionTypeDescriptorId; + } + } +} + namespace EdFi.Ods.Api.Services.Controllers.SeparationDescriptors.EdFi { [ApiExplorerSettings(IgnoreApi = true)] @@ -8043,6 +8077,7 @@ protected override void MapAll(Api.Common.Models.Requests.Staffs.EdFi.StaffGetBy specification.BirthDate = request.BirthDate; specification.CitizenshipStatusDescriptor = request.CitizenshipStatusDescriptor; specification.FirstName = request.FirstName; + specification.GenderIdentity = request.GenderIdentity; specification.GenerationCodeSuffix = request.GenerationCodeSuffix; specification.HighestCompletedLevelOfEducationDescriptor = request.HighestCompletedLevelOfEducationDescriptor; specification.HighlyQualifiedTeacher = request.HighlyQualifiedTeacher; @@ -8302,6 +8337,7 @@ protected override void MapAll(Api.Common.Models.Requests.StaffEducationOrganiza { // Copy all existing values specification.SuspendReferenceAssignmentCheck(); + specification.AnnualWage = request.AnnualWage; specification.CredentialIdentifier = request.CredentialIdentifier; specification.Department = request.Department; specification.EducationOrganizationId = request.EducationOrganizationId; @@ -8866,9 +8902,9 @@ protected override void MapAll(Api.Common.Models.Requests.StudentCompetencyObjec specification.CompetencyLevelDescriptor = request.CompetencyLevelDescriptor; specification.DiagnosticStatement = request.DiagnosticStatement; specification.GradingPeriodDescriptor = request.GradingPeriodDescriptor; + specification.GradingPeriodName = request.GradingPeriodName; specification.GradingPeriodSchoolId = request.GradingPeriodSchoolId; specification.GradingPeriodSchoolYear = request.GradingPeriodSchoolYear; - specification.GradingPeriodSequence = request.GradingPeriodSequence; specification.Id = request.Id; specification.Objective = request.Objective; specification.ObjectiveEducationOrganizationId = request.ObjectiveEducationOrganizationId; @@ -9050,6 +9086,7 @@ protected override void MapAll(Api.Common.Models.Requests.StudentEducationOrgani specification.SuspendReferenceAssignmentCheck(); specification.BarrierToInternetAccessInResidenceDescriptor = request.BarrierToInternetAccessInResidenceDescriptor; specification.EducationOrganizationId = request.EducationOrganizationId; + specification.GenderIdentity = request.GenderIdentity; specification.HispanicLatinoEthnicity = request.HispanicLatinoEthnicity; specification.Id = request.Id; specification.InternetAccessInResidence = request.InternetAccessInResidence; @@ -9063,6 +9100,7 @@ protected override void MapAll(Api.Common.Models.Requests.StudentEducationOrgani specification.ProfileThumbnail = request.ProfileThumbnail; specification.SexDescriptor = request.SexDescriptor; specification.StudentUniqueId = request.StudentUniqueId; + specification.SupporterMilitaryConnectionDescriptor = request.SupporterMilitaryConnectionDescriptor; } } } @@ -9937,6 +9975,36 @@ protected override void MapAll(Api.Common.Models.Requests.SubmissionStatusDescri } } +namespace EdFi.Ods.Api.Services.Controllers.SupporterMilitaryConnectionDescriptors.EdFi +{ + [ApiExplorerSettings(IgnoreApi = true)] + [ExcludeFromCodeCoverage] + [ApiController] + [Authorize] + [ApplyOdsRouteRootTemplate, Route($"{RouteConstants.DataManagementRoutePrefix}/ed-fi/supporterMilitaryConnectionDescriptors")] + public partial class SupporterMilitaryConnectionDescriptorsController : DataManagementControllerBase< + Api.Common.Models.Resources.SupporterMilitaryConnectionDescriptor.EdFi.SupporterMilitaryConnectionDescriptor, + Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor, + Entities.NHibernate.SupporterMilitaryConnectionDescriptorAggregate.EdFi.SupporterMilitaryConnectionDescriptor, + Api.Common.Models.Requests.SupporterMilitaryConnectionDescriptors.EdFi.SupporterMilitaryConnectionDescriptorPut, + Api.Common.Models.Requests.SupporterMilitaryConnectionDescriptors.EdFi.SupporterMilitaryConnectionDescriptorPost, + Api.Common.Models.Requests.SupporterMilitaryConnectionDescriptors.EdFi.SupporterMilitaryConnectionDescriptorDelete, + Api.Common.Models.Requests.SupporterMilitaryConnectionDescriptors.EdFi.SupporterMilitaryConnectionDescriptorGetByExample> + { + public SupporterMilitaryConnectionDescriptorsController(IPipelineFactory pipelineFactory, IRESTErrorProvider restErrorProvider, IDefaultPageSizeLimitProvider defaultPageSizeLimitProvider, ApiSettings apiSettings, IContextProvider profileContentTypeContextProvider, ILogContextAccessor logContextAccessor) + : base(pipelineFactory, restErrorProvider, defaultPageSizeLimitProvider, apiSettings, profileContentTypeContextProvider, logContextAccessor) + { + } + + protected override void MapAll(Api.Common.Models.Requests.SupporterMilitaryConnectionDescriptors.EdFi.SupporterMilitaryConnectionDescriptorGetByExample request, Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor specification) + { + // Copy all existing values + specification.SuspendReferenceAssignmentCheck(); + specification.SupporterMilitaryConnectionDescriptorId = request.SupporterMilitaryConnectionDescriptorId; + } + } +} + namespace EdFi.Ods.Api.Services.Controllers.Surveys.EdFi { [ApiExplorerSettings(IgnoreApi = true)] diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_MsSql_EntityOrmMappings.generated.hbm.approved.xml b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_MsSql_EntityOrmMappings.generated.hbm.approved.xml index 7fb9d6f169..f8728af626 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_MsSql_EntityOrmMappings.generated.hbm.approved.xml +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_MsSql_EntityOrmMappings.generated.hbm.approved.xml @@ -1681,6 +1681,7 @@ + @@ -2541,6 +2542,7 @@ + @@ -2551,6 +2553,9 @@ + + + @@ -2626,6 +2631,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2787,6 +2818,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5335,6 +5442,20 @@ + + + + + + + + + + + + + + @@ -5545,6 +5666,20 @@ + + + + + + + + + + + + + + @@ -7981,8 +8116,8 @@ + - @@ -8004,8 +8139,8 @@ + - @@ -8038,7 +8173,7 @@ - + @@ -8060,8 +8195,8 @@ + - @@ -8085,8 +8220,8 @@ + - @@ -8157,9 +8292,9 @@ + - @@ -8170,7 +8305,7 @@ - + @@ -8229,7 +8364,7 @@ - + @@ -8245,7 +8380,7 @@ - + @@ -8265,6 +8400,7 @@ + @@ -11662,9 +11798,9 @@ + - @@ -11680,9 +11816,9 @@ + - @@ -11709,7 +11845,7 @@ - + @@ -11724,9 +11860,9 @@ + - @@ -11736,9 +11872,9 @@ + - @@ -11748,9 +11884,9 @@ + - @@ -11774,9 +11910,9 @@ + - @@ -11791,8 +11927,8 @@ + - @@ -11816,9 +11952,9 @@ + - @@ -11850,9 +11986,9 @@ + - @@ -11865,9 +12001,9 @@ + - @@ -12150,6 +12286,7 @@ + @@ -12561,7 +12698,7 @@ - + @@ -12577,7 +12714,7 @@ - + @@ -12700,6 +12837,7 @@ + @@ -13821,6 +13959,7 @@ + @@ -14735,9 +14874,9 @@ + - @@ -14755,9 +14894,9 @@ + - @@ -15348,9 +15487,9 @@ + - @@ -15368,9 +15507,9 @@ + - @@ -15396,7 +15535,7 @@ - + @@ -15415,9 +15554,9 @@ + - @@ -15429,9 +15568,9 @@ + - @@ -15455,9 +15594,9 @@ + - @@ -15499,9 +15638,9 @@ + - @@ -15838,6 +15977,7 @@ + @@ -15848,7 +15988,8 @@ - + + @@ -17638,6 +17779,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_MsSql_EntityOrmMappingsForQueries.generated.hbm.approved.xml b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_MsSql_EntityOrmMappingsForQueries.generated.hbm.approved.xml index 43bc340a88..e859edef9e 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_MsSql_EntityOrmMappingsForQueries.generated.hbm.approved.xml +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_MsSql_EntityOrmMappingsForQueries.generated.hbm.approved.xml @@ -1764,6 +1764,7 @@ + @@ -2724,6 +2725,7 @@ + @@ -2751,6 +2753,9 @@ + + + @@ -2827,6 +2832,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3004,6 +3035,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8022,6 +8129,27 @@ + + + + + + + + + + + + + + + + + + + + + @@ -8435,6 +8563,27 @@ + + + + + + + + + + + + + + + + + + + + + @@ -11568,8 +11717,8 @@ + - @@ -11609,7 +11758,7 @@ - + @@ -11632,8 +11781,8 @@ + - @@ -11649,8 +11798,8 @@ + - @@ -11674,8 +11823,8 @@ + - @@ -11738,9 +11887,9 @@ + - @@ -11756,7 +11905,7 @@ - + @@ -11822,7 +11971,7 @@ - + @@ -11844,6 +11993,7 @@ + @@ -11863,7 +12013,7 @@ - + @@ -11873,7 +12023,7 @@ - + @@ -11883,7 +12033,7 @@ - + @@ -11893,7 +12043,7 @@ - + @@ -11903,7 +12053,7 @@ - + @@ -14894,6 +15044,15 @@ + + + + + + + + + @@ -14975,6 +15134,15 @@ + + + + + + + + + @@ -15637,9 +15805,9 @@ + - @@ -15670,7 +15838,7 @@ - + @@ -15683,9 +15851,9 @@ + - @@ -15695,9 +15863,9 @@ + - @@ -15707,9 +15875,9 @@ + - @@ -15719,9 +15887,9 @@ + - @@ -15745,9 +15913,9 @@ + - @@ -15764,8 +15932,8 @@ + - @@ -15787,9 +15955,9 @@ + - @@ -15824,9 +15992,9 @@ + - @@ -15841,9 +16009,9 @@ + - @@ -16220,6 +16388,7 @@ + @@ -16253,6 +16422,9 @@ + + + @@ -16266,6 +16438,17 @@ + + + + + + + + + + + @@ -16745,7 +16928,7 @@ - + @@ -16763,7 +16946,7 @@ - + @@ -16875,6 +17058,7 @@ + @@ -16911,6 +17095,13 @@ + + + + + + + @@ -18163,6 +18354,7 @@ + @@ -19288,9 +19480,9 @@ + - @@ -19310,9 +19502,9 @@ + - @@ -19923,9 +20115,9 @@ + - @@ -19958,7 +20150,7 @@ - + @@ -19975,9 +20167,9 @@ + - @@ -19989,9 +20181,9 @@ + - @@ -20003,9 +20195,9 @@ + - @@ -20029,9 +20221,9 @@ + - @@ -20073,9 +20265,9 @@ + - @@ -20390,6 +20582,7 @@ + @@ -20400,7 +20593,8 @@ - + + @@ -20435,6 +20629,9 @@ + + + @@ -22285,6 +22482,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_PgSql_EntityOrmMappings.generated.hbm.approved.xml b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_PgSql_EntityOrmMappings.generated.hbm.approved.xml index 4e0c437b72..583326fa38 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_PgSql_EntityOrmMappings.generated.hbm.approved.xml +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_PgSql_EntityOrmMappings.generated.hbm.approved.xml @@ -1681,6 +1681,7 @@ + @@ -2541,6 +2542,7 @@ + @@ -2551,6 +2553,9 @@ + + + @@ -2626,6 +2631,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2787,6 +2818,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5335,6 +5442,20 @@ + + + + + + + + + + + + + + @@ -5545,6 +5666,20 @@ + + + + + + + + + + + + + + @@ -7981,8 +8116,8 @@ + - @@ -8004,8 +8139,8 @@ + - @@ -8038,7 +8173,7 @@ - + @@ -8060,8 +8195,8 @@ + - @@ -8085,8 +8220,8 @@ + - @@ -8157,9 +8292,9 @@ + - @@ -8170,7 +8305,7 @@ - + @@ -8229,7 +8364,7 @@ - + @@ -8245,7 +8380,7 @@ - + @@ -8265,6 +8400,7 @@ + @@ -11662,9 +11798,9 @@ + - @@ -11680,9 +11816,9 @@ + - @@ -11709,7 +11845,7 @@ - + @@ -11724,9 +11860,9 @@ + - @@ -11736,9 +11872,9 @@ + - @@ -11748,9 +11884,9 @@ + - @@ -11774,9 +11910,9 @@ + - @@ -11791,8 +11927,8 @@ + - @@ -11816,9 +11952,9 @@ + - @@ -11850,9 +11986,9 @@ + - @@ -11865,9 +12001,9 @@ + - @@ -12150,6 +12286,7 @@ + @@ -12561,7 +12698,7 @@ - + @@ -12577,7 +12714,7 @@ - + @@ -12700,6 +12837,7 @@ + @@ -13821,6 +13959,7 @@ + @@ -14735,9 +14874,9 @@ + - @@ -14755,9 +14894,9 @@ + - @@ -15348,9 +15487,9 @@ + - @@ -15368,9 +15507,9 @@ + - @@ -15396,7 +15535,7 @@ - + @@ -15415,9 +15554,9 @@ + - @@ -15429,9 +15568,9 @@ + - @@ -15455,9 +15594,9 @@ + - @@ -15499,9 +15638,9 @@ + - @@ -15838,6 +15977,7 @@ + @@ -15848,7 +15988,8 @@ - + + @@ -17638,6 +17779,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_PgSql_EntityOrmMappingsForQueries.generated.hbm.approved.xml b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_PgSql_EntityOrmMappingsForQueries.generated.hbm.approved.xml index 63b01e8d43..6afa26bf2b 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_PgSql_EntityOrmMappingsForQueries.generated.hbm.approved.xml +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_EntityOrmMappings_PgSql_EntityOrmMappingsForQueries.generated.hbm.approved.xml @@ -1764,6 +1764,7 @@ + @@ -2724,6 +2725,7 @@ + @@ -2751,6 +2753,9 @@ + + + @@ -2827,6 +2832,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3004,6 +3035,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8022,6 +8129,27 @@ + + + + + + + + + + + + + + + + + + + + + @@ -8435,6 +8563,27 @@ + + + + + + + + + + + + + + + + + + + + + @@ -11568,8 +11717,8 @@ + - @@ -11609,7 +11758,7 @@ - + @@ -11632,8 +11781,8 @@ + - @@ -11649,8 +11798,8 @@ + - @@ -11674,8 +11823,8 @@ + - @@ -11738,9 +11887,9 @@ + - @@ -11756,7 +11905,7 @@ - + @@ -11822,7 +11971,7 @@ - + @@ -11844,6 +11993,7 @@ + @@ -11863,7 +12013,7 @@ - + @@ -11873,7 +12023,7 @@ - + @@ -11883,7 +12033,7 @@ - + @@ -11893,7 +12043,7 @@ - + @@ -11903,7 +12053,7 @@ - + @@ -14894,6 +15044,15 @@ + + + + + + + + + @@ -14975,6 +15134,15 @@ + + + + + + + + + @@ -15637,9 +15805,9 @@ + - @@ -15670,7 +15838,7 @@ - + @@ -15683,9 +15851,9 @@ + - @@ -15695,9 +15863,9 @@ + - @@ -15707,9 +15875,9 @@ + - @@ -15719,9 +15887,9 @@ + - @@ -15745,9 +15913,9 @@ + - @@ -15764,8 +15932,8 @@ + - @@ -15787,9 +15955,9 @@ + - @@ -15824,9 +15992,9 @@ + - @@ -15841,9 +16009,9 @@ + - @@ -16220,6 +16388,7 @@ + @@ -16253,6 +16422,9 @@ + + + @@ -16266,6 +16438,17 @@ + + + + + + + + + + + @@ -16745,7 +16928,7 @@ - + @@ -16763,7 +16946,7 @@ - + @@ -16875,6 +17058,7 @@ + @@ -16911,6 +17095,13 @@ + + + + + + + @@ -18163,6 +18354,7 @@ + @@ -19288,9 +19480,9 @@ + - @@ -19310,9 +19502,9 @@ + - @@ -19923,9 +20115,9 @@ + - @@ -19958,7 +20150,7 @@ - + @@ -19975,9 +20167,9 @@ + - @@ -19989,9 +20181,9 @@ + - @@ -20003,9 +20195,9 @@ + - @@ -20029,9 +20221,9 @@ + - @@ -20073,9 +20265,9 @@ + - @@ -20390,6 +20582,7 @@ + @@ -20400,7 +20593,8 @@ - + + @@ -20435,6 +20629,9 @@ + + + @@ -22285,6 +22482,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_ExceptionHandling_DatabaseMetadata.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_ExceptionHandling_DatabaseMetadata.generated.approved.cs index 78cf821ff5..376e960910 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_ExceptionHandling_DatabaseMetadata.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_ExceptionHandling_DatabaseMetadata.generated.approved.cs @@ -289,6 +289,7 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_CourseTranscript_EducationOrganization", new IndexDetails { IndexName = "FK_CourseTranscript_EducationOrganization", TableName = "CourseTranscript", ColumnNames = new List { "ExternalEducationOrganizationId" } } }, { "FK_CourseTranscript_GradeLevelDescriptor", new IndexDetails { IndexName = "FK_CourseTranscript_GradeLevelDescriptor", TableName = "CourseTranscript", ColumnNames = new List { "WhenTakenGradeLevelDescriptorId" } } }, { "FK_CourseTranscript_MethodCreditEarnedDescriptor", new IndexDetails { IndexName = "FK_CourseTranscript_MethodCreditEarnedDescriptor", TableName = "CourseTranscript", ColumnNames = new List { "MethodCreditEarnedDescriptorId" } } }, + { "FK_CourseTranscript_Staff", new IndexDetails { IndexName = "FK_CourseTranscript_Staff", TableName = "CourseTranscript", ColumnNames = new List { "ResponsibleTeacherStaffUSI" } } }, { "FK_CourseTranscript_StudentAcademicRecord", new IndexDetails { IndexName = "FK_CourseTranscript_StudentAcademicRecord", TableName = "CourseTranscript", ColumnNames = new List { "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId" } } }, { "UX_CourseTranscript_Id", new IndexDetails { IndexName = "UX_CourseTranscript_Id", TableName = "CourseTranscript", ColumnNames = new List { "Id" } } }, { "CourseTranscriptAcademicSubject_PK", new IndexDetails { IndexName = "CourseTranscriptAcademicSubject_PK", TableName = "CourseTranscriptAcademicSubject", ColumnNames = new List { "CourseAttemptResultDescriptorId", "CourseCode", "CourseEducationOrganizationId", "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId", "AcademicSubjectDescriptorId" } } }, @@ -306,6 +307,12 @@ public IndexDetails GetIndexDetails(string indexName) { "CourseTranscriptPartialCourseTranscriptAwards_PK", new IndexDetails { IndexName = "CourseTranscriptPartialCourseTranscriptAwards_PK", TableName = "CourseTranscriptPartialCourseTranscriptAwards", ColumnNames = new List { "CourseAttemptResultDescriptorId", "CourseCode", "CourseEducationOrganizationId", "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId", "AwardDate" } } }, { "FK_CourseTranscriptPartialCourseTranscriptAwards_CourseTranscript", new IndexDetails { IndexName = "FK_CourseTranscriptPartialCourseTranscriptAwards_CourseTranscript", TableName = "CourseTranscriptPartialCourseTranscriptAwards", ColumnNames = new List { "CourseAttemptResultDescriptorId", "CourseCode", "CourseEducationOrganizationId", "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId" } } }, { "FK_CourseTranscriptPartialCourseTranscriptAwards_MethodCreditEarnedDescriptor", new IndexDetails { IndexName = "FK_CourseTranscriptPartialCourseTranscriptAwards_MethodCreditEarnedDescriptor", TableName = "CourseTranscriptPartialCourseTranscriptAwards", ColumnNames = new List { "MethodCreditEarnedDescriptorId" } } }, + { "CourseTranscriptProgram_PK", new IndexDetails { IndexName = "CourseTranscriptProgram_PK", TableName = "CourseTranscriptProgram", ColumnNames = new List { "CourseAttemptResultDescriptorId", "CourseCode", "CourseEducationOrganizationId", "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId", "ProgramName", "ProgramTypeDescriptorId" } } }, + { "FK_CourseTranscriptProgram_CourseTranscript", new IndexDetails { IndexName = "FK_CourseTranscriptProgram_CourseTranscript", TableName = "CourseTranscriptProgram", ColumnNames = new List { "CourseAttemptResultDescriptorId", "CourseCode", "CourseEducationOrganizationId", "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId" } } }, + { "FK_CourseTranscriptProgram_Program", new IndexDetails { IndexName = "FK_CourseTranscriptProgram_Program", TableName = "CourseTranscriptProgram", ColumnNames = new List { "EducationOrganizationId", "ProgramName", "ProgramTypeDescriptorId" } } }, + { "CourseTranscriptSection_PK", new IndexDetails { IndexName = "CourseTranscriptSection_PK", TableName = "CourseTranscriptSection", ColumnNames = new List { "CourseAttemptResultDescriptorId", "CourseCode", "CourseEducationOrganizationId", "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId", "LocalCourseCode", "SchoolId", "SectionIdentifier", "SessionName" } } }, + { "FK_CourseTranscriptSection_CourseTranscript", new IndexDetails { IndexName = "FK_CourseTranscriptSection_CourseTranscript", TableName = "CourseTranscriptSection", ColumnNames = new List { "CourseAttemptResultDescriptorId", "CourseCode", "CourseEducationOrganizationId", "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId" } } }, + { "FK_CourseTranscriptSection_Section", new IndexDetails { IndexName = "FK_CourseTranscriptSection_Section", TableName = "CourseTranscriptSection", ColumnNames = new List { "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, { "Credential_PK", new IndexDetails { IndexName = "Credential_PK", TableName = "Credential", ColumnNames = new List { "CredentialIdentifier", "StateOfIssueStateAbbreviationDescriptorId" } } }, { "FK_Credential_CredentialFieldDescriptor", new IndexDetails { IndexName = "FK_Credential_CredentialFieldDescriptor", TableName = "Credential", ColumnNames = new List { "CredentialFieldDescriptorId" } } }, { "FK_Credential_CredentialTypeDescriptor", new IndexDetails { IndexName = "FK_Credential_CredentialTypeDescriptor", TableName = "Credential", ColumnNames = new List { "CredentialTypeDescriptorId" } } }, @@ -488,13 +495,13 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_GeneralStudentProgramAssociationProgramParticipationStatus_ParticipationStatusDescriptor", new IndexDetails { IndexName = "FK_GeneralStudentProgramAssociationProgramParticipationStatus_ParticipationStatusDescriptor", TableName = "GeneralStudentProgramAssociationProgramParticipationStatus", ColumnNames = new List { "ParticipationStatusDescriptorId" } } }, { "GeneralStudentProgramAssociationProgramParticipationStatus_PK", new IndexDetails { IndexName = "GeneralStudentProgramAssociationProgramParticipationStatus_PK", TableName = "GeneralStudentProgramAssociationProgramParticipationStatus", ColumnNames = new List { "BeginDate", "EducationOrganizationId", "ProgramEducationOrganizationId", "ProgramName", "ProgramTypeDescriptorId", "StudentUSI", "ParticipationStatusDescriptorId", "StatusBeginDate" } } }, { "FK_Grade_GradeTypeDescriptor", new IndexDetails { IndexName = "FK_Grade_GradeTypeDescriptor", TableName = "Grade", ColumnNames = new List { "GradeTypeDescriptorId" } } }, - { "FK_Grade_GradingPeriod", new IndexDetails { IndexName = "FK_Grade_GradingPeriod", TableName = "Grade", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodSequence", "SchoolId", "GradingPeriodSchoolYear" } } }, + { "FK_Grade_GradingPeriod", new IndexDetails { IndexName = "FK_Grade_GradingPeriod", TableName = "Grade", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "SchoolId", "GradingPeriodSchoolYear" } } }, { "FK_Grade_PerformanceBaseConversionDescriptor", new IndexDetails { IndexName = "FK_Grade_PerformanceBaseConversionDescriptor", TableName = "Grade", ColumnNames = new List { "PerformanceBaseConversionDescriptorId" } } }, { "FK_Grade_StudentSectionAssociation", new IndexDetails { IndexName = "FK_Grade_StudentSectionAssociation", TableName = "Grade", ColumnNames = new List { "BeginDate", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, - { "Grade_PK", new IndexDetails { IndexName = "Grade_PK", TableName = "Grade", ColumnNames = new List { "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, + { "Grade_PK", new IndexDetails { IndexName = "Grade_PK", TableName = "Grade", ColumnNames = new List { "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, { "UX_Grade_Id", new IndexDetails { IndexName = "UX_Grade_Id", TableName = "Grade", ColumnNames = new List { "Id" } } }, { "FK_GradebookEntry_GradebookEntryTypeDescriptor", new IndexDetails { IndexName = "FK_GradebookEntry_GradebookEntryTypeDescriptor", TableName = "GradebookEntry", ColumnNames = new List { "GradebookEntryTypeDescriptorId" } } }, - { "FK_GradebookEntry_GradingPeriod", new IndexDetails { IndexName = "FK_GradebookEntry_GradingPeriod", TableName = "GradebookEntry", ColumnNames = new List { "GradingPeriodDescriptorId", "PeriodSequence", "SchoolId", "SchoolYear" } } }, + { "FK_GradebookEntry_GradingPeriod", new IndexDetails { IndexName = "FK_GradebookEntry_GradingPeriod", TableName = "GradebookEntry", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "SchoolId", "SchoolYear" } } }, { "FK_GradebookEntry_Section", new IndexDetails { IndexName = "FK_GradebookEntry_Section", TableName = "GradebookEntry", ColumnNames = new List { "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, { "GradebookEntry_PK", new IndexDetails { IndexName = "GradebookEntry_PK", TableName = "GradebookEntry", ColumnNames = new List { "GradebookEntryIdentifier", "Namespace" } } }, { "UX_GradebookEntry_Id", new IndexDetails { IndexName = "UX_GradebookEntry_Id", TableName = "GradebookEntry", ColumnNames = new List { "Id" } } }, @@ -502,17 +509,17 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_GradebookEntryLearningStandard_LearningStandard", new IndexDetails { IndexName = "FK_GradebookEntryLearningStandard_LearningStandard", TableName = "GradebookEntryLearningStandard", ColumnNames = new List { "LearningStandardId" } } }, { "GradebookEntryLearningStandard_PK", new IndexDetails { IndexName = "GradebookEntryLearningStandard_PK", TableName = "GradebookEntryLearningStandard", ColumnNames = new List { "GradebookEntryIdentifier", "Namespace", "LearningStandardId" } } }, { "GradebookEntryTypeDescriptor_PK", new IndexDetails { IndexName = "GradebookEntryTypeDescriptor_PK", TableName = "GradebookEntryTypeDescriptor", ColumnNames = new List { "GradebookEntryTypeDescriptorId" } } }, - { "FK_GradeLearningStandardGrade_Grade", new IndexDetails { IndexName = "FK_GradeLearningStandardGrade_Grade", TableName = "GradeLearningStandardGrade", ColumnNames = new List { "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, + { "FK_GradeLearningStandardGrade_Grade", new IndexDetails { IndexName = "FK_GradeLearningStandardGrade_Grade", TableName = "GradeLearningStandardGrade", ColumnNames = new List { "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, { "FK_GradeLearningStandardGrade_LearningStandard", new IndexDetails { IndexName = "FK_GradeLearningStandardGrade_LearningStandard", TableName = "GradeLearningStandardGrade", ColumnNames = new List { "LearningStandardId" } } }, { "FK_GradeLearningStandardGrade_PerformanceBaseConversionDescriptor", new IndexDetails { IndexName = "FK_GradeLearningStandardGrade_PerformanceBaseConversionDescriptor", TableName = "GradeLearningStandardGrade", ColumnNames = new List { "PerformanceBaseConversionDescriptorId" } } }, - { "GradeLearningStandardGrade_PK", new IndexDetails { IndexName = "GradeLearningStandardGrade_PK", TableName = "GradeLearningStandardGrade", ColumnNames = new List { "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI", "LearningStandardId" } } }, + { "GradeLearningStandardGrade_PK", new IndexDetails { IndexName = "GradeLearningStandardGrade_PK", TableName = "GradeLearningStandardGrade", ColumnNames = new List { "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI", "LearningStandardId" } } }, { "GradeLevelDescriptor_PK", new IndexDetails { IndexName = "GradeLevelDescriptor_PK", TableName = "GradeLevelDescriptor", ColumnNames = new List { "GradeLevelDescriptorId" } } }, { "GradePointAverageTypeDescriptor_PK", new IndexDetails { IndexName = "GradePointAverageTypeDescriptor_PK", TableName = "GradePointAverageTypeDescriptor", ColumnNames = new List { "GradePointAverageTypeDescriptorId" } } }, { "GradeTypeDescriptor_PK", new IndexDetails { IndexName = "GradeTypeDescriptor_PK", TableName = "GradeTypeDescriptor", ColumnNames = new List { "GradeTypeDescriptorId" } } }, { "FK_GradingPeriod_GradingPeriodDescriptor", new IndexDetails { IndexName = "FK_GradingPeriod_GradingPeriodDescriptor", TableName = "GradingPeriod", ColumnNames = new List { "GradingPeriodDescriptorId" } } }, { "FK_GradingPeriod_School", new IndexDetails { IndexName = "FK_GradingPeriod_School", TableName = "GradingPeriod", ColumnNames = new List { "SchoolId" } } }, { "FK_GradingPeriod_SchoolYearType", new IndexDetails { IndexName = "FK_GradingPeriod_SchoolYearType", TableName = "GradingPeriod", ColumnNames = new List { "SchoolYear" } } }, - { "GradingPeriod_PK", new IndexDetails { IndexName = "GradingPeriod_PK", TableName = "GradingPeriod", ColumnNames = new List { "GradingPeriodDescriptorId", "PeriodSequence", "SchoolId", "SchoolYear" } } }, + { "GradingPeriod_PK", new IndexDetails { IndexName = "GradingPeriod_PK", TableName = "GradingPeriod", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "SchoolId", "SchoolYear" } } }, { "UX_GradingPeriod_Id", new IndexDetails { IndexName = "UX_GradingPeriod_Id", TableName = "GradingPeriod", ColumnNames = new List { "Id" } } }, { "GradingPeriodDescriptor_PK", new IndexDetails { IndexName = "GradingPeriodDescriptor_PK", TableName = "GradingPeriodDescriptor", ColumnNames = new List { "GradingPeriodDescriptorId" } } }, { "FK_GraduationPlan_CreditTypeDescriptor", new IndexDetails { IndexName = "FK_GraduationPlan_CreditTypeDescriptor", TableName = "GraduationPlan", ColumnNames = new List { "TotalRequiredCreditTypeDescriptorId" } } }, @@ -881,19 +888,19 @@ public IndexDetails GetIndexDetails(string indexName) { "RelationDescriptor_PK", new IndexDetails { IndexName = "RelationDescriptor_PK", TableName = "RelationDescriptor", ColumnNames = new List { "RelationDescriptorId" } } }, { "RepeatIdentifierDescriptor_PK", new IndexDetails { IndexName = "RepeatIdentifierDescriptor_PK", TableName = "RepeatIdentifierDescriptor", ColumnNames = new List { "RepeatIdentifierDescriptorId" } } }, { "FK_ReportCard_EducationOrganization", new IndexDetails { IndexName = "FK_ReportCard_EducationOrganization", TableName = "ReportCard", ColumnNames = new List { "EducationOrganizationId" } } }, - { "FK_ReportCard_GradingPeriod", new IndexDetails { IndexName = "FK_ReportCard_GradingPeriod", TableName = "ReportCard", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear" } } }, + { "FK_ReportCard_GradingPeriod", new IndexDetails { IndexName = "FK_ReportCard_GradingPeriod", TableName = "ReportCard", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear" } } }, { "FK_ReportCard_Student", new IndexDetails { IndexName = "FK_ReportCard_Student", TableName = "ReportCard", ColumnNames = new List { "StudentUSI" } } }, - { "ReportCard_PK", new IndexDetails { IndexName = "ReportCard_PK", TableName = "ReportCard", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, + { "ReportCard_PK", new IndexDetails { IndexName = "ReportCard_PK", TableName = "ReportCard", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, { "UX_ReportCard_Id", new IndexDetails { IndexName = "UX_ReportCard_Id", TableName = "ReportCard", ColumnNames = new List { "Id" } } }, - { "FK_ReportCardGrade_Grade", new IndexDetails { IndexName = "FK_ReportCardGrade_Grade", TableName = "ReportCardGrade", ColumnNames = new List { "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, - { "FK_ReportCardGrade_ReportCard", new IndexDetails { IndexName = "FK_ReportCardGrade_ReportCard", TableName = "ReportCardGrade", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, - { "ReportCardGrade_PK", new IndexDetails { IndexName = "ReportCardGrade_PK", TableName = "ReportCardGrade", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI", "BeginDate", "GradeTypeDescriptorId", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, + { "FK_ReportCardGrade_Grade", new IndexDetails { IndexName = "FK_ReportCardGrade_Grade", TableName = "ReportCardGrade", ColumnNames = new List { "BeginDate", "GradeTypeDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolYear", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, + { "FK_ReportCardGrade_ReportCard", new IndexDetails { IndexName = "FK_ReportCardGrade_ReportCard", TableName = "ReportCardGrade", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, + { "ReportCardGrade_PK", new IndexDetails { IndexName = "ReportCardGrade_PK", TableName = "ReportCardGrade", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI", "BeginDate", "GradeTypeDescriptorId", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, { "FK_ReportCardGradePointAverage_GradePointAverageTypeDescriptor", new IndexDetails { IndexName = "FK_ReportCardGradePointAverage_GradePointAverageTypeDescriptor", TableName = "ReportCardGradePointAverage", ColumnNames = new List { "GradePointAverageTypeDescriptorId" } } }, - { "FK_ReportCardGradePointAverage_ReportCard", new IndexDetails { IndexName = "FK_ReportCardGradePointAverage_ReportCard", TableName = "ReportCardGradePointAverage", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, - { "ReportCardGradePointAverage_PK", new IndexDetails { IndexName = "ReportCardGradePointAverage_PK", TableName = "ReportCardGradePointAverage", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI", "GradePointAverageTypeDescriptorId" } } }, - { "FK_ReportCardStudentCompetencyObjective_ReportCard", new IndexDetails { IndexName = "FK_ReportCardStudentCompetencyObjective_ReportCard", TableName = "ReportCardStudentCompetencyObjective", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, - { "FK_ReportCardStudentCompetencyObjective_StudentCompetencyObjective", new IndexDetails { IndexName = "FK_ReportCardStudentCompetencyObjective_StudentCompetencyObjective", TableName = "ReportCardStudentCompetencyObjective", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI" } } }, - { "ReportCardStudentCompetencyObjective_PK", new IndexDetails { IndexName = "ReportCardStudentCompetencyObjective_PK", TableName = "ReportCardStudentCompetencyObjective", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId" } } }, + { "FK_ReportCardGradePointAverage_ReportCard", new IndexDetails { IndexName = "FK_ReportCardGradePointAverage_ReportCard", TableName = "ReportCardGradePointAverage", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, + { "ReportCardGradePointAverage_PK", new IndexDetails { IndexName = "ReportCardGradePointAverage_PK", TableName = "ReportCardGradePointAverage", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI", "GradePointAverageTypeDescriptorId" } } }, + { "FK_ReportCardStudentCompetencyObjective_ReportCard", new IndexDetails { IndexName = "FK_ReportCardStudentCompetencyObjective_ReportCard", TableName = "ReportCardStudentCompetencyObjective", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, + { "FK_ReportCardStudentCompetencyObjective_StudentCompetencyObjective", new IndexDetails { IndexName = "FK_ReportCardStudentCompetencyObjective_StudentCompetencyObjective", TableName = "ReportCardStudentCompetencyObjective", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI" } } }, + { "ReportCardStudentCompetencyObjective_PK", new IndexDetails { IndexName = "ReportCardStudentCompetencyObjective_PK", TableName = "ReportCardStudentCompetencyObjective", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId" } } }, { "ReporterDescriptionDescriptor_PK", new IndexDetails { IndexName = "ReporterDescriptionDescriptor_PK", TableName = "ReporterDescriptionDescriptor", ColumnNames = new List { "ReporterDescriptionDescriptorId" } } }, { "ReportingTagDescriptor_PK", new IndexDetails { IndexName = "ReportingTagDescriptor_PK", TableName = "ReportingTagDescriptor", ColumnNames = new List { "ReportingTagDescriptorId" } } }, { "ResidencyStatusDescriptor_PK", new IndexDetails { IndexName = "ResidencyStatusDescriptor_PK", TableName = "ResidencyStatusDescriptor", ColumnNames = new List { "ResidencyStatusDescriptorId" } } }, @@ -944,6 +951,7 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_Section_MediumOfInstructionDescriptor", new IndexDetails { IndexName = "FK_Section_MediumOfInstructionDescriptor", TableName = "Section", ColumnNames = new List { "MediumOfInstructionDescriptorId" } } }, { "FK_Section_PopulationServedDescriptor", new IndexDetails { IndexName = "FK_Section_PopulationServedDescriptor", TableName = "Section", ColumnNames = new List { "PopulationServedDescriptorId" } } }, { "FK_Section_School", new IndexDetails { IndexName = "FK_Section_School", TableName = "Section", ColumnNames = new List { "LocationSchoolId" } } }, + { "FK_Section_SectionTypeDescriptor", new IndexDetails { IndexName = "FK_Section_SectionTypeDescriptor", TableName = "Section", ColumnNames = new List { "SectionTypeDescriptorId" } } }, { "Section_PK", new IndexDetails { IndexName = "Section_PK", TableName = "Section", ColumnNames = new List { "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, { "UX_Section_Id", new IndexDetails { IndexName = "UX_Section_Id", TableName = "Section", ColumnNames = new List { "Id" } } }, { "FK_SectionAttendanceTakenEvent_CalendarDate", new IndexDetails { IndexName = "FK_SectionAttendanceTakenEvent_CalendarDate", TableName = "SectionAttendanceTakenEvent", ColumnNames = new List { "CalendarCode", "Date", "SchoolId", "SchoolYear" } } }, @@ -967,6 +975,7 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_SectionProgram_Program", new IndexDetails { IndexName = "FK_SectionProgram_Program", TableName = "SectionProgram", ColumnNames = new List { "EducationOrganizationId", "ProgramName", "ProgramTypeDescriptorId" } } }, { "FK_SectionProgram_Section", new IndexDetails { IndexName = "FK_SectionProgram_Section", TableName = "SectionProgram", ColumnNames = new List { "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, { "SectionProgram_PK", new IndexDetails { IndexName = "SectionProgram_PK", TableName = "SectionProgram", ColumnNames = new List { "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "EducationOrganizationId", "ProgramName", "ProgramTypeDescriptorId" } } }, + { "SectionTypeDescriptor_PK", new IndexDetails { IndexName = "SectionTypeDescriptor_PK", TableName = "SectionTypeDescriptor", ColumnNames = new List { "SectionTypeDescriptorId" } } }, { "SeparationDescriptor_PK", new IndexDetails { IndexName = "SeparationDescriptor_PK", TableName = "SeparationDescriptor", ColumnNames = new List { "SeparationDescriptorId" } } }, { "SeparationReasonDescriptor_PK", new IndexDetails { IndexName = "SeparationReasonDescriptor_PK", TableName = "SeparationReasonDescriptor", ColumnNames = new List { "SeparationReasonDescriptorId" } } }, { "ServiceDescriptor_PK", new IndexDetails { IndexName = "ServiceDescriptor_PK", TableName = "ServiceDescriptor", ColumnNames = new List { "ServiceDescriptorId" } } }, @@ -978,9 +987,9 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_SessionAcademicWeek_AcademicWeek", new IndexDetails { IndexName = "FK_SessionAcademicWeek_AcademicWeek", TableName = "SessionAcademicWeek", ColumnNames = new List { "SchoolId", "WeekIdentifier" } } }, { "FK_SessionAcademicWeek_Session", new IndexDetails { IndexName = "FK_SessionAcademicWeek_Session", TableName = "SessionAcademicWeek", ColumnNames = new List { "SchoolId", "SchoolYear", "SessionName" } } }, { "SessionAcademicWeek_PK", new IndexDetails { IndexName = "SessionAcademicWeek_PK", TableName = "SessionAcademicWeek", ColumnNames = new List { "SchoolId", "SchoolYear", "SessionName", "WeekIdentifier" } } }, - { "FK_SessionGradingPeriod_GradingPeriod", new IndexDetails { IndexName = "FK_SessionGradingPeriod_GradingPeriod", TableName = "SessionGradingPeriod", ColumnNames = new List { "GradingPeriodDescriptorId", "PeriodSequence", "SchoolId", "SchoolYear" } } }, + { "FK_SessionGradingPeriod_GradingPeriod", new IndexDetails { IndexName = "FK_SessionGradingPeriod_GradingPeriod", TableName = "SessionGradingPeriod", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "SchoolId", "SchoolYear" } } }, { "FK_SessionGradingPeriod_Session", new IndexDetails { IndexName = "FK_SessionGradingPeriod_Session", TableName = "SessionGradingPeriod", ColumnNames = new List { "SchoolId", "SchoolYear", "SessionName" } } }, - { "SessionGradingPeriod_PK", new IndexDetails { IndexName = "SessionGradingPeriod_PK", TableName = "SessionGradingPeriod", ColumnNames = new List { "SchoolId", "SchoolYear", "SessionName", "GradingPeriodDescriptorId", "PeriodSequence" } } }, + { "SessionGradingPeriod_PK", new IndexDetails { IndexName = "SessionGradingPeriod_PK", TableName = "SessionGradingPeriod", ColumnNames = new List { "SchoolId", "SchoolYear", "SessionName", "GradingPeriodDescriptorId", "GradingPeriodName" } } }, { "SexDescriptor_PK", new IndexDetails { IndexName = "SexDescriptor_PK", TableName = "SexDescriptor", ColumnNames = new List { "SexDescriptorId" } } }, { "SourceDimension_PK", new IndexDetails { IndexName = "SourceDimension_PK", TableName = "SourceDimension", ColumnNames = new List { "Code", "FiscalYear" } } }, { "UX_SourceDimension_Id", new IndexDetails { IndexName = "UX_SourceDimension_Id", TableName = "SourceDimension", ColumnNames = new List { "Id" } } }, @@ -1170,9 +1179,9 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_StudentAcademicRecordRecognition_RecognitionTypeDescriptor", new IndexDetails { IndexName = "FK_StudentAcademicRecordRecognition_RecognitionTypeDescriptor", TableName = "StudentAcademicRecordRecognition", ColumnNames = new List { "RecognitionTypeDescriptorId" } } }, { "FK_StudentAcademicRecordRecognition_StudentAcademicRecord", new IndexDetails { IndexName = "FK_StudentAcademicRecordRecognition_StudentAcademicRecord", TableName = "StudentAcademicRecordRecognition", ColumnNames = new List { "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId" } } }, { "StudentAcademicRecordRecognition_PK", new IndexDetails { IndexName = "StudentAcademicRecordRecognition_PK", TableName = "StudentAcademicRecordRecognition", ColumnNames = new List { "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId", "RecognitionTypeDescriptorId" } } }, - { "FK_StudentAcademicRecordReportCard_ReportCard", new IndexDetails { IndexName = "FK_StudentAcademicRecordReportCard_ReportCard", TableName = "StudentAcademicRecordReportCard", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, + { "FK_StudentAcademicRecordReportCard_ReportCard", new IndexDetails { IndexName = "FK_StudentAcademicRecordReportCard_ReportCard", TableName = "StudentAcademicRecordReportCard", ColumnNames = new List { "EducationOrganizationId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "StudentUSI" } } }, { "FK_StudentAcademicRecordReportCard_StudentAcademicRecord", new IndexDetails { IndexName = "FK_StudentAcademicRecordReportCard_StudentAcademicRecord", TableName = "StudentAcademicRecordReportCard", ColumnNames = new List { "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId" } } }, - { "StudentAcademicRecordReportCard_PK", new IndexDetails { IndexName = "StudentAcademicRecordReportCard_PK", TableName = "StudentAcademicRecordReportCard", ColumnNames = new List { "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear" } } }, + { "StudentAcademicRecordReportCard_PK", new IndexDetails { IndexName = "StudentAcademicRecordReportCard_PK", TableName = "StudentAcademicRecordReportCard", ColumnNames = new List { "EducationOrganizationId", "SchoolYear", "StudentUSI", "TermDescriptorId", "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear" } } }, { "FK_StudentAssessment_AdministrationEnvironmentDescriptor", new IndexDetails { IndexName = "FK_StudentAssessment_AdministrationEnvironmentDescriptor", TableName = "StudentAssessment", ColumnNames = new List { "AdministrationEnvironmentDescriptorId" } } }, { "FK_StudentAssessment_Assessment", new IndexDetails { IndexName = "FK_StudentAssessment_Assessment", TableName = "StudentAssessment", ColumnNames = new List { "AssessmentIdentifier", "Namespace" } } }, { "FK_StudentAssessment_EventCircumstanceDescriptor", new IndexDetails { IndexName = "FK_StudentAssessment_EventCircumstanceDescriptor", TableName = "StudentAssessment", ColumnNames = new List { "EventCircumstanceDescriptorId" } } }, @@ -1231,16 +1240,16 @@ public IndexDetails GetIndexDetails(string indexName) { "StudentCohortAssociationSection_PK", new IndexDetails { IndexName = "StudentCohortAssociationSection_PK", TableName = "StudentCohortAssociationSection", ColumnNames = new List { "BeginDate", "CohortIdentifier", "EducationOrganizationId", "StudentUSI", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, { "FK_StudentCompetencyObjective_CompetencyLevelDescriptor", new IndexDetails { IndexName = "FK_StudentCompetencyObjective_CompetencyLevelDescriptor", TableName = "StudentCompetencyObjective", ColumnNames = new List { "CompetencyLevelDescriptorId" } } }, { "FK_StudentCompetencyObjective_CompetencyObjective", new IndexDetails { IndexName = "FK_StudentCompetencyObjective_CompetencyObjective", TableName = "StudentCompetencyObjective", ColumnNames = new List { "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId" } } }, - { "FK_StudentCompetencyObjective_GradingPeriod", new IndexDetails { IndexName = "FK_StudentCompetencyObjective_GradingPeriod", TableName = "StudentCompetencyObjective", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear" } } }, + { "FK_StudentCompetencyObjective_GradingPeriod", new IndexDetails { IndexName = "FK_StudentCompetencyObjective_GradingPeriod", TableName = "StudentCompetencyObjective", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear" } } }, { "FK_StudentCompetencyObjective_Student", new IndexDetails { IndexName = "FK_StudentCompetencyObjective_Student", TableName = "StudentCompetencyObjective", ColumnNames = new List { "StudentUSI" } } }, - { "StudentCompetencyObjective_PK", new IndexDetails { IndexName = "StudentCompetencyObjective_PK", TableName = "StudentCompetencyObjective", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI" } } }, + { "StudentCompetencyObjective_PK", new IndexDetails { IndexName = "StudentCompetencyObjective_PK", TableName = "StudentCompetencyObjective", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI" } } }, { "UX_StudentCompetencyObjective_Id", new IndexDetails { IndexName = "UX_StudentCompetencyObjective_Id", TableName = "StudentCompetencyObjective", ColumnNames = new List { "Id" } } }, { "FK_StudentCompetencyObjectiveGeneralStudentProgramAssociation_GeneralStudentProgramAssociation", new IndexDetails { IndexName = "FK_StudentCompetencyObjectiveGeneralStudentProgramAssociation_GeneralStudentProgramAssociation", TableName = "StudentCompetencyObjectiveGeneralStudentProgramAssociation", ColumnNames = new List { "BeginDate", "EducationOrganizationId", "ProgramEducationOrganizationId", "ProgramName", "ProgramTypeDescriptorId", "StudentUSI" } } }, - { "FK_StudentCompetencyObjectiveGeneralStudentProgramAssociation_StudentCompetencyObjective", new IndexDetails { IndexName = "FK_StudentCompetencyObjectiveGeneralStudentProgramAssociation_StudentCompetencyObjective", TableName = "StudentCompetencyObjectiveGeneralStudentProgramAssociation", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI" } } }, - { "StudentCompetencyObjectiveGeneralStudentProgramAssociation_PK", new IndexDetails { IndexName = "StudentCompetencyObjectiveGeneralStudentProgramAssociation_PK", TableName = "StudentCompetencyObjectiveGeneralStudentProgramAssociation", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI", "BeginDate", "EducationOrganizationId", "ProgramEducationOrganizationId", "ProgramName", "ProgramTypeDescriptorId" } } }, - { "FK_StudentCompetencyObjectiveStudentSectionAssociation_StudentCompetencyObjective", new IndexDetails { IndexName = "FK_StudentCompetencyObjectiveStudentSectionAssociation_StudentCompetencyObjective", TableName = "StudentCompetencyObjectiveStudentSectionAssociation", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI" } } }, + { "FK_StudentCompetencyObjectiveGeneralStudentProgramAssociation_StudentCompetencyObjective", new IndexDetails { IndexName = "FK_StudentCompetencyObjectiveGeneralStudentProgramAssociation_StudentCompetencyObjective", TableName = "StudentCompetencyObjectiveGeneralStudentProgramAssociation", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI" } } }, + { "StudentCompetencyObjectiveGeneralStudentProgramAssociation_PK", new IndexDetails { IndexName = "StudentCompetencyObjectiveGeneralStudentProgramAssociation_PK", TableName = "StudentCompetencyObjectiveGeneralStudentProgramAssociation", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI", "BeginDate", "EducationOrganizationId", "ProgramEducationOrganizationId", "ProgramName", "ProgramTypeDescriptorId" } } }, + { "FK_StudentCompetencyObjectiveStudentSectionAssociation_StudentCompetencyObjective", new IndexDetails { IndexName = "FK_StudentCompetencyObjectiveStudentSectionAssociation_StudentCompetencyObjective", TableName = "StudentCompetencyObjectiveStudentSectionAssociation", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI" } } }, { "FK_StudentCompetencyObjectiveStudentSectionAssociation_StudentSectionAssociation", new IndexDetails { IndexName = "FK_StudentCompetencyObjectiveStudentSectionAssociation_StudentSectionAssociation", TableName = "StudentCompetencyObjectiveStudentSectionAssociation", ColumnNames = new List { "BeginDate", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, - { "StudentCompetencyObjectiveStudentSectionAssociation_PK", new IndexDetails { IndexName = "StudentCompetencyObjectiveStudentSectionAssociation_PK", TableName = "StudentCompetencyObjectiveStudentSectionAssociation", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodSequence", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI", "BeginDate", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, + { "StudentCompetencyObjectiveStudentSectionAssociation_PK", new IndexDetails { IndexName = "StudentCompetencyObjectiveStudentSectionAssociation_PK", TableName = "StudentCompetencyObjectiveStudentSectionAssociation", ColumnNames = new List { "GradingPeriodDescriptorId", "GradingPeriodName", "GradingPeriodSchoolId", "GradingPeriodSchoolYear", "ObjectiveEducationOrganizationId", "Objective", "ObjectiveGradeLevelDescriptorId", "StudentUSI", "BeginDate", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, { "FK_StudentContactAssociation_Contact", new IndexDetails { IndexName = "FK_StudentContactAssociation_Contact", TableName = "StudentContactAssociation", ColumnNames = new List { "ContactUSI" } } }, { "FK_StudentContactAssociation_RelationDescriptor", new IndexDetails { IndexName = "FK_StudentContactAssociation_RelationDescriptor", TableName = "StudentContactAssociation", ColumnNames = new List { "RelationDescriptorId" } } }, { "FK_StudentContactAssociation_Student", new IndexDetails { IndexName = "FK_StudentContactAssociation_Student", TableName = "StudentContactAssociation", ColumnNames = new List { "StudentUSI" } } }, @@ -1276,6 +1285,7 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_StudentEducationOrganizationAssociation_PrimaryLearningDeviceProviderDescriptor", new IndexDetails { IndexName = "FK_StudentEducationOrganizationAssociation_PrimaryLearningDeviceProviderDescriptor", TableName = "StudentEducationOrganizationAssociation", ColumnNames = new List { "PrimaryLearningDeviceProviderDescriptorId" } } }, { "FK_StudentEducationOrganizationAssociation_SexDescriptor", new IndexDetails { IndexName = "FK_StudentEducationOrganizationAssociation_SexDescriptor", TableName = "StudentEducationOrganizationAssociation", ColumnNames = new List { "SexDescriptorId" } } }, { "FK_StudentEducationOrganizationAssociation_Student", new IndexDetails { IndexName = "FK_StudentEducationOrganizationAssociation_Student", TableName = "StudentEducationOrganizationAssociation", ColumnNames = new List { "StudentUSI" } } }, + { "FK_StudentEducationOrganizationAssociation_SupporterMilitaryConnectionDescriptor", new IndexDetails { IndexName = "FK_StudentEducationOrganizationAssociation_SupporterMilitaryConnectionDescriptor", TableName = "StudentEducationOrganizationAssociation", ColumnNames = new List { "SupporterMilitaryConnectionDescriptorId" } } }, { "StudentEducationOrganizationAssociation_PK", new IndexDetails { IndexName = "StudentEducationOrganizationAssociation_PK", TableName = "StudentEducationOrganizationAssociation", ColumnNames = new List { "EducationOrganizationId", "StudentUSI" } } }, { "UX_StudentEducationOrganizationAssociation_Id", new IndexDetails { IndexName = "UX_StudentEducationOrganizationAssociation_Id", TableName = "StudentEducationOrganizationAssociation", ColumnNames = new List { "Id" } } }, { "FK_StudentEducationOrganizationAssociationAddress_AddressTypeDescriptor", new IndexDetails { IndexName = "FK_StudentEducationOrganizationAssociationAddress_AddressTypeDescriptor", TableName = "StudentEducationOrganizationAssociationAddress", ColumnNames = new List { "AddressTypeDescriptorId" } } }, @@ -1474,6 +1484,9 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_StudentSectionAssociation_Student", new IndexDetails { IndexName = "FK_StudentSectionAssociation_Student", TableName = "StudentSectionAssociation", ColumnNames = new List { "StudentUSI" } } }, { "StudentSectionAssociation_PK", new IndexDetails { IndexName = "StudentSectionAssociation_PK", TableName = "StudentSectionAssociation", ColumnNames = new List { "BeginDate", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, { "UX_StudentSectionAssociation_Id", new IndexDetails { IndexName = "UX_StudentSectionAssociation_Id", TableName = "StudentSectionAssociation", ColumnNames = new List { "Id" } } }, + { "FK_StudentSectionAssociationProgram_Program", new IndexDetails { IndexName = "FK_StudentSectionAssociationProgram_Program", TableName = "StudentSectionAssociationProgram", ColumnNames = new List { "EducationOrganizationId", "ProgramName", "ProgramTypeDescriptorId" } } }, + { "FK_StudentSectionAssociationProgram_StudentSectionAssociation", new IndexDetails { IndexName = "FK_StudentSectionAssociationProgram_StudentSectionAssociation", TableName = "StudentSectionAssociationProgram", ColumnNames = new List { "BeginDate", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI" } } }, + { "StudentSectionAssociationProgram_PK", new IndexDetails { IndexName = "StudentSectionAssociationProgram_PK", TableName = "StudentSectionAssociationProgram", ColumnNames = new List { "BeginDate", "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName", "StudentUSI", "EducationOrganizationId", "ProgramName", "ProgramTypeDescriptorId" } } }, { "FK_StudentSectionAttendanceEvent_AttendanceEventCategoryDescriptor", new IndexDetails { IndexName = "FK_StudentSectionAttendanceEvent_AttendanceEventCategoryDescriptor", TableName = "StudentSectionAttendanceEvent", ColumnNames = new List { "AttendanceEventCategoryDescriptorId" } } }, { "FK_StudentSectionAttendanceEvent_EducationalEnvironmentDescriptor", new IndexDetails { IndexName = "FK_StudentSectionAttendanceEvent_EducationalEnvironmentDescriptor", TableName = "StudentSectionAttendanceEvent", ColumnNames = new List { "EducationalEnvironmentDescriptorId" } } }, { "FK_StudentSectionAttendanceEvent_Section", new IndexDetails { IndexName = "FK_StudentSectionAttendanceEvent_Section", TableName = "StudentSectionAttendanceEvent", ColumnNames = new List { "LocalCourseCode", "SchoolId", "SchoolYear", "SectionIdentifier", "SessionName" } } }, @@ -1519,6 +1532,7 @@ public IndexDetails GetIndexDetails(string indexName) { "FK_StudentVisa_VisaDescriptor", new IndexDetails { IndexName = "FK_StudentVisa_VisaDescriptor", TableName = "StudentVisa", ColumnNames = new List { "VisaDescriptorId" } } }, { "StudentVisa_PK", new IndexDetails { IndexName = "StudentVisa_PK", TableName = "StudentVisa", ColumnNames = new List { "StudentUSI", "VisaDescriptorId" } } }, { "SubmissionStatusDescriptor_PK", new IndexDetails { IndexName = "SubmissionStatusDescriptor_PK", TableName = "SubmissionStatusDescriptor", ColumnNames = new List { "SubmissionStatusDescriptorId" } } }, + { "SupporterMilitaryConnectionDescriptor_PK", new IndexDetails { IndexName = "SupporterMilitaryConnectionDescriptor_PK", TableName = "SupporterMilitaryConnectionDescriptor", ColumnNames = new List { "SupporterMilitaryConnectionDescriptorId" } } }, { "FK_Survey_EducationOrganization", new IndexDetails { IndexName = "FK_Survey_EducationOrganization", TableName = "Survey", ColumnNames = new List { "EducationOrganizationId" } } }, { "FK_Survey_SchoolYearType", new IndexDetails { IndexName = "FK_Survey_SchoolYearType", TableName = "Survey", ColumnNames = new List { "SchoolYear" } } }, { "FK_Survey_Session", new IndexDetails { IndexName = "FK_Survey_Session", TableName = "Survey", ColumnNames = new List { "SchoolId", "SchoolYear", "SessionName" } } }, diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Entities_Entities.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Entities_Entities.generated.approved.cs index 709e03d4b5..1c70153d0e 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Entities_Entities.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Entities_Entities.generated.approved.cs @@ -18298,6 +18298,8 @@ public virtual string ContactUniqueId [RequiredWithNonDefault, StringLength(75, MinimumLength=1), NoDangerousText] public virtual string FirstName { get; set; } + [StringLength(60, MinimumLength=0), NoDangerousText] + public virtual string GenderIdentity { get; set; } [StringLength(10, MinimumLength=1), NoDangerousText] public virtual string GenerationCodeSuffix { get; set; } public virtual int? HighestCompletedLevelOfEducationDescriptorId @@ -26786,6 +26788,8 @@ public CourseTranscript() CourseTranscriptCreditCategories = new HashSet(); CourseTranscriptEarnedAdditionalCredits = new HashSet(); CourseTranscriptPartialCourseTranscriptAwards = new HashSet(); + CourseTranscriptPrograms = new HashSet(); + CourseTranscriptSections = new HashSet(); Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); } @@ -27092,6 +27096,58 @@ public virtual string MethodCreditEarnedDescriptor _methodCreditEarnedDescriptorId = default(int?); } } + public virtual int? ResponsibleTeacherStaffUSI + { + get + { + if (_responsibleTeacherStaffUSI == default(int?) && _responsibleTeacherStaffUniqueId != null) + { + if (GeneratedArtifactStaticDependencies.UsiLookupsByUniqueIdContextProvider.Get().UsiByUniqueIdByPersonType.TryGetValue("Staff", out var usiByUniqueId) + && usiByUniqueId.TryGetValue(_responsibleTeacherStaffUniqueId, out var usi)) + { + _responsibleTeacherStaffUSI = usi; + } + } + + return _responsibleTeacherStaffUSI; + } + set + { + _responsibleTeacherStaffUSI = value; + + if (value != null) + { + GeneratedArtifactStaticDependencies.UniqueIdLookupsByUsiContextProvider.Get().AddLookup("Staff", value.Value); + } + } + } + + private int? _responsibleTeacherStaffUSI; + private string _responsibleTeacherStaffUniqueId; + + public virtual string ResponsibleTeacherStaffUniqueId + { + get + { + if (_responsibleTeacherStaffUniqueId == null && _responsibleTeacherStaffUSI.HasValue) + { + if (GeneratedArtifactStaticDependencies.UniqueIdLookupsByUsiContextProvider.Get().UniqueIdByUsiByPersonType.TryGetValue("Staff", out var uniqueIdByUsi) + && uniqueIdByUsi.TryGetValue(_responsibleTeacherStaffUSI.Value, out var uniqueId)) + { + _responsibleTeacherStaffUniqueId = uniqueId; + } + } + + return _responsibleTeacherStaffUniqueId; + } + set + { + if (_responsibleTeacherStaffUniqueId != value) + _responsibleTeacherStaffUSI = default(int?); + + _responsibleTeacherStaffUniqueId = value; + } + } public virtual int? WhenTakenGradeLevelDescriptorId { get @@ -27212,6 +27268,26 @@ string Entities.Common.EdFi.ICourseTranscript.ExternalEducationOrganizationDiscr set { } } + public virtual NHibernate.StaffAggregate.EdFi.StaffReferenceData ResponsibleTeacherStaffReferenceData { get; set; } + + /// + /// Read-only property that allows the ResponsibleTeacherStaff discriminator value to be mapped to the resource reference. + /// + string Entities.Common.EdFi.ICourseTranscript.ResponsibleTeacherStaffDiscriminator + { + get { return ResponsibleTeacherStaffReferenceData?.Discriminator; } + set { } + } + + /// + /// Read-only property that allows the ResponsibleTeacherStaff resource identifier value to be mapped to the resource reference. + /// + Guid? Entities.Common.EdFi.ICourseTranscript.ResponsibleTeacherStaffResourceId + { + get { return ResponsibleTeacherStaffReferenceData?.Id; } + set { } + } + public virtual NHibernate.StudentAcademicRecordAggregate.EdFi.StudentAcademicRecordReferenceData StudentAcademicRecordReferenceData { get; set; } /// @@ -27477,6 +27553,102 @@ public virtual ICollection _courseTranscriptPrograms; + private ICollection _courseTranscriptProgramsCovariant; + [ValidateEnumerable] + public virtual ICollection CourseTranscriptPrograms + { + get + { + // ------------------------------------------------------------- + // On-demand deserialization logic to attach reverse reference of children + // due to ServiceStack's lack of [OnDeserialized] attribute support. + // Back-reference is required by NHibernate for persistence. + // ------------------------------------------------------------- + foreach (var item in _courseTranscriptPrograms) + if (item.CourseTranscript == null) + item.CourseTranscript = this; + // ------------------------------------------------------------- + + return _courseTranscriptPrograms; + } + set + { + _courseTranscriptPrograms = value; + _courseTranscriptProgramsCovariant = new CovariantCollectionAdapter(value); + } + } + + // Covariant version, visible only on the interface + ICollection Entities.Common.EdFi.ICourseTranscript.CourseTranscriptPrograms + { + get + { + // ------------------------------------------------------------- + // Back-reference is required by NHibernate for persistence. + // ------------------------------------------------------------- + foreach (var item in _courseTranscriptPrograms) + if (item.CourseTranscript == null) + item.CourseTranscript = this; + // ------------------------------------------------------------- + + return _courseTranscriptProgramsCovariant; + } + set + { + CourseTranscriptPrograms = new HashSet(value.Cast()); + } + } + + + private ICollection _courseTranscriptSections; + private ICollection _courseTranscriptSectionsCovariant; + [ValidateEnumerable] + public virtual ICollection CourseTranscriptSections + { + get + { + // ------------------------------------------------------------- + // On-demand deserialization logic to attach reverse reference of children + // due to ServiceStack's lack of [OnDeserialized] attribute support. + // Back-reference is required by NHibernate for persistence. + // ------------------------------------------------------------- + foreach (var item in _courseTranscriptSections) + if (item.CourseTranscript == null) + item.CourseTranscript = this; + // ------------------------------------------------------------- + + return _courseTranscriptSections; + } + set + { + _courseTranscriptSections = value; + _courseTranscriptSectionsCovariant = new CovariantCollectionAdapter(value); + } + } + + // Covariant version, visible only on the interface + ICollection Entities.Common.EdFi.ICourseTranscript.CourseTranscriptSections + { + get + { + // ------------------------------------------------------------- + // Back-reference is required by NHibernate for persistence. + // ------------------------------------------------------------- + foreach (var item in _courseTranscriptSections) + if (item.CourseTranscript == null) + item.CourseTranscript = this; + // ------------------------------------------------------------- + + return _courseTranscriptSectionsCovariant; + } + set + { + CourseTranscriptSections = new HashSet(value.Cast()); + } + } + // ------------------------------------------------------------- // Provide lookup property map @@ -27933,7 +28105,465 @@ public IDictionary Extensions } } - [ValidateAggregateExtensions(typeof(CourseTranscriptAlternativeCourseIdentificationCode))] + [ValidateAggregateExtensions(typeof(CourseTranscriptAlternativeCourseIdentificationCode))] + public IDictionary AggregateExtensions { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Reference Data + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + //============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // Provide lookup property map + private static readonly Dictionary _idPropertyByLookupProperty = new Dictionary(StringComparer.InvariantCultureIgnoreCase) + { + { "CourseAttemptResultDescriptor", new LookupColumnDetails { PropertyName = "CourseAttemptResultDescriptorId", LookupTypeName = "CourseAttemptResultDescriptor"} }, + { "CourseIdentificationSystemDescriptor", new LookupColumnDetails { PropertyName = "CourseIdentificationSystemDescriptorId", LookupTypeName = "CourseIdentificationSystemDescriptor"} }, + { "TermDescriptor", new LookupColumnDetails { PropertyName = "TermDescriptorId", LookupTypeName = "TermDescriptor"} }, + }; + + Dictionary IHasLookupColumnPropertyMap.IdPropertyByLookupProperty + { + get { return _idPropertyByLookupProperty; } + } + + // Provide primary key information + OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() + { + // Get parent key values + var keyValues = (CourseTranscript as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + + // Add current key values + keyValues.Add("CourseIdentificationSystemDescriptorId", CourseIdentificationSystemDescriptorId); + + return keyValues; + } + + #region Overrides for Equals() and GetHashCode() + public override bool Equals(object obj) + { + var compareTo = obj as IHasPrimaryKeyValues; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + var theseKeys = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + var thoseKeys = compareTo.GetPrimaryKeyValues(); + + foreach (DictionaryEntry entry in theseKeys) + { + if (entry.Value is string) + { + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((string) entry.Value, (string) thoseKeys[entry.Key])) + { + return false; + } + } + else + { + if (!entry.Value.Equals(thoseKeys[entry.Key])) + return false; + } + } + + return true; + } + + public override int GetHashCode() + { + var keyValues = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + + if (keyValues.Count == 0) + return base.GetHashCode(); + + var hashCode = new HashCode(); + + foreach (DictionaryEntry entry in keyValues) + { + if (entry.Value is string) + { + hashCode.Add(entry.Value as string, GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer); + } + else + { + hashCode.Add(entry.Value); + } + } + + return hashCode.ToHashCode(); + } + #endregion + bool ISynchronizable.Synchronize(object target) + { + return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptAlternativeCourseIdentificationCode)target); + } + + void IMappable.Map(object target) + { + this.MapTo((Entities.Common.EdFi.ICourseTranscriptAlternativeCourseIdentificationCode) target, null); + } + + void IChildEntity.SetParent(object value) + { + CourseTranscript = (CourseTranscript) value; + } + } +// disable warnings for inheritance from classes marked Obsolete within this generated code only +#pragma warning disable 612, 618 + + /// + /// A class which represents the edfi.CourseTranscriptCreditCategory table of the CourseTranscript aggregate in the ODS database. + /// + [Serializable, Schema("edfi")] + [ExcludeFromCodeCoverage] + public class CourseTranscriptCreditCategory : EntityWithCompositeKey, IChildEntity, + Entities.Common.EdFi.ICourseTranscriptCreditCategory, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IHasExtensions + { + public virtual void SuspendReferenceAssignmentCheck() { } + + public CourseTranscriptCreditCategory() + { + Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); + AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); + } +// restore warnings for inheritance from classes marked Obsolete +#pragma warning restore 612, 618 + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature, JsonIgnore, IgnoreDataMember] + public virtual CourseTranscript CourseTranscript { get; set; } + + Entities.Common.EdFi.ICourseTranscript ICourseTranscriptCreditCategory.CourseTranscript + { + get { return CourseTranscript; } + set { CourseTranscript = (CourseTranscript) value; } + } + + [DomainSignature, RequiredWithNonDefault] + public virtual int CreditCategoryDescriptorId + { + get + { + if (_creditCategoryDescriptorId == default(int)) + _creditCategoryDescriptorId = GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("CreditCategoryDescriptor", _creditCategoryDescriptor); + + return _creditCategoryDescriptorId; + } + set + { + _creditCategoryDescriptorId = value; + _creditCategoryDescriptor = null; + } + } + + private int _creditCategoryDescriptorId; + private string _creditCategoryDescriptor; + + public virtual string CreditCategoryDescriptor + { + get + { + if (_creditCategoryDescriptor == null) + _creditCategoryDescriptor = GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("CreditCategoryDescriptor", _creditCategoryDescriptorId); + + return _creditCategoryDescriptor; + } + set + { + _creditCategoryDescriptor = value; + _creditCategoryDescriptorId = default(int); + } + } + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + private IDictionary _extensions; + + [ValidateExtensions] + public IDictionary Extensions + { + get => _extensions; + set + { + // If the _extensions is null, this is being assigned from the constructor + // for the first time and no special handling is required + if (_extensions != null) + { + // For extensions that have already been initialized by the extensions factory, + // we need to copy any "implicit" extension object entries over to the incoming + // value dictionary being assigned by NHibernate because it won't have them, + // but they must be there for correct handling of extensions for the API. + foreach (var key in _extensions.Keys) + { + if (!value.Contains(key)) + { + value[key] = _extensions[key]; + } + } + } + + _extensions = value; + } + } + + [ValidateAggregateExtensions(typeof(CourseTranscriptCreditCategory))] + public IDictionary AggregateExtensions { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Reference Data + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + //============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // Provide lookup property map + private static readonly Dictionary _idPropertyByLookupProperty = new Dictionary(StringComparer.InvariantCultureIgnoreCase) + { + { "CourseAttemptResultDescriptor", new LookupColumnDetails { PropertyName = "CourseAttemptResultDescriptorId", LookupTypeName = "CourseAttemptResultDescriptor"} }, + { "CreditCategoryDescriptor", new LookupColumnDetails { PropertyName = "CreditCategoryDescriptorId", LookupTypeName = "CreditCategoryDescriptor"} }, + { "TermDescriptor", new LookupColumnDetails { PropertyName = "TermDescriptorId", LookupTypeName = "TermDescriptor"} }, + }; + + Dictionary IHasLookupColumnPropertyMap.IdPropertyByLookupProperty + { + get { return _idPropertyByLookupProperty; } + } + + // Provide primary key information + OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() + { + // Get parent key values + var keyValues = (CourseTranscript as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + + // Add current key values + keyValues.Add("CreditCategoryDescriptorId", CreditCategoryDescriptorId); + + return keyValues; + } + + #region Overrides for Equals() and GetHashCode() + public override bool Equals(object obj) + { + var compareTo = obj as IHasPrimaryKeyValues; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + var theseKeys = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + var thoseKeys = compareTo.GetPrimaryKeyValues(); + + foreach (DictionaryEntry entry in theseKeys) + { + if (entry.Value is string) + { + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((string) entry.Value, (string) thoseKeys[entry.Key])) + { + return false; + } + } + else + { + if (!entry.Value.Equals(thoseKeys[entry.Key])) + return false; + } + } + + return true; + } + + public override int GetHashCode() + { + var keyValues = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + + if (keyValues.Count == 0) + return base.GetHashCode(); + + var hashCode = new HashCode(); + + foreach (DictionaryEntry entry in keyValues) + { + if (entry.Value is string) + { + hashCode.Add(entry.Value as string, GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer); + } + else + { + hashCode.Add(entry.Value); + } + } + + return hashCode.ToHashCode(); + } + #endregion + bool ISynchronizable.Synchronize(object target) + { + return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptCreditCategory)target); + } + + void IMappable.Map(object target) + { + this.MapTo((Entities.Common.EdFi.ICourseTranscriptCreditCategory) target, null); + } + + void IChildEntity.SetParent(object value) + { + CourseTranscript = (CourseTranscript) value; + } + } +// disable warnings for inheritance from classes marked Obsolete within this generated code only +#pragma warning disable 612, 618 + + /// + /// A class which represents the edfi.CourseTranscriptEarnedAdditionalCredits table of the CourseTranscript aggregate in the ODS database. + /// + [Serializable, Schema("edfi")] + [ExcludeFromCodeCoverage] + public class CourseTranscriptEarnedAdditionalCredits : EntityWithCompositeKey, IChildEntity, + Entities.Common.EdFi.ICourseTranscriptEarnedAdditionalCredits, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IHasExtensions + { + public virtual void SuspendReferenceAssignmentCheck() { } + + public CourseTranscriptEarnedAdditionalCredits() + { + Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); + AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); + } +// restore warnings for inheritance from classes marked Obsolete +#pragma warning restore 612, 618 + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature, JsonIgnore, IgnoreDataMember] + public virtual CourseTranscript CourseTranscript { get; set; } + + Entities.Common.EdFi.ICourseTranscript ICourseTranscriptEarnedAdditionalCredits.CourseTranscript + { + get { return CourseTranscript; } + set { CourseTranscript = (CourseTranscript) value; } + } + + [DomainSignature, RequiredWithNonDefault] + public virtual int AdditionalCreditTypeDescriptorId + { + get + { + if (_additionalCreditTypeDescriptorId == default(int)) + _additionalCreditTypeDescriptorId = GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("AdditionalCreditTypeDescriptor", _additionalCreditTypeDescriptor); + + return _additionalCreditTypeDescriptorId; + } + set + { + _additionalCreditTypeDescriptorId = value; + _additionalCreditTypeDescriptor = null; + } + } + + private int _additionalCreditTypeDescriptorId; + private string _additionalCreditTypeDescriptor; + + public virtual string AdditionalCreditTypeDescriptor + { + get + { + if (_additionalCreditTypeDescriptor == null) + _additionalCreditTypeDescriptor = GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("AdditionalCreditTypeDescriptor", _additionalCreditTypeDescriptorId); + + return _additionalCreditTypeDescriptor; + } + set + { + _additionalCreditTypeDescriptor = value; + _additionalCreditTypeDescriptorId = default(int); + } + } + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + [Range(typeof(decimal), "0", "999999.999")] + public virtual decimal Credits { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + private IDictionary _extensions; + + [ValidateExtensions] + public IDictionary Extensions + { + get => _extensions; + set + { + // If the _extensions is null, this is being assigned from the constructor + // for the first time and no special handling is required + if (_extensions != null) + { + // For extensions that have already been initialized by the extensions factory, + // we need to copy any "implicit" extension object entries over to the incoming + // value dictionary being assigned by NHibernate because it won't have them, + // but they must be there for correct handling of extensions for the API. + foreach (var key in _extensions.Keys) + { + if (!value.Contains(key)) + { + value[key] = _extensions[key]; + } + } + } + + _extensions = value; + } + } + + [ValidateAggregateExtensions(typeof(CourseTranscriptEarnedAdditionalCredits))] public IDictionary AggregateExtensions { get; set; } // ------------------------------------------------------------- @@ -27950,8 +28580,8 @@ public IDictionary Extensions // Provide lookup property map private static readonly Dictionary _idPropertyByLookupProperty = new Dictionary(StringComparer.InvariantCultureIgnoreCase) { + { "AdditionalCreditTypeDescriptor", new LookupColumnDetails { PropertyName = "AdditionalCreditTypeDescriptorId", LookupTypeName = "AdditionalCreditTypeDescriptor"} }, { "CourseAttemptResultDescriptor", new LookupColumnDetails { PropertyName = "CourseAttemptResultDescriptorId", LookupTypeName = "CourseAttemptResultDescriptor"} }, - { "CourseIdentificationSystemDescriptor", new LookupColumnDetails { PropertyName = "CourseIdentificationSystemDescriptorId", LookupTypeName = "CourseIdentificationSystemDescriptor"} }, { "TermDescriptor", new LookupColumnDetails { PropertyName = "TermDescriptorId", LookupTypeName = "TermDescriptor"} }, }; @@ -27967,7 +28597,7 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() var keyValues = (CourseTranscript as IHasPrimaryKeyValues).GetPrimaryKeyValues(); // Add current key values - keyValues.Add("CourseIdentificationSystemDescriptorId", CourseIdentificationSystemDescriptorId); + keyValues.Add("AdditionalCreditTypeDescriptorId", AdditionalCreditTypeDescriptorId); return keyValues; } @@ -28031,12 +28661,12 @@ public override int GetHashCode() #endregion bool ISynchronizable.Synchronize(object target) { - return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptAlternativeCourseIdentificationCode)target); + return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptEarnedAdditionalCredits)target); } void IMappable.Map(object target) { - this.MapTo((Entities.Common.EdFi.ICourseTranscriptAlternativeCourseIdentificationCode) target, null); + this.MapTo((Entities.Common.EdFi.ICourseTranscriptEarnedAdditionalCredits) target, null); } void IChildEntity.SetParent(object value) @@ -28048,19 +28678,19 @@ void IChildEntity.SetParent(object value) #pragma warning disable 612, 618 /// - /// A class which represents the edfi.CourseTranscriptCreditCategory table of the CourseTranscript aggregate in the ODS database. + /// A class which represents the edfi.CourseTranscriptPartialCourseTranscriptAwards table of the CourseTranscript aggregate in the ODS database. /// [Serializable, Schema("edfi")] [ExcludeFromCodeCoverage] - public class CourseTranscriptCreditCategory : EntityWithCompositeKey, IChildEntity, - Entities.Common.EdFi.ICourseTranscriptCreditCategory, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IHasExtensions + public class CourseTranscriptPartialCourseTranscriptAwards : EntityWithCompositeKey, IChildEntity, + Entities.Common.EdFi.ICourseTranscriptPartialCourseTranscriptAwards, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IHasExtensions { public virtual void SuspendReferenceAssignmentCheck() { } - public CourseTranscriptCreditCategory() + public CourseTranscriptPartialCourseTranscriptAwards() { - Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); - AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); + Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); + AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); } // restore warnings for inheritance from classes marked Obsolete #pragma warning restore 612, 618 @@ -28071,57 +28701,72 @@ public CourseTranscriptCreditCategory() [DomainSignature, JsonIgnore, IgnoreDataMember] public virtual CourseTranscript CourseTranscript { get; set; } - Entities.Common.EdFi.ICourseTranscript ICourseTranscriptCreditCategory.CourseTranscript + Entities.Common.EdFi.ICourseTranscript ICourseTranscriptPartialCourseTranscriptAwards.CourseTranscript { get { return CourseTranscript; } set { CourseTranscript = (CourseTranscript) value; } } [DomainSignature, RequiredWithNonDefault] - public virtual int CreditCategoryDescriptorId + public virtual DateTime AwardDate + { + get { return _awardDate; } + //This is only stored as a Date in the DB and NHibernate will retrieve it using the default (local) DateTime.Kind. We must ensure it is set consistently for any equality/change evaluation. + set { _awardDate = new DateTime(value.Year, value.Month, value.Day); } + } + + private DateTime _awardDate; + + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + [Range(typeof(decimal), "0", "999999.999")] + public virtual decimal EarnedCredits { get; set; } + [StringLength(20, MinimumLength=1), NoDangerousText] + public virtual string LetterGradeEarned { get; set; } + public virtual int? MethodCreditEarnedDescriptorId { get { - if (_creditCategoryDescriptorId == default(int)) - _creditCategoryDescriptorId = GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("CreditCategoryDescriptor", _creditCategoryDescriptor); + if (_methodCreditEarnedDescriptorId == default(int?)) + _methodCreditEarnedDescriptorId = string.IsNullOrWhiteSpace(_methodCreditEarnedDescriptor) ? default(int?) : GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("MethodCreditEarnedDescriptor", _methodCreditEarnedDescriptor); - return _creditCategoryDescriptorId; + return _methodCreditEarnedDescriptorId; } set { - _creditCategoryDescriptorId = value; - _creditCategoryDescriptor = null; + _methodCreditEarnedDescriptorId = value; + _methodCreditEarnedDescriptor = null; } } - private int _creditCategoryDescriptorId; - private string _creditCategoryDescriptor; + private int? _methodCreditEarnedDescriptorId; + private string _methodCreditEarnedDescriptor; - public virtual string CreditCategoryDescriptor + public virtual string MethodCreditEarnedDescriptor { get { - if (_creditCategoryDescriptor == null) - _creditCategoryDescriptor = GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("CreditCategoryDescriptor", _creditCategoryDescriptorId); + if (_methodCreditEarnedDescriptor == null) + _methodCreditEarnedDescriptor = _methodCreditEarnedDescriptorId == null ? null : GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("MethodCreditEarnedDescriptor", _methodCreditEarnedDescriptorId.Value); - return _creditCategoryDescriptor; + return _methodCreditEarnedDescriptor; } set { - _creditCategoryDescriptor = value; - _creditCategoryDescriptorId = default(int); + _methodCreditEarnedDescriptor = value; + _methodCreditEarnedDescriptorId = default(int?); } } - // ------------------------------------------------------------- - - // ============================================================= - // Inherited Properties - // ------------------------------------------------------------- - // ------------------------------------------------------------- - - // ============================================================= - // Properties - // ------------------------------------------------------------- + [StringLength(20, MinimumLength=1), NoDangerousText] + public virtual string NumericGradeEarned { get; set; } // ------------------------------------------------------------- // ============================================================= @@ -28161,7 +28806,7 @@ public IDictionary Extensions } } - [ValidateAggregateExtensions(typeof(CourseTranscriptCreditCategory))] + [ValidateAggregateExtensions(typeof(CourseTranscriptPartialCourseTranscriptAwards))] public IDictionary AggregateExtensions { get; set; } // ------------------------------------------------------------- @@ -28179,7 +28824,7 @@ public IDictionary Extensions private static readonly Dictionary _idPropertyByLookupProperty = new Dictionary(StringComparer.InvariantCultureIgnoreCase) { { "CourseAttemptResultDescriptor", new LookupColumnDetails { PropertyName = "CourseAttemptResultDescriptorId", LookupTypeName = "CourseAttemptResultDescriptor"} }, - { "CreditCategoryDescriptor", new LookupColumnDetails { PropertyName = "CreditCategoryDescriptorId", LookupTypeName = "CreditCategoryDescriptor"} }, + { "MethodCreditEarnedDescriptor", new LookupColumnDetails { PropertyName = "MethodCreditEarnedDescriptorId", LookupTypeName = "MethodCreditEarnedDescriptor"} }, { "TermDescriptor", new LookupColumnDetails { PropertyName = "TermDescriptorId", LookupTypeName = "TermDescriptor"} }, }; @@ -28195,7 +28840,7 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() var keyValues = (CourseTranscript as IHasPrimaryKeyValues).GetPrimaryKeyValues(); // Add current key values - keyValues.Add("CreditCategoryDescriptorId", CreditCategoryDescriptorId); + keyValues.Add("AwardDate", AwardDate); return keyValues; } @@ -28259,12 +28904,12 @@ public override int GetHashCode() #endregion bool ISynchronizable.Synchronize(object target) { - return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptCreditCategory)target); + return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptPartialCourseTranscriptAwards)target); } void IMappable.Map(object target) { - this.MapTo((Entities.Common.EdFi.ICourseTranscriptCreditCategory) target, null); + this.MapTo((Entities.Common.EdFi.ICourseTranscriptPartialCourseTranscriptAwards) target, null); } void IChildEntity.SetParent(object value) @@ -28276,19 +28921,19 @@ void IChildEntity.SetParent(object value) #pragma warning disable 612, 618 /// - /// A class which represents the edfi.CourseTranscriptEarnedAdditionalCredits table of the CourseTranscript aggregate in the ODS database. + /// A class which represents the edfi.CourseTranscriptProgram table of the CourseTranscript aggregate in the ODS database. /// [Serializable, Schema("edfi")] [ExcludeFromCodeCoverage] - public class CourseTranscriptEarnedAdditionalCredits : EntityWithCompositeKey, IChildEntity, - Entities.Common.EdFi.ICourseTranscriptEarnedAdditionalCredits, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IHasExtensions + public class CourseTranscriptProgram : EntityWithCompositeKey, IChildEntity, + Entities.Common.EdFi.ICourseTranscriptProgram, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IHasExtensions { public virtual void SuspendReferenceAssignmentCheck() { } - public CourseTranscriptEarnedAdditionalCredits() + public CourseTranscriptProgram() { - Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); - AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); + Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); + AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); } // restore warnings for inheritance from classes marked Obsolete #pragma warning restore 612, 618 @@ -28299,45 +28944,47 @@ public CourseTranscriptEarnedAdditionalCredits() [DomainSignature, JsonIgnore, IgnoreDataMember] public virtual CourseTranscript CourseTranscript { get; set; } - Entities.Common.EdFi.ICourseTranscript ICourseTranscriptEarnedAdditionalCredits.CourseTranscript + Entities.Common.EdFi.ICourseTranscript ICourseTranscriptProgram.CourseTranscript { get { return CourseTranscript; } set { CourseTranscript = (CourseTranscript) value; } } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string ProgramName { get; set; } [DomainSignature, RequiredWithNonDefault] - public virtual int AdditionalCreditTypeDescriptorId + public virtual int ProgramTypeDescriptorId { get { - if (_additionalCreditTypeDescriptorId == default(int)) - _additionalCreditTypeDescriptorId = GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("AdditionalCreditTypeDescriptor", _additionalCreditTypeDescriptor); + if (_programTypeDescriptorId == default(int)) + _programTypeDescriptorId = GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("ProgramTypeDescriptor", _programTypeDescriptor); - return _additionalCreditTypeDescriptorId; + return _programTypeDescriptorId; } set { - _additionalCreditTypeDescriptorId = value; - _additionalCreditTypeDescriptor = null; + _programTypeDescriptorId = value; + _programTypeDescriptor = null; } } - private int _additionalCreditTypeDescriptorId; - private string _additionalCreditTypeDescriptor; + private int _programTypeDescriptorId; + private string _programTypeDescriptor; - public virtual string AdditionalCreditTypeDescriptor + public virtual string ProgramTypeDescriptor { get { - if (_additionalCreditTypeDescriptor == null) - _additionalCreditTypeDescriptor = GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("AdditionalCreditTypeDescriptor", _additionalCreditTypeDescriptorId); + if (_programTypeDescriptor == null) + _programTypeDescriptor = GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("ProgramTypeDescriptor", _programTypeDescriptorId); - return _additionalCreditTypeDescriptor; + return _programTypeDescriptor; } set { - _additionalCreditTypeDescriptor = value; - _additionalCreditTypeDescriptorId = default(int); + _programTypeDescriptor = value; + _programTypeDescriptorId = default(int); } } // ------------------------------------------------------------- @@ -28350,8 +28997,6 @@ public virtual string AdditionalCreditTypeDescriptor // ============================================================= // Properties // ------------------------------------------------------------- - [Range(typeof(decimal), "0", "999999.999")] - public virtual decimal Credits { get; set; } // ------------------------------------------------------------- // ============================================================= @@ -28391,13 +29036,33 @@ public IDictionary Extensions } } - [ValidateAggregateExtensions(typeof(CourseTranscriptEarnedAdditionalCredits))] + [ValidateAggregateExtensions(typeof(CourseTranscriptProgram))] public IDictionary AggregateExtensions { get; set; } // ------------------------------------------------------------- // ============================================================= // Reference Data // ------------------------------------------------------------- + public virtual NHibernate.ProgramAggregate.EdFi.ProgramReferenceData ProgramReferenceData { get; set; } + + /// + /// Read-only property that allows the Program discriminator value to be mapped to the resource reference. + /// + string Entities.Common.EdFi.ICourseTranscriptProgram.ProgramDiscriminator + { + get { return ProgramReferenceData?.Discriminator; } + set { } + } + + /// + /// Read-only property that allows the Program resource identifier value to be mapped to the resource reference. + /// + Guid? Entities.Common.EdFi.ICourseTranscriptProgram.ProgramResourceId + { + get { return ProgramReferenceData?.Id; } + set { } + } + // ------------------------------------------------------------- //============================================================= @@ -28408,8 +29073,8 @@ public IDictionary Extensions // Provide lookup property map private static readonly Dictionary _idPropertyByLookupProperty = new Dictionary(StringComparer.InvariantCultureIgnoreCase) { - { "AdditionalCreditTypeDescriptor", new LookupColumnDetails { PropertyName = "AdditionalCreditTypeDescriptorId", LookupTypeName = "AdditionalCreditTypeDescriptor"} }, { "CourseAttemptResultDescriptor", new LookupColumnDetails { PropertyName = "CourseAttemptResultDescriptorId", LookupTypeName = "CourseAttemptResultDescriptor"} }, + { "ProgramTypeDescriptor", new LookupColumnDetails { PropertyName = "ProgramTypeDescriptorId", LookupTypeName = "ProgramTypeDescriptor"} }, { "TermDescriptor", new LookupColumnDetails { PropertyName = "TermDescriptorId", LookupTypeName = "TermDescriptor"} }, }; @@ -28425,7 +29090,8 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() var keyValues = (CourseTranscript as IHasPrimaryKeyValues).GetPrimaryKeyValues(); // Add current key values - keyValues.Add("AdditionalCreditTypeDescriptorId", AdditionalCreditTypeDescriptorId); + keyValues.Add("ProgramName", ProgramName); + keyValues.Add("ProgramTypeDescriptorId", ProgramTypeDescriptorId); return keyValues; } @@ -28489,12 +29155,12 @@ public override int GetHashCode() #endregion bool ISynchronizable.Synchronize(object target) { - return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptEarnedAdditionalCredits)target); + return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptProgram)target); } void IMappable.Map(object target) { - this.MapTo((Entities.Common.EdFi.ICourseTranscriptEarnedAdditionalCredits) target, null); + this.MapTo((Entities.Common.EdFi.ICourseTranscriptProgram) target, null); } void IChildEntity.SetParent(object value) @@ -28506,19 +29172,19 @@ void IChildEntity.SetParent(object value) #pragma warning disable 612, 618 /// - /// A class which represents the edfi.CourseTranscriptPartialCourseTranscriptAwards table of the CourseTranscript aggregate in the ODS database. + /// A class which represents the edfi.CourseTranscriptSection table of the CourseTranscript aggregate in the ODS database. /// [Serializable, Schema("edfi")] [ExcludeFromCodeCoverage] - public class CourseTranscriptPartialCourseTranscriptAwards : EntityWithCompositeKey, IChildEntity, - Entities.Common.EdFi.ICourseTranscriptPartialCourseTranscriptAwards, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IHasExtensions + public class CourseTranscriptSection : EntityWithCompositeKey, IChildEntity, + Entities.Common.EdFi.ICourseTranscriptSection, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IHasExtensions { public virtual void SuspendReferenceAssignmentCheck() { } - public CourseTranscriptPartialCourseTranscriptAwards() + public CourseTranscriptSection() { - Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); - AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); + Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); + AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); } // restore warnings for inheritance from classes marked Obsolete #pragma warning restore 612, 618 @@ -28529,22 +29195,20 @@ public CourseTranscriptPartialCourseTranscriptAwards() [DomainSignature, JsonIgnore, IgnoreDataMember] public virtual CourseTranscript CourseTranscript { get; set; } - Entities.Common.EdFi.ICourseTranscript ICourseTranscriptPartialCourseTranscriptAwards.CourseTranscript + Entities.Common.EdFi.ICourseTranscript ICourseTranscriptSection.CourseTranscript { get { return CourseTranscript; } set { CourseTranscript = (CourseTranscript) value; } } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string LocalCourseCode { get; set; } [DomainSignature, RequiredWithNonDefault] - public virtual DateTime AwardDate - { - get { return _awardDate; } - //This is only stored as a Date in the DB and NHibernate will retrieve it using the default (local) DateTime.Kind. We must ensure it is set consistently for any equality/change evaluation. - set { _awardDate = new DateTime(value.Year, value.Month, value.Day); } - } - - private DateTime _awardDate; - + public virtual long SchoolId { get; set; } + [DomainSignature, RequiredWithNonDefault, StringLength(255, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string SectionIdentifier { get; set; } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string SessionName { get; set; } // ------------------------------------------------------------- // ============================================================= @@ -28555,46 +29219,6 @@ public virtual DateTime AwardDate // ============================================================= // Properties // ------------------------------------------------------------- - [Range(typeof(decimal), "0", "999999.999")] - public virtual decimal EarnedCredits { get; set; } - [StringLength(20, MinimumLength=1), NoDangerousText] - public virtual string LetterGradeEarned { get; set; } - public virtual int? MethodCreditEarnedDescriptorId - { - get - { - if (_methodCreditEarnedDescriptorId == default(int?)) - _methodCreditEarnedDescriptorId = string.IsNullOrWhiteSpace(_methodCreditEarnedDescriptor) ? default(int?) : GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("MethodCreditEarnedDescriptor", _methodCreditEarnedDescriptor); - - return _methodCreditEarnedDescriptorId; - } - set - { - _methodCreditEarnedDescriptorId = value; - _methodCreditEarnedDescriptor = null; - } - } - - private int? _methodCreditEarnedDescriptorId; - private string _methodCreditEarnedDescriptor; - - public virtual string MethodCreditEarnedDescriptor - { - get - { - if (_methodCreditEarnedDescriptor == null) - _methodCreditEarnedDescriptor = _methodCreditEarnedDescriptorId == null ? null : GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("MethodCreditEarnedDescriptor", _methodCreditEarnedDescriptorId.Value); - - return _methodCreditEarnedDescriptor; - } - set - { - _methodCreditEarnedDescriptor = value; - _methodCreditEarnedDescriptorId = default(int?); - } - } - [StringLength(20, MinimumLength=1), NoDangerousText] - public virtual string NumericGradeEarned { get; set; } // ------------------------------------------------------------- // ============================================================= @@ -28634,13 +29258,33 @@ public IDictionary Extensions } } - [ValidateAggregateExtensions(typeof(CourseTranscriptPartialCourseTranscriptAwards))] + [ValidateAggregateExtensions(typeof(CourseTranscriptSection))] public IDictionary AggregateExtensions { get; set; } // ------------------------------------------------------------- // ============================================================= // Reference Data // ------------------------------------------------------------- + public virtual NHibernate.SectionAggregate.EdFi.SectionReferenceData SectionReferenceData { get; set; } + + /// + /// Read-only property that allows the Section discriminator value to be mapped to the resource reference. + /// + string Entities.Common.EdFi.ICourseTranscriptSection.SectionDiscriminator + { + get { return SectionReferenceData?.Discriminator; } + set { } + } + + /// + /// Read-only property that allows the Section resource identifier value to be mapped to the resource reference. + /// + Guid? Entities.Common.EdFi.ICourseTranscriptSection.SectionResourceId + { + get { return SectionReferenceData?.Id; } + set { } + } + // ------------------------------------------------------------- //============================================================= @@ -28652,7 +29296,6 @@ public IDictionary Extensions private static readonly Dictionary _idPropertyByLookupProperty = new Dictionary(StringComparer.InvariantCultureIgnoreCase) { { "CourseAttemptResultDescriptor", new LookupColumnDetails { PropertyName = "CourseAttemptResultDescriptorId", LookupTypeName = "CourseAttemptResultDescriptor"} }, - { "MethodCreditEarnedDescriptor", new LookupColumnDetails { PropertyName = "MethodCreditEarnedDescriptorId", LookupTypeName = "MethodCreditEarnedDescriptor"} }, { "TermDescriptor", new LookupColumnDetails { PropertyName = "TermDescriptorId", LookupTypeName = "TermDescriptor"} }, }; @@ -28668,7 +29311,10 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() var keyValues = (CourseTranscript as IHasPrimaryKeyValues).GetPrimaryKeyValues(); // Add current key values - keyValues.Add("AwardDate", AwardDate); + keyValues.Add("LocalCourseCode", LocalCourseCode); + keyValues.Add("SchoolId", SchoolId); + keyValues.Add("SectionIdentifier", SectionIdentifier); + keyValues.Add("SessionName", SessionName); return keyValues; } @@ -28732,12 +29378,12 @@ public override int GetHashCode() #endregion bool ISynchronizable.Synchronize(object target) { - return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptPartialCourseTranscriptAwards)target); + return this.SynchronizeTo((Entities.Common.EdFi.ICourseTranscriptSection)target); } void IMappable.Map(object target) { - this.MapTo((Entities.Common.EdFi.ICourseTranscriptPartialCourseTranscriptAwards) target, null); + this.MapTo((Entities.Common.EdFi.ICourseTranscriptSection) target, null); } void IChildEntity.SetParent(object value) @@ -48185,7 +48831,7 @@ public class GradeReferenceData : IHasPrimaryKeyValues public virtual DateTime BeginDate { get; set; } public virtual int GradeTypeDescriptorId { get; set; } public virtual int GradingPeriodDescriptorId { get; set; } - public virtual int GradingPeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } public virtual short GradingPeriodSchoolYear { get; set; } public virtual string LocalCourseCode { get; set; } public virtual long SchoolId { get; set; } @@ -48216,8 +48862,8 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() keyValues.Add("BeginDate", BeginDate); keyValues.Add("GradeTypeDescriptorId", GradeTypeDescriptorId); keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); + keyValues.Add("GradingPeriodName", GradingPeriodName); keyValues.Add("GradingPeriodSchoolYear", GradingPeriodSchoolYear); - keyValues.Add("GradingPeriodSequence", GradingPeriodSequence); keyValues.Add("LocalCourseCode", LocalCourseCode); keyValues.Add("SchoolId", SchoolId); keyValues.Add("SchoolYear", SchoolYear); @@ -48375,8 +49021,8 @@ public virtual string GradingPeriodDescriptor _gradingPeriodDescriptorId = default(int); } } - [DomainSignature, RequiredWithNonDefault] - public virtual int GradingPeriodSequence { get; set; } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string GradingPeriodName { get; set; } [DomainSignature, RequiredWithNonDefault] public virtual short GradingPeriodSchoolYear { get; set; } [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] @@ -48675,8 +49321,8 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() keyValues.Add("BeginDate", BeginDate); keyValues.Add("GradeTypeDescriptorId", GradeTypeDescriptorId); keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); + keyValues.Add("GradingPeriodName", GradingPeriodName); keyValues.Add("GradingPeriodSchoolYear", GradingPeriodSchoolYear); - keyValues.Add("GradingPeriodSequence", GradingPeriodSequence); keyValues.Add("LocalCourseCode", LocalCourseCode); keyValues.Add("SchoolId", SchoolId); keyValues.Add("SchoolYear", SchoolYear); @@ -49239,10 +49885,11 @@ public virtual string GradingPeriodDescriptor } } [StringLength(60, MinimumLength=1), NoDangerousText] + public virtual string GradingPeriodName { get; set; } + [StringLength(60, MinimumLength=1), NoDangerousText] public virtual string LocalCourseCode { get; set; } [Range(typeof(decimal), "-9999999.99", "9999999.99")] public virtual decimal? MaxPoints { get; set; } - public virtual int? PeriodSequence { get; set; } public virtual long? SchoolId { get; set; } public virtual short? SchoolYear { get; set; } [StringLength(255, MinimumLength=1), NoDangerousText] @@ -50455,7 +51102,7 @@ public class GradingPeriodReferenceData : IHasPrimaryKeyValues // Primary Key // ------------------------------------------------------------- public virtual int GradingPeriodDescriptorId { get; set; } - public virtual int PeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } public virtual long SchoolId { get; set; } public virtual short SchoolYear { get; set; } // ------------------------------------------------------------- @@ -50479,7 +51126,7 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() // Add current key values keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); - keyValues.Add("PeriodSequence", PeriodSequence); + keyValues.Add("GradingPeriodName", GradingPeriodName); keyValues.Add("SchoolId", SchoolId); keyValues.Add("SchoolYear", SchoolYear); @@ -50587,8 +51234,8 @@ public virtual string GradingPeriodDescriptor _gradingPeriodDescriptorId = default(int); } } - [DomainSignature, RequiredWithNonDefault] - public virtual int PeriodSequence { get; set; } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string GradingPeriodName { get; set; } [DomainSignature, RequiredWithNonDefault] public virtual long SchoolId { get; set; } [DomainSignature, RequiredWithNonDefault] @@ -50623,6 +51270,7 @@ public virtual DateTime EndDate private DateTime _endDate; + public virtual int? PeriodSequence { get; set; } [Range(0, 2147483647)] public virtual int TotalInstructionalDays { get; set; } // ------------------------------------------------------------- @@ -50719,7 +51367,7 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() // Add current key values keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); - keyValues.Add("PeriodSequence", PeriodSequence); + keyValues.Add("GradingPeriodName", GradingPeriodName); keyValues.Add("SchoolId", SchoolId); keyValues.Add("SchoolYear", SchoolYear); @@ -90241,7 +90889,7 @@ public class ReportCardReferenceData : IHasPrimaryKeyValues // ------------------------------------------------------------- public virtual long EducationOrganizationId { get; set; } public virtual int GradingPeriodDescriptorId { get; set; } - public virtual int GradingPeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } public virtual long GradingPeriodSchoolId { get; set; } public virtual short GradingPeriodSchoolYear { get; set; } public virtual int StudentUSI { get; set; } @@ -90267,9 +90915,9 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() // Add current key values keyValues.Add("EducationOrganizationId", EducationOrganizationId); keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); + keyValues.Add("GradingPeriodName", GradingPeriodName); keyValues.Add("GradingPeriodSchoolId", GradingPeriodSchoolId); keyValues.Add("GradingPeriodSchoolYear", GradingPeriodSchoolYear); - keyValues.Add("GradingPeriodSequence", GradingPeriodSequence); keyValues.Add("StudentUSI", StudentUSI); return keyValues; @@ -90381,8 +91029,8 @@ public virtual string GradingPeriodDescriptor _gradingPeriodDescriptorId = default(int); } } - [DomainSignature, RequiredWithNonDefault] - public virtual int GradingPeriodSequence { get; set; } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string GradingPeriodName { get; set; } [DomainSignature, RequiredWithNonDefault] public virtual long GradingPeriodSchoolId { get; set; } [DomainSignature, RequiredWithNonDefault] @@ -90730,9 +91378,9 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() // Add current key values keyValues.Add("EducationOrganizationId", EducationOrganizationId); keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); + keyValues.Add("GradingPeriodName", GradingPeriodName); keyValues.Add("GradingPeriodSchoolId", GradingPeriodSchoolId); keyValues.Add("GradingPeriodSchoolYear", GradingPeriodSchoolYear); - keyValues.Add("GradingPeriodSequence", GradingPeriodSequence); keyValues.Add("StudentUSI", StudentUSI); return keyValues; @@ -96528,6 +97176,40 @@ public virtual string PopulationServedDescriptor } [StringLength(100, MinimumLength=1), NoDangerousText] public virtual string SectionName { get; set; } + public virtual int? SectionTypeDescriptorId + { + get + { + if (_sectionTypeDescriptorId == default(int?)) + _sectionTypeDescriptorId = string.IsNullOrWhiteSpace(_sectionTypeDescriptor) ? default(int?) : GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("SectionTypeDescriptor", _sectionTypeDescriptor); + + return _sectionTypeDescriptorId; + } + set + { + _sectionTypeDescriptorId = value; + _sectionTypeDescriptor = null; + } + } + + private int? _sectionTypeDescriptorId; + private string _sectionTypeDescriptor; + + public virtual string SectionTypeDescriptor + { + get + { + if (_sectionTypeDescriptor == null) + _sectionTypeDescriptor = _sectionTypeDescriptorId == null ? null : GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("SectionTypeDescriptor", _sectionTypeDescriptorId.Value); + + return _sectionTypeDescriptor; + } + set + { + _sectionTypeDescriptor = value; + _sectionTypeDescriptorId = default(int?); + } + } [Range(1, 8)] public virtual int? SequenceOfCourse { get; set; } // ------------------------------------------------------------- @@ -96882,6 +97564,7 @@ public virtual ICollection IHasLookupColumnPropertyMap.IdPropertyByLookupProperty @@ -98726,6 +99409,190 @@ void IMappable.Map(object target) } } +// Aggregate: SectionTypeDescriptor + +namespace EdFi.Ods.Entities.NHibernate.SectionTypeDescriptorAggregate.EdFi +{ +// disable warnings for inheritance from classes marked Obsolete within this generated code only +#pragma warning disable 612, 618 + + /// + /// A class which represents the edfi.SectionTypeDescriptor table of the SectionTypeDescriptor aggregate in the ODS database. + /// + [Serializable, Schema("edfi")] + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptor : DescriptorAggregate.EdFi.Descriptor, + Entities.Common.EdFi.ISectionTypeDescriptor, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IEdFiDescriptor + { + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature] + public virtual int SectionTypeDescriptorId + { + get { return base.DescriptorId; } + set { base.DescriptorId = value; } + } + + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + string IDescriptor.CodeValue + { + get { return CodeValue; } + set { CodeValue = value; } + } + string IDescriptor.Description + { + get { return Description; } + set { Description = value; } + } + DateTime? IDescriptor.EffectiveBeginDate + { + get { return EffectiveBeginDate; } + set { EffectiveBeginDate = value; } + } + DateTime? IDescriptor.EffectiveEndDate + { + get { return EffectiveEndDate; } + set { EffectiveEndDate = value; } + } + string IDescriptor.Namespace + { + get { return Namespace; } + set { Namespace = value; } + } + int? IDescriptor.PriorDescriptorId + { + get { return PriorDescriptorId; } + set { PriorDescriptorId = value; } + } + string IDescriptor.ShortDescription + { + get { return ShortDescription; } + set { ShortDescription = value; } + } + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Reference Data + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + //============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // Provide lookup property map + private static readonly Dictionary _idPropertyByLookupProperty = new Dictionary(StringComparer.InvariantCultureIgnoreCase) + { + }; + + Dictionary IHasLookupColumnPropertyMap.IdPropertyByLookupProperty + { + get { return _idPropertyByLookupProperty; } + } + + // Provide primary key information + OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() + { + // Initialize a new dictionary to hold the key values + var keyValues = new OrderedDictionary(); + + // Add current key values + keyValues.Add("SectionTypeDescriptorId", SectionTypeDescriptorId); + + return keyValues; + } + + #region Overrides for Equals() and GetHashCode() + public override bool Equals(object obj) + { + var compareTo = obj as IHasPrimaryKeyValues; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + var theseKeys = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + var thoseKeys = compareTo.GetPrimaryKeyValues(); + + foreach (DictionaryEntry entry in theseKeys) + { + if (entry.Value is string) + { + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((string) entry.Value, (string) thoseKeys[entry.Key])) + { + return false; + } + } + else + { + if (!entry.Value.Equals(thoseKeys[entry.Key])) + return false; + } + } + + return true; + } + + public override int GetHashCode() + { + var keyValues = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + + if (keyValues.Count == 0) + return base.GetHashCode(); + + var hashCode = new HashCode(); + + foreach (DictionaryEntry entry in keyValues) + { + if (entry.Value is string) + { + hashCode.Add(entry.Value as string, GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer); + } + else + { + hashCode.Add(entry.Value); + } + } + + return hashCode.ToHashCode(); + } + #endregion + bool ISynchronizable.Synchronize(object target) + { + return this.SynchronizeTo((Entities.Common.EdFi.ISectionTypeDescriptor)target); + } + + void IMappable.Map(object target) + { + this.MapTo((Entities.Common.EdFi.ISectionTypeDescriptor) target, null); + } + + } +} // Aggregate: SeparationDescriptor namespace EdFi.Ods.Entities.NHibernate.SeparationDescriptorAggregate.EdFi @@ -100011,8 +100878,8 @@ public virtual string GradingPeriodDescriptor _gradingPeriodDescriptorId = default(int); } } - [DomainSignature, RequiredWithNonDefault] - public virtual int PeriodSequence { get; set; } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string GradingPeriodName { get; set; } // ------------------------------------------------------------- // ============================================================= @@ -100115,7 +100982,7 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() // Add current key values keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); - keyValues.Add("PeriodSequence", PeriodSequence); + keyValues.Add("GradingPeriodName", GradingPeriodName); return keyValues; } @@ -101681,6 +102548,8 @@ public virtual string CitizenshipStatusDescriptor } [RequiredWithNonDefault, StringLength(75, MinimumLength=1), NoDangerousText] public virtual string FirstName { get; set; } + [StringLength(60, MinimumLength=0), NoDangerousText] + public virtual string GenderIdentity { get; set; } [StringLength(10, MinimumLength=1), NoDangerousText] public virtual string GenerationCodeSuffix { get; set; } public virtual int? HighestCompletedLevelOfEducationDescriptorId @@ -110863,6 +111732,8 @@ public virtual string StaffUniqueId // ============================================================= // Properties // ------------------------------------------------------------- + [Range(typeof(decimal), "-922337203685477.5808", "922337203685477.5807")] + public virtual decimal? AnnualWage { get; set; } [StringLength(60, MinimumLength=1), NoDangerousText] public virtual string CredentialIdentifier { get; set; } [StringLength(60, MinimumLength=1), NoDangerousText] @@ -118969,8 +119840,8 @@ public virtual string GradingPeriodDescriptor _gradingPeriodDescriptorId = default(int); } } - [DomainSignature, RequiredWithNonDefault] - public virtual int GradingPeriodSequence { get; set; } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string GradingPeriodName { get; set; } [DomainSignature, RequiredWithNonDefault] public virtual long GradingPeriodSchoolId { get; set; } [DomainSignature, RequiredWithNonDefault] @@ -119078,9 +119949,9 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() // Add current key values keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); + keyValues.Add("GradingPeriodName", GradingPeriodName); keyValues.Add("GradingPeriodSchoolId", GradingPeriodSchoolId); keyValues.Add("GradingPeriodSchoolYear", GradingPeriodSchoolYear); - keyValues.Add("GradingPeriodSequence", GradingPeriodSequence); return keyValues; } @@ -123603,7 +124474,7 @@ public class StudentCompetencyObjectiveReferenceData : IHasPrimaryKeyValues // Primary Key // ------------------------------------------------------------- public virtual int GradingPeriodDescriptorId { get; set; } - public virtual int GradingPeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } public virtual long GradingPeriodSchoolId { get; set; } public virtual short GradingPeriodSchoolYear { get; set; } public virtual long ObjectiveEducationOrganizationId { get; set; } @@ -123631,9 +124502,9 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() // Add current key values keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); + keyValues.Add("GradingPeriodName", GradingPeriodName); keyValues.Add("GradingPeriodSchoolId", GradingPeriodSchoolId); keyValues.Add("GradingPeriodSchoolYear", GradingPeriodSchoolYear); - keyValues.Add("GradingPeriodSequence", GradingPeriodSequence); keyValues.Add("Objective", Objective); keyValues.Add("ObjectiveEducationOrganizationId", ObjectiveEducationOrganizationId); keyValues.Add("ObjectiveGradeLevelDescriptorId", ObjectiveGradeLevelDescriptorId); @@ -123745,8 +124616,8 @@ public virtual string GradingPeriodDescriptor _gradingPeriodDescriptorId = default(int); } } - [DomainSignature, RequiredWithNonDefault] - public virtual int GradingPeriodSequence { get; set; } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string GradingPeriodName { get; set; } [DomainSignature, RequiredWithNonDefault] public virtual long GradingPeriodSchoolId { get; set; } [DomainSignature, RequiredWithNonDefault] @@ -124117,9 +124988,9 @@ OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() // Add current key values keyValues.Add("GradingPeriodDescriptorId", GradingPeriodDescriptorId); + keyValues.Add("GradingPeriodName", GradingPeriodName); keyValues.Add("GradingPeriodSchoolId", GradingPeriodSchoolId); keyValues.Add("GradingPeriodSchoolYear", GradingPeriodSchoolYear); - keyValues.Add("GradingPeriodSequence", GradingPeriodSequence); keyValues.Add("Objective", Objective); keyValues.Add("ObjectiveEducationOrganizationId", ObjectiveEducationOrganizationId); keyValues.Add("ObjectiveGradeLevelDescriptorId", ObjectiveGradeLevelDescriptorId); @@ -127316,6 +128187,8 @@ public virtual string BarrierToInternetAccessInResidenceDescriptor _barrierToInternetAccessInResidenceDescriptorId = default(int?); } } + [StringLength(60, MinimumLength=0), NoDangerousText] + public virtual string GenderIdentity { get; set; } public virtual bool? HispanicLatinoEthnicity { get; set; } public virtual bool? InternetAccessInResidence { get; set; } public virtual int? InternetAccessTypeInResidenceDescriptorId @@ -127526,13 +128399,12 @@ public virtual string PrimaryLearningDeviceProviderDescriptor } [StringLength(255, MinimumLength=1), NoDangerousText] public virtual string ProfileThumbnail { get; set; } - [RequiredWithNonDefault] - public virtual int SexDescriptorId + public virtual int? SexDescriptorId { get { - if (_sexDescriptorId == default(int)) - _sexDescriptorId = GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("SexDescriptor", _sexDescriptor); + if (_sexDescriptorId == default(int?)) + _sexDescriptorId = string.IsNullOrWhiteSpace(_sexDescriptor) ? default(int?) : GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("SexDescriptor", _sexDescriptor); return _sexDescriptorId; } @@ -127543,7 +128415,7 @@ public virtual int SexDescriptorId } } - private int _sexDescriptorId; + private int? _sexDescriptorId; private string _sexDescriptor; public virtual string SexDescriptor @@ -127551,14 +128423,48 @@ public virtual string SexDescriptor get { if (_sexDescriptor == null) - _sexDescriptor = GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("SexDescriptor", _sexDescriptorId); + _sexDescriptor = _sexDescriptorId == null ? null : GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("SexDescriptor", _sexDescriptorId.Value); return _sexDescriptor; } set { _sexDescriptor = value; - _sexDescriptorId = default(int); + _sexDescriptorId = default(int?); + } + } + public virtual int? SupporterMilitaryConnectionDescriptorId + { + get + { + if (_supporterMilitaryConnectionDescriptorId == default(int?)) + _supporterMilitaryConnectionDescriptorId = string.IsNullOrWhiteSpace(_supporterMilitaryConnectionDescriptor) ? default(int?) : GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("SupporterMilitaryConnectionDescriptor", _supporterMilitaryConnectionDescriptor); + + return _supporterMilitaryConnectionDescriptorId; + } + set + { + _supporterMilitaryConnectionDescriptorId = value; + _supporterMilitaryConnectionDescriptor = null; + } + } + + private int? _supporterMilitaryConnectionDescriptorId; + private string _supporterMilitaryConnectionDescriptor; + + public virtual string SupporterMilitaryConnectionDescriptor + { + get + { + if (_supporterMilitaryConnectionDescriptor == null) + _supporterMilitaryConnectionDescriptor = _supporterMilitaryConnectionDescriptorId == null ? null : GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("SupporterMilitaryConnectionDescriptor", _supporterMilitaryConnectionDescriptorId.Value); + + return _supporterMilitaryConnectionDescriptor; + } + set + { + _supporterMilitaryConnectionDescriptor = value; + _supporterMilitaryConnectionDescriptorId = default(int?); } } // ------------------------------------------------------------- @@ -128289,6 +129195,7 @@ public virtual ICollection IHasLookupColumnPropertyMap.IdPropertyByLookupProperty @@ -143717,6 +144624,7 @@ public virtual void SuspendReferenceAssignmentCheck() { } public StudentSectionAssociation() { + StudentSectionAssociationPrograms = new HashSet(); Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); } @@ -143986,6 +144894,54 @@ string Entities.Common.EdFi.IStudentSectionAssociation.StudentDiscriminator //============================================================= // Collections // ------------------------------------------------------------- + + private ICollection _studentSectionAssociationPrograms; + private ICollection _studentSectionAssociationProgramsCovariant; + [ValidateEnumerable] + public virtual ICollection StudentSectionAssociationPrograms + { + get + { + // ------------------------------------------------------------- + // On-demand deserialization logic to attach reverse reference of children + // due to ServiceStack's lack of [OnDeserialized] attribute support. + // Back-reference is required by NHibernate for persistence. + // ------------------------------------------------------------- + foreach (var item in _studentSectionAssociationPrograms) + if (item.StudentSectionAssociation == null) + item.StudentSectionAssociation = this; + // ------------------------------------------------------------- + + return _studentSectionAssociationPrograms; + } + set + { + _studentSectionAssociationPrograms = value; + _studentSectionAssociationProgramsCovariant = new CovariantCollectionAdapter(value); + } + } + + // Covariant version, visible only on the interface + ICollection Entities.Common.EdFi.IStudentSectionAssociation.StudentSectionAssociationPrograms + { + get + { + // ------------------------------------------------------------- + // Back-reference is required by NHibernate for persistence. + // ------------------------------------------------------------- + foreach (var item in _studentSectionAssociationPrograms) + if (item.StudentSectionAssociation == null) + item.StudentSectionAssociation = this; + // ------------------------------------------------------------- + + return _studentSectionAssociationProgramsCovariant; + } + set + { + StudentSectionAssociationPrograms = new HashSet(value.Cast()); + } + } + // ------------------------------------------------------------- // Provide lookup property map @@ -144092,6 +145048,258 @@ void IMappable.Map(object target) } } +// disable warnings for inheritance from classes marked Obsolete within this generated code only +#pragma warning disable 612, 618 + + /// + /// A class which represents the edfi.StudentSectionAssociationProgram table of the StudentSectionAssociation aggregate in the ODS database. + /// + [Serializable, Schema("edfi")] + [ExcludeFromCodeCoverage] + public class StudentSectionAssociationProgram : EntityWithCompositeKey, IChildEntity, + Entities.Common.EdFi.IStudentSectionAssociationProgram, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IHasExtensions + { + public virtual void SuspendReferenceAssignmentCheck() { } + + public StudentSectionAssociationProgram() + { + Extensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateRequiredEntityExtensions(this)); + AggregateExtensions = EntityExtensionsFactory.Instance == null ? new Dictionary() : new Dictionary(EntityExtensionsFactory.Instance.CreateAggregateExtensions()); + } +// restore warnings for inheritance from classes marked Obsolete +#pragma warning restore 612, 618 + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature, JsonIgnore, IgnoreDataMember] + public virtual StudentSectionAssociation StudentSectionAssociation { get; set; } + + Entities.Common.EdFi.IStudentSectionAssociation IStudentSectionAssociationProgram.StudentSectionAssociation + { + get { return StudentSectionAssociation; } + set { StudentSectionAssociation = (StudentSectionAssociation) value; } + } + + [DomainSignature, RequiredWithNonDefault] + public virtual long EducationOrganizationId { get; set; } + [DomainSignature, RequiredWithNonDefault, StringLength(60, MinimumLength=1), NoDangerousText, NoWhitespace] + public virtual string ProgramName { get; set; } + [DomainSignature, RequiredWithNonDefault] + public virtual int ProgramTypeDescriptorId + { + get + { + if (_programTypeDescriptorId == default(int)) + _programTypeDescriptorId = GeneratedArtifactStaticDependencies.DescriptorResolver.GetDescriptorId("ProgramTypeDescriptor", _programTypeDescriptor); + + return _programTypeDescriptorId; + } + set + { + _programTypeDescriptorId = value; + _programTypeDescriptor = null; + } + } + + private int _programTypeDescriptorId; + private string _programTypeDescriptor; + + public virtual string ProgramTypeDescriptor + { + get + { + if (_programTypeDescriptor == null) + _programTypeDescriptor = GeneratedArtifactStaticDependencies.DescriptorResolver.GetUri("ProgramTypeDescriptor", _programTypeDescriptorId); + + return _programTypeDescriptor; + } + set + { + _programTypeDescriptor = value; + _programTypeDescriptorId = default(int); + } + } + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + private IDictionary _extensions; + + [ValidateExtensions] + public IDictionary Extensions + { + get => _extensions; + set + { + // If the _extensions is null, this is being assigned from the constructor + // for the first time and no special handling is required + if (_extensions != null) + { + // For extensions that have already been initialized by the extensions factory, + // we need to copy any "implicit" extension object entries over to the incoming + // value dictionary being assigned by NHibernate because it won't have them, + // but they must be there for correct handling of extensions for the API. + foreach (var key in _extensions.Keys) + { + if (!value.Contains(key)) + { + value[key] = _extensions[key]; + } + } + } + + _extensions = value; + } + } + + [ValidateAggregateExtensions(typeof(StudentSectionAssociationProgram))] + public IDictionary AggregateExtensions { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Reference Data + // ------------------------------------------------------------- + public virtual NHibernate.ProgramAggregate.EdFi.ProgramReferenceData ProgramReferenceData { get; set; } + + /// + /// Read-only property that allows the Program discriminator value to be mapped to the resource reference. + /// + string Entities.Common.EdFi.IStudentSectionAssociationProgram.ProgramDiscriminator + { + get { return ProgramReferenceData?.Discriminator; } + set { } + } + + /// + /// Read-only property that allows the Program resource identifier value to be mapped to the resource reference. + /// + Guid? Entities.Common.EdFi.IStudentSectionAssociationProgram.ProgramResourceId + { + get { return ProgramReferenceData?.Id; } + set { } + } + + // ------------------------------------------------------------- + + //============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // Provide lookup property map + private static readonly Dictionary _idPropertyByLookupProperty = new Dictionary(StringComparer.InvariantCultureIgnoreCase) + { + { "ProgramTypeDescriptor", new LookupColumnDetails { PropertyName = "ProgramTypeDescriptorId", LookupTypeName = "ProgramTypeDescriptor"} }, + }; + + Dictionary IHasLookupColumnPropertyMap.IdPropertyByLookupProperty + { + get { return _idPropertyByLookupProperty; } + } + + // Provide primary key information + OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() + { + // Get parent key values + var keyValues = (StudentSectionAssociation as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + + // Add current key values + keyValues.Add("EducationOrganizationId", EducationOrganizationId); + keyValues.Add("ProgramName", ProgramName); + keyValues.Add("ProgramTypeDescriptorId", ProgramTypeDescriptorId); + + return keyValues; + } + + #region Overrides for Equals() and GetHashCode() + public override bool Equals(object obj) + { + var compareTo = obj as IHasPrimaryKeyValues; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + var theseKeys = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + var thoseKeys = compareTo.GetPrimaryKeyValues(); + + foreach (DictionaryEntry entry in theseKeys) + { + if (entry.Value is string) + { + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((string) entry.Value, (string) thoseKeys[entry.Key])) + { + return false; + } + } + else + { + if (!entry.Value.Equals(thoseKeys[entry.Key])) + return false; + } + } + + return true; + } + + public override int GetHashCode() + { + var keyValues = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + + if (keyValues.Count == 0) + return base.GetHashCode(); + + var hashCode = new HashCode(); + + foreach (DictionaryEntry entry in keyValues) + { + if (entry.Value is string) + { + hashCode.Add(entry.Value as string, GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer); + } + else + { + hashCode.Add(entry.Value); + } + } + + return hashCode.ToHashCode(); + } + #endregion + bool ISynchronizable.Synchronize(object target) + { + return this.SynchronizeTo((Entities.Common.EdFi.IStudentSectionAssociationProgram)target); + } + + void IMappable.Map(object target) + { + this.MapTo((Entities.Common.EdFi.IStudentSectionAssociationProgram) target, null); + } + + void IChildEntity.SetParent(object value) + { + StudentSectionAssociation = (StudentSectionAssociation) value; + } + } } // Aggregate: StudentSectionAttendanceEvent @@ -148283,6 +149491,190 @@ void IMappable.Map(object target) } } +// Aggregate: SupporterMilitaryConnectionDescriptor + +namespace EdFi.Ods.Entities.NHibernate.SupporterMilitaryConnectionDescriptorAggregate.EdFi +{ +// disable warnings for inheritance from classes marked Obsolete within this generated code only +#pragma warning disable 612, 618 + + /// + /// A class which represents the edfi.SupporterMilitaryConnectionDescriptor table of the SupporterMilitaryConnectionDescriptor aggregate in the ODS database. + /// + [Serializable, Schema("edfi")] + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptor : DescriptorAggregate.EdFi.Descriptor, + Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor, IHasPrimaryKeyValues, IHasLookupColumnPropertyMap, IEdFiDescriptor + { + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature] + public virtual int SupporterMilitaryConnectionDescriptorId + { + get { return base.DescriptorId; } + set { base.DescriptorId = value; } + } + + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + string IDescriptor.CodeValue + { + get { return CodeValue; } + set { CodeValue = value; } + } + string IDescriptor.Description + { + get { return Description; } + set { Description = value; } + } + DateTime? IDescriptor.EffectiveBeginDate + { + get { return EffectiveBeginDate; } + set { EffectiveBeginDate = value; } + } + DateTime? IDescriptor.EffectiveEndDate + { + get { return EffectiveEndDate; } + set { EffectiveEndDate = value; } + } + string IDescriptor.Namespace + { + get { return Namespace; } + set { Namespace = value; } + } + int? IDescriptor.PriorDescriptorId + { + get { return PriorDescriptorId; } + set { PriorDescriptorId = value; } + } + string IDescriptor.ShortDescription + { + get { return ShortDescription; } + set { ShortDescription = value; } + } + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Reference Data + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + //============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // Provide lookup property map + private static readonly Dictionary _idPropertyByLookupProperty = new Dictionary(StringComparer.InvariantCultureIgnoreCase) + { + }; + + Dictionary IHasLookupColumnPropertyMap.IdPropertyByLookupProperty + { + get { return _idPropertyByLookupProperty; } + } + + // Provide primary key information + OrderedDictionary IHasPrimaryKeyValues.GetPrimaryKeyValues() + { + // Initialize a new dictionary to hold the key values + var keyValues = new OrderedDictionary(); + + // Add current key values + keyValues.Add("SupporterMilitaryConnectionDescriptorId", SupporterMilitaryConnectionDescriptorId); + + return keyValues; + } + + #region Overrides for Equals() and GetHashCode() + public override bool Equals(object obj) + { + var compareTo = obj as IHasPrimaryKeyValues; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + var theseKeys = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + var thoseKeys = compareTo.GetPrimaryKeyValues(); + + foreach (DictionaryEntry entry in theseKeys) + { + if (entry.Value is string) + { + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((string) entry.Value, (string) thoseKeys[entry.Key])) + { + return false; + } + } + else + { + if (!entry.Value.Equals(thoseKeys[entry.Key])) + return false; + } + } + + return true; + } + + public override int GetHashCode() + { + var keyValues = (this as IHasPrimaryKeyValues).GetPrimaryKeyValues(); + + if (keyValues.Count == 0) + return base.GetHashCode(); + + var hashCode = new HashCode(); + + foreach (DictionaryEntry entry in keyValues) + { + if (entry.Value is string) + { + hashCode.Add(entry.Value as string, GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer); + } + else + { + hashCode.Add(entry.Value); + } + } + + return hashCode.ToHashCode(); + } + #endregion + bool ISynchronizable.Synchronize(object target) + { + return this.SynchronizeTo((Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor)target); + } + + void IMappable.Map(object target) + { + this.MapTo((Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor) target, null); + } + + } +} // Aggregate: Survey namespace EdFi.Ods.Entities.NHibernate.SurveyAggregate.EdFi diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Entities_EntitiesForQueries.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Entities_EntitiesForQueries.generated.approved.cs index 82d5932f75..5e3b435726 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Entities_EntitiesForQueries.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Entities_EntitiesForQueries.generated.approved.cs @@ -3591,6 +3591,7 @@ public class ContactQ : AggregateRootWithCompositeKey // ------------------------------------------------------------- public virtual string ContactUniqueId { get; set; } public virtual string FirstName { get; set; } + public virtual string GenderIdentity { get; set; } public virtual string GenerationCodeSuffix { get; set; } public virtual int? HighestCompletedLevelOfEducationDescriptorId { get; set; } public virtual string LastSurname { get; set; } @@ -5176,6 +5177,7 @@ public class CourseTranscriptQ : AggregateRootWithCompositeKey public virtual string FinalLetterGradeEarned { get; set; } public virtual decimal? FinalNumericGradeEarned { get; set; } public virtual int? MethodCreditEarnedDescriptorId { get; set; } + public virtual int? ResponsibleTeacherStaffUSI { get; set; } public virtual int? WhenTakenGradeLevelDescriptorId { get; set; } // ------------------------------------------------------------- @@ -5187,6 +5189,8 @@ public class CourseTranscriptQ : AggregateRootWithCompositeKey public virtual ICollection CourseTranscriptCreditCategories { get; set; } public virtual ICollection CourseTranscriptEarnedAdditionalCredits { get; set; } public virtual ICollection CourseTranscriptPartialCourseTranscriptAwards { get; set; } + public virtual ICollection CourseTranscriptPrograms { get; set; } + public virtual ICollection CourseTranscriptSections { get; set; } // ------------------------------------------------------------- @@ -5202,6 +5206,7 @@ public class CourseTranscriptQ : AggregateRootWithCompositeKey protected virtual NHibernate.QueryModels.CreditTypeDescriptorAggregate.EdFi.CreditTypeDescriptorQ EarnedCreditTypeDescriptor { get; set; } protected virtual NHibernate.QueryModels.EducationOrganizationAggregate.EdFi.EducationOrganizationQ ExternalEducationOrganization { get; set; } protected virtual NHibernate.QueryModels.MethodCreditEarnedDescriptorAggregate.EdFi.MethodCreditEarnedDescriptorQ MethodCreditEarnedDescriptor { get; set; } + protected virtual NHibernate.QueryModels.StaffAggregate.EdFi.StaffQ ResponsibleTeacherStaff { get; set; } protected virtual NHibernate.QueryModels.StudentAcademicRecordAggregate.EdFi.StudentAcademicRecordQ StudentAcademicRecord { get; set; } protected virtual NHibernate.QueryModels.GradeLevelDescriptorAggregate.EdFi.GradeLevelDescriptorQ WhenTakenGradeLevelDescriptor { get; set; } // ------------------------------------------------------------- @@ -5429,6 +5434,100 @@ public class CourseTranscriptPartialCourseTranscriptAwardsQ : EntityWithComposit protected virtual NHibernate.QueryModels.MethodCreditEarnedDescriptorAggregate.EdFi.MethodCreditEarnedDescriptorQ MethodCreditEarnedDescriptor { get; set; } // ------------------------------------------------------------- } + + /// + /// A class which represents the edfi.CourseTranscriptProgram table of the CourseTranscript aggregate in the ODS database. + /// + [Serializable] + [ExcludeFromCodeCoverage] + public class CourseTranscriptProgramQ : EntityWithCompositeKey + { + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature, JsonIgnore, IgnoreDataMember] + public virtual NHibernate.QueryModels.CourseTranscriptAggregate.EdFi.CourseTranscriptQ CourseTranscript { get; set; } + [DomainSignature] + public virtual string ProgramName { get; set; } + [DomainSignature] + public virtual int ProgramTypeDescriptorId { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Discriminator + // ------------------------------------------------------------- + + public virtual string Discriminator { get; set; } + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + + // ============================================================= + // External references for HQL Queries + // ------------------------------------------------------------- + + // External references for NHibernate mappings and HQL query usage + protected virtual NHibernate.QueryModels.ProgramAggregate.EdFi.ProgramQ Program { get; set; } + // ------------------------------------------------------------- + } + + /// + /// A class which represents the edfi.CourseTranscriptSection table of the CourseTranscript aggregate in the ODS database. + /// + [Serializable] + [ExcludeFromCodeCoverage] + public class CourseTranscriptSectionQ : EntityWithCompositeKey + { + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature, JsonIgnore, IgnoreDataMember] + public virtual NHibernate.QueryModels.CourseTranscriptAggregate.EdFi.CourseTranscriptQ CourseTranscript { get; set; } + [DomainSignature] + public virtual string LocalCourseCode { get; set; } + [DomainSignature] + public virtual long SchoolId { get; set; } + [DomainSignature] + public virtual string SectionIdentifier { get; set; } + [DomainSignature] + public virtual string SessionName { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Discriminator + // ------------------------------------------------------------- + + public virtual string Discriminator { get; set; } + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + + // ============================================================= + // External references for HQL Queries + // ------------------------------------------------------------- + + // External references for NHibernate mappings and HQL query usage + protected virtual NHibernate.QueryModels.SectionAggregate.EdFi.SectionQ Section { get; set; } + // ------------------------------------------------------------- + } } // Aggregate: Credential @@ -9225,7 +9324,7 @@ public class GradeQ : AggregateRootWithCompositeKey [DomainSignature] public virtual int GradingPeriodDescriptorId { get; set; } [DomainSignature] - public virtual int GradingPeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } [DomainSignature] public virtual short GradingPeriodSchoolYear { get; set; } [DomainSignature] @@ -9369,9 +9468,9 @@ public class GradebookEntryQ : AggregateRootWithCompositeKey public virtual TimeSpan? DueTime { get; set; } public virtual int? GradebookEntryTypeDescriptorId { get; set; } public virtual int? GradingPeriodDescriptorId { get; set; } + public virtual string GradingPeriodName { get; set; } public virtual string LocalCourseCode { get; set; } public virtual decimal? MaxPoints { get; set; } - public virtual int? PeriodSequence { get; set; } public virtual long? SchoolId { get; set; } public virtual short? SchoolYear { get; set; } public virtual string SectionIdentifier { get; set; } @@ -9702,7 +9801,7 @@ public class GradingPeriodQ : AggregateRootWithCompositeKey [DomainSignature] public virtual int GradingPeriodDescriptorId { get; set; } [DomainSignature] - public virtual int PeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } [DomainSignature] public virtual long SchoolId { get; set; } [DomainSignature] @@ -9720,6 +9819,7 @@ public class GradingPeriodQ : AggregateRootWithCompositeKey // ------------------------------------------------------------- public virtual DateTime BeginDate { get; set; } public virtual DateTime EndDate { get; set; } + public virtual int? PeriodSequence { get; set; } public virtual int TotalInstructionalDays { get; set; } // ------------------------------------------------------------- @@ -15720,6 +15820,9 @@ public class ProgramQ : AggregateRootWithCompositeKey #pragma warning disable 114 protected virtual ICollection CohortPrograms { get; set; } #pragma warning restore 114 + #pragma warning disable 114 + protected virtual ICollection CourseTranscriptPrograms { get; set; } + #pragma warning restore 114 #pragma warning disable 114 protected virtual ICollection GeneralStudentProgramAssociations { get; set; } #pragma warning restore 114 @@ -15738,6 +15841,9 @@ public class ProgramQ : AggregateRootWithCompositeKey #pragma warning disable 114 protected virtual ICollection StudentProgramAttendanceEvents { get; set; } #pragma warning restore 114 + #pragma warning disable 114 + protected virtual ICollection StudentSectionAssociationPrograms { get; set; } + #pragma warning restore 114 #pragma warning disable 114 protected virtual ICollection StudentSpecialEducationProgramEligibilityAssociations { get; set; } #pragma warning restore 114 @@ -17316,7 +17422,7 @@ public class ReportCardQ : AggregateRootWithCompositeKey [DomainSignature] public virtual int GradingPeriodDescriptorId { get; set; } [DomainSignature] - public virtual int GradingPeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } [DomainSignature] public virtual long GradingPeriodSchoolId { get; set; } [DomainSignature] @@ -18587,6 +18693,7 @@ public class SectionQ : AggregateRootWithCompositeKey public virtual bool? OfficialAttendancePeriod { get; set; } public virtual int? PopulationServedDescriptorId { get; set; } public virtual string SectionName { get; set; } + public virtual int? SectionTypeDescriptorId { get; set; } public virtual int? SequenceOfCourse { get; set; } // ------------------------------------------------------------- @@ -18609,6 +18716,9 @@ public class SectionQ : AggregateRootWithCompositeKey #pragma warning disable 114 protected virtual ICollection AssessmentSections { get; set; } #pragma warning restore 114 + #pragma warning disable 114 + protected virtual ICollection CourseTranscriptSections { get; set; } + #pragma warning restore 114 #pragma warning disable 114 protected virtual ICollection GradebookEntries { get; set; } #pragma warning restore 114 @@ -18640,6 +18750,7 @@ public class SectionQ : AggregateRootWithCompositeKey protected virtual NHibernate.QueryModels.SchoolAggregate.EdFi.SchoolQ LocationSchool { get; set; } protected virtual NHibernate.QueryModels.MediumOfInstructionDescriptorAggregate.EdFi.MediumOfInstructionDescriptorQ MediumOfInstructionDescriptor { get; set; } protected virtual NHibernate.QueryModels.PopulationServedDescriptorAggregate.EdFi.PopulationServedDescriptorQ PopulationServedDescriptor { get; set; } + protected virtual NHibernate.QueryModels.SectionTypeDescriptorAggregate.EdFi.SectionTypeDescriptorQ SectionTypeDescriptor { get; set; } // ------------------------------------------------------------- } @@ -18966,6 +19077,48 @@ public class SectionCharacteristicDescriptorQ : QueryModels.DescriptorAggregate. // ------------------------------------------------------------- } } +// Aggregate: SectionTypeDescriptor + +namespace EdFi.Ods.Entities.NHibernate.QueryModels.SectionTypeDescriptorAggregate.EdFi +{ + + /// + /// A class which represents the edfi.SectionTypeDescriptor table of the SectionTypeDescriptor aggregate in the ODS database. + /// + [Serializable] + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptorQ : QueryModels.DescriptorAggregate.EdFi.DescriptorQ + { + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature] + public virtual int SectionTypeDescriptorId { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + + // ============================================================= + // External references for HQL Queries + // ------------------------------------------------------------- + + // External references for NHibernate mappings and HQL query usage + #pragma warning disable 114 + protected virtual ICollection Sections { get; set; } + #pragma warning restore 114 + // ------------------------------------------------------------- + } +} // Aggregate: SeparationDescriptor namespace EdFi.Ods.Entities.NHibernate.QueryModels.SeparationDescriptorAggregate.EdFi @@ -19220,7 +19373,7 @@ public class SessionGradingPeriodQ : EntityWithCompositeKey [DomainSignature] public virtual int GradingPeriodDescriptorId { get; set; } [DomainSignature] - public virtual int PeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } // ------------------------------------------------------------- // ============================================================= @@ -19565,6 +19718,7 @@ public class StaffQ : AggregateRootWithCompositeKey public virtual DateTime? BirthDate { get; set; } public virtual int? CitizenshipStatusDescriptorId { get; set; } public virtual string FirstName { get; set; } + public virtual string GenderIdentity { get; set; } public virtual string GenerationCodeSuffix { get; set; } public virtual int? HighestCompletedLevelOfEducationDescriptorId { get; set; } public virtual bool? HighlyQualifiedTeacher { get; set; } @@ -19610,6 +19764,9 @@ public class StaffQ : AggregateRootWithCompositeKey // ------------------------------------------------------------- // External references for NHibernate mappings and HQL query usage + #pragma warning disable 114 + protected virtual ICollection CourseTranscripts { get; set; } + #pragma warning restore 114 #pragma warning disable 114 protected virtual ICollection DisciplineActionStaffs { get; set; } #pragma warning restore 114 @@ -21047,6 +21204,7 @@ public class StaffEducationOrganizationEmploymentAssociationQ : AggregateRootWit // ============================================================= // Properties // ------------------------------------------------------------- + public virtual decimal? AnnualWage { get; set; } public virtual string CredentialIdentifier { get; set; } public virtual string Department { get; set; } public virtual DateTime? EndDate { get; set; } @@ -22380,7 +22538,7 @@ public class StudentAcademicRecordReportCardQ : EntityWithCompositeKey [DomainSignature] public virtual int GradingPeriodDescriptorId { get; set; } [DomainSignature] - public virtual int GradingPeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } [DomainSignature] public virtual long GradingPeriodSchoolId { get; set; } [DomainSignature] @@ -23106,7 +23264,7 @@ public class StudentCompetencyObjectiveQ : AggregateRootWithCompositeKey [DomainSignature] public virtual int GradingPeriodDescriptorId { get; set; } [DomainSignature] - public virtual int GradingPeriodSequence { get; set; } + public virtual string GradingPeriodName { get; set; } [DomainSignature] public virtual long GradingPeriodSchoolId { get; set; } [DomainSignature] @@ -23646,6 +23804,7 @@ public class StudentEducationOrganizationAssociationQ : AggregateRootWithComposi // Properties // ------------------------------------------------------------- public virtual int? BarrierToInternetAccessInResidenceDescriptorId { get; set; } + public virtual string GenderIdentity { get; set; } public virtual bool? HispanicLatinoEthnicity { get; set; } public virtual bool? InternetAccessInResidence { get; set; } public virtual int? InternetAccessTypeInResidenceDescriptorId { get; set; } @@ -23656,7 +23815,8 @@ public class StudentEducationOrganizationAssociationQ : AggregateRootWithComposi public virtual int? PrimaryLearningDeviceAwayFromSchoolDescriptorId { get; set; } public virtual int? PrimaryLearningDeviceProviderDescriptorId { get; set; } public virtual string ProfileThumbnail { get; set; } - public virtual int SexDescriptorId { get; set; } + public virtual int? SexDescriptorId { get; set; } + public virtual int? SupporterMilitaryConnectionDescriptorId { get; set; } // ------------------------------------------------------------- // ============================================================= @@ -23693,6 +23853,7 @@ public class StudentEducationOrganizationAssociationQ : AggregateRootWithComposi protected virtual NHibernate.QueryModels.PrimaryLearningDeviceProviderDescriptorAggregate.EdFi.PrimaryLearningDeviceProviderDescriptorQ PrimaryLearningDeviceProviderDescriptor { get; set; } protected virtual NHibernate.QueryModels.SexDescriptorAggregate.EdFi.SexDescriptorQ SexDescriptor { get; set; } protected virtual NHibernate.QueryModels.StudentAggregate.EdFi.StudentQ Student { get; set; } + protected virtual NHibernate.QueryModels.SupporterMilitaryConnectionDescriptorAggregate.EdFi.SupporterMilitaryConnectionDescriptorQ SupporterMilitaryConnectionDescriptor { get; set; } // ------------------------------------------------------------- } @@ -26057,6 +26218,7 @@ public class StudentSectionAssociationQ : AggregateRootWithCompositeKey // ============================================================= // Collections // ------------------------------------------------------------- + public virtual ICollection StudentSectionAssociationPrograms { get; set; } // ------------------------------------------------------------- @@ -26079,6 +26241,53 @@ public class StudentSectionAssociationQ : AggregateRootWithCompositeKey protected virtual NHibernate.QueryModels.StudentAggregate.EdFi.StudentQ Student { get; set; } // ------------------------------------------------------------- } + + /// + /// A class which represents the edfi.StudentSectionAssociationProgram table of the StudentSectionAssociation aggregate in the ODS database. + /// + [Serializable] + [ExcludeFromCodeCoverage] + public class StudentSectionAssociationProgramQ : EntityWithCompositeKey + { + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature, JsonIgnore, IgnoreDataMember] + public virtual NHibernate.QueryModels.StudentSectionAssociationAggregate.EdFi.StudentSectionAssociationQ StudentSectionAssociation { get; set; } + [DomainSignature] + public virtual long EducationOrganizationId { get; set; } + [DomainSignature] + public virtual string ProgramName { get; set; } + [DomainSignature] + public virtual int ProgramTypeDescriptorId { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Discriminator + // ------------------------------------------------------------- + + public virtual string Discriminator { get; set; } + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + + // ============================================================= + // External references for HQL Queries + // ------------------------------------------------------------- + + // External references for NHibernate mappings and HQL query usage + protected virtual NHibernate.QueryModels.ProgramAggregate.EdFi.ProgramQ Program { get; set; } + // ------------------------------------------------------------- + } } // Aggregate: StudentSectionAttendanceEvent @@ -26660,6 +26869,48 @@ public class SubmissionStatusDescriptorQ : QueryModels.DescriptorAggregate.EdFi. // ------------------------------------------------------------- } } +// Aggregate: SupporterMilitaryConnectionDescriptor + +namespace EdFi.Ods.Entities.NHibernate.QueryModels.SupporterMilitaryConnectionDescriptorAggregate.EdFi +{ + + /// + /// A class which represents the edfi.SupporterMilitaryConnectionDescriptor table of the SupporterMilitaryConnectionDescriptor aggregate in the ODS database. + /// + [Serializable] + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptorQ : QueryModels.DescriptorAggregate.EdFi.DescriptorQ + { + + // ============================================================= + // Primary Key + // ------------------------------------------------------------- + [DomainSignature] + public virtual int SupporterMilitaryConnectionDescriptorId { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + + // ============================================================= + // External references for HQL Queries + // ------------------------------------------------------------- + + // External references for NHibernate mappings and HQL query usage + #pragma warning disable 114 + protected virtual ICollection StudentEducationOrganizationAssociations { get; set; } + #pragma warning restore 114 + // ------------------------------------------------------------- + } +} // Aggregate: Survey namespace EdFi.Ods.Entities.NHibernate.QueryModels.SurveyAggregate.EdFi diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Interfaces_EntityInterfaces.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Interfaces_EntityInterfaces.generated.approved.cs index dec7c7eba3..df7abd1b61 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Interfaces_EntityInterfaces.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Interfaces_EntityInterfaces.generated.approved.cs @@ -5537,6 +5537,7 @@ public interface IContact : ISynchronizable, IMappable, IHasExtensions, IHasIden // Non-PK properties string FirstName { get; set; } + string GenderIdentity { get; set; } string GenerationCodeSuffix { get; set; } string HighestCompletedLevelOfEducationDescriptor { get; set; } string LastSurname { get; set; } @@ -5582,6 +5583,7 @@ public ContactMappingContract( bool isContactTelephonesSupported, bool isContactUniqueIdSupported, bool isFirstNameSupported, + bool isGenderIdentitySupported, bool isGenerationCodeSuffixSupported, bool isHighestCompletedLevelOfEducationDescriptorSupported, bool isLastSurnameSupported, @@ -5613,6 +5615,7 @@ IReadOnlyList supportedExtensions IsContactTelephonesSupported = isContactTelephonesSupported; IsContactUniqueIdSupported = isContactUniqueIdSupported; IsFirstNameSupported = isFirstNameSupported; + IsGenderIdentitySupported = isGenderIdentitySupported; IsGenerationCodeSuffixSupported = isGenerationCodeSuffixSupported; IsHighestCompletedLevelOfEducationDescriptorSupported = isHighestCompletedLevelOfEducationDescriptorSupported; IsLastSurnameSupported = isLastSurnameSupported; @@ -5644,6 +5647,7 @@ IReadOnlyList supportedExtensions public bool IsContactTelephonesSupported { get; } public bool IsContactUniqueIdSupported { get; } public bool IsFirstNameSupported { get; } + public bool IsGenderIdentitySupported { get; } public bool IsGenerationCodeSuffixSupported { get; } public bool IsHighestCompletedLevelOfEducationDescriptorSupported { get; } public bool IsLastSurnameSupported { get; } @@ -5686,6 +5690,8 @@ bool IMappingContract.IsMemberSupported(string memberName) return IsContactUniqueIdSupported; case "FirstName": return IsFirstNameSupported; + case "GenderIdentity": + return IsGenderIdentitySupported; case "GenerationCodeSuffix": return IsGenerationCodeSuffixSupported; case "HighestCompletedLevelOfEducationDescriptor": @@ -8085,6 +8091,7 @@ public interface ICourseTranscript : ISynchronizable, IMappable, IHasExtensions, string FinalLetterGradeEarned { get; set; } decimal? FinalNumericGradeEarned { get; set; } string MethodCreditEarnedDescriptor { get; set; } + string ResponsibleTeacherStaffUniqueId { get; set; } string WhenTakenGradeLevelDescriptor { get; set; } // One-to-one relationships @@ -8095,12 +8102,16 @@ public interface ICourseTranscript : ISynchronizable, IMappable, IHasExtensions, ICollection CourseTranscriptCreditCategories { get; set; } ICollection CourseTranscriptEarnedAdditionalCredits { get; set; } ICollection CourseTranscriptPartialCourseTranscriptAwards { get; set; } + ICollection CourseTranscriptPrograms { get; set; } + ICollection CourseTranscriptSections { get; set; } // Resource reference data Guid? CourseResourceId { get; set; } string CourseDiscriminator { get; set; } Guid? ExternalEducationOrganizationResourceId { get; set; } string ExternalEducationOrganizationDiscriminator { get; set; } + Guid? ResponsibleTeacherStaffResourceId { get; set; } + string ResponsibleTeacherStaffDiscriminator { get; set; } Guid? StudentAcademicRecordResourceId { get; set; } string StudentAcademicRecordDiscriminator { get; set; } } @@ -8125,6 +8136,8 @@ public CourseTranscriptMappingContract( bool isCourseTranscriptCreditCategoriesSupported, bool isCourseTranscriptEarnedAdditionalCreditsSupported, bool isCourseTranscriptPartialCourseTranscriptAwardsSupported, + bool isCourseTranscriptProgramsSupported, + bool isCourseTranscriptSectionsSupported, bool isEarnedCreditConversionSupported, bool isEarnedCreditsSupported, bool isEarnedCreditTypeDescriptorSupported, @@ -8133,12 +8146,15 @@ public CourseTranscriptMappingContract( bool isFinalLetterGradeEarnedSupported, bool isFinalNumericGradeEarnedSupported, bool isMethodCreditEarnedDescriptorSupported, + bool isResponsibleTeacherStaffUniqueIdSupported, bool isWhenTakenGradeLevelDescriptorSupported, Func isCourseTranscriptAcademicSubjectIncluded, Func isCourseTranscriptAlternativeCourseIdentificationCodeIncluded, Func isCourseTranscriptCreditCategoryIncluded, Func isCourseTranscriptEarnedAdditionalCreditsIncluded, Func isCourseTranscriptPartialCourseTranscriptAwardsIncluded, + Func isCourseTranscriptProgramIncluded, + Func isCourseTranscriptSectionIncluded, IReadOnlyList supportedExtensions ) { @@ -8155,6 +8171,8 @@ IReadOnlyList supportedExtensions IsCourseTranscriptCreditCategoriesSupported = isCourseTranscriptCreditCategoriesSupported; IsCourseTranscriptEarnedAdditionalCreditsSupported = isCourseTranscriptEarnedAdditionalCreditsSupported; IsCourseTranscriptPartialCourseTranscriptAwardsSupported = isCourseTranscriptPartialCourseTranscriptAwardsSupported; + IsCourseTranscriptProgramsSupported = isCourseTranscriptProgramsSupported; + IsCourseTranscriptSectionsSupported = isCourseTranscriptSectionsSupported; IsEarnedCreditConversionSupported = isEarnedCreditConversionSupported; IsEarnedCreditsSupported = isEarnedCreditsSupported; IsEarnedCreditTypeDescriptorSupported = isEarnedCreditTypeDescriptorSupported; @@ -8163,12 +8181,15 @@ IReadOnlyList supportedExtensions IsFinalLetterGradeEarnedSupported = isFinalLetterGradeEarnedSupported; IsFinalNumericGradeEarnedSupported = isFinalNumericGradeEarnedSupported; IsMethodCreditEarnedDescriptorSupported = isMethodCreditEarnedDescriptorSupported; + IsResponsibleTeacherStaffUniqueIdSupported = isResponsibleTeacherStaffUniqueIdSupported; IsWhenTakenGradeLevelDescriptorSupported = isWhenTakenGradeLevelDescriptorSupported; IsCourseTranscriptAcademicSubjectIncluded = isCourseTranscriptAcademicSubjectIncluded; IsCourseTranscriptAlternativeCourseIdentificationCodeIncluded = isCourseTranscriptAlternativeCourseIdentificationCodeIncluded; IsCourseTranscriptCreditCategoryIncluded = isCourseTranscriptCreditCategoryIncluded; IsCourseTranscriptEarnedAdditionalCreditsIncluded = isCourseTranscriptEarnedAdditionalCreditsIncluded; IsCourseTranscriptPartialCourseTranscriptAwardsIncluded = isCourseTranscriptPartialCourseTranscriptAwardsIncluded; + IsCourseTranscriptProgramIncluded = isCourseTranscriptProgramIncluded; + IsCourseTranscriptSectionIncluded = isCourseTranscriptSectionIncluded; SupportedExtensions = supportedExtensions; } @@ -8185,6 +8206,8 @@ IReadOnlyList supportedExtensions public bool IsCourseTranscriptCreditCategoriesSupported { get; } public bool IsCourseTranscriptEarnedAdditionalCreditsSupported { get; } public bool IsCourseTranscriptPartialCourseTranscriptAwardsSupported { get; } + public bool IsCourseTranscriptProgramsSupported { get; } + public bool IsCourseTranscriptSectionsSupported { get; } public bool IsEarnedCreditConversionSupported { get; } public bool IsEarnedCreditsSupported { get; } public bool IsEarnedCreditTypeDescriptorSupported { get; } @@ -8193,12 +8216,15 @@ IReadOnlyList supportedExtensions public bool IsFinalLetterGradeEarnedSupported { get; } public bool IsFinalNumericGradeEarnedSupported { get; } public bool IsMethodCreditEarnedDescriptorSupported { get; } + public bool IsResponsibleTeacherStaffUniqueIdSupported { get; } public bool IsWhenTakenGradeLevelDescriptorSupported { get; } public Func IsCourseTranscriptAcademicSubjectIncluded { get; } public Func IsCourseTranscriptAlternativeCourseIdentificationCodeIncluded { get; } public Func IsCourseTranscriptCreditCategoryIncluded { get; } public Func IsCourseTranscriptEarnedAdditionalCreditsIncluded { get; } public Func IsCourseTranscriptPartialCourseTranscriptAwardsIncluded { get; } + public Func IsCourseTranscriptProgramIncluded { get; } + public Func IsCourseTranscriptSectionIncluded { get; } bool IMappingContract.IsMemberSupported(string memberName) { @@ -8230,6 +8256,10 @@ bool IMappingContract.IsMemberSupported(string memberName) return IsCourseTranscriptEarnedAdditionalCreditsSupported; case "CourseTranscriptPartialCourseTranscriptAwards": return IsCourseTranscriptPartialCourseTranscriptAwardsSupported; + case "CourseTranscriptPrograms": + return IsCourseTranscriptProgramsSupported; + case "CourseTranscriptSections": + return IsCourseTranscriptSectionsSupported; case "EarnedCreditConversion": return IsEarnedCreditConversionSupported; case "EarnedCredits": @@ -8246,6 +8276,8 @@ bool IMappingContract.IsMemberSupported(string memberName) return IsFinalNumericGradeEarnedSupported; case "MethodCreditEarnedDescriptor": return IsMethodCreditEarnedDescriptorSupported; + case "ResponsibleTeacherStaffUniqueId": + return IsResponsibleTeacherStaffUniqueIdSupported; case "WhenTakenGradeLevelDescriptor": return IsWhenTakenGradeLevelDescriptorSupported; default: @@ -8564,6 +8596,120 @@ public bool IsExtensionSupported(string name) } } + /// + /// Defines available properties and methods for the abstraction of the CourseTranscriptProgram model. + /// + public interface ICourseTranscriptProgram : ISynchronizable, IMappable, IHasExtensions, IGetByExample + { + // Primary Key properties + [NaturalKeyMember] + ICourseTranscript CourseTranscript { get; set; } + [NaturalKeyMember] + string ProgramName { get; set; } + [NaturalKeyMember] + string ProgramTypeDescriptor { get; set; } + + // Non-PK properties + + // One-to-one relationships + + // Lists + + // Resource reference data + Guid? ProgramResourceId { get; set; } + string ProgramDiscriminator { get; set; } + } + + /// + /// Defines a mapping contract appropriate for a particular context when data is either being mapped or synchronized + /// between entities/resources during API request processing. + /// + public class CourseTranscriptProgramMappingContract : IMappingContract, IExtensionsMappingContract + { + public CourseTranscriptProgramMappingContract( + IReadOnlyList supportedExtensions + ) + { + SupportedExtensions = supportedExtensions; + } + + + bool IMappingContract.IsMemberSupported(string memberName) + { + switch (memberName) + { + default: + throw new Exception($"Unknown member '{memberName}'."); + } + } + + public IReadOnlyList SupportedExtensions { get; } + + public bool IsExtensionSupported(string name) + { + return SupportedExtensions.Contains(name); + } + } + + /// + /// Defines available properties and methods for the abstraction of the CourseTranscriptSection model. + /// + public interface ICourseTranscriptSection : ISynchronizable, IMappable, IHasExtensions, IGetByExample + { + // Primary Key properties + [NaturalKeyMember] + ICourseTranscript CourseTranscript { get; set; } + [NaturalKeyMember] + string LocalCourseCode { get; set; } + [NaturalKeyMember] + long SchoolId { get; set; } + [NaturalKeyMember] + string SectionIdentifier { get; set; } + [NaturalKeyMember] + string SessionName { get; set; } + + // Non-PK properties + + // One-to-one relationships + + // Lists + + // Resource reference data + Guid? SectionResourceId { get; set; } + string SectionDiscriminator { get; set; } + } + + /// + /// Defines a mapping contract appropriate for a particular context when data is either being mapped or synchronized + /// between entities/resources during API request processing. + /// + public class CourseTranscriptSectionMappingContract : IMappingContract, IExtensionsMappingContract + { + public CourseTranscriptSectionMappingContract( + IReadOnlyList supportedExtensions + ) + { + SupportedExtensions = supportedExtensions; + } + + + bool IMappingContract.IsMemberSupported(string memberName) + { + switch (memberName) + { + default: + throw new Exception($"Unknown member '{memberName}'."); + } + } + + public IReadOnlyList SupportedExtensions { get; } + + public bool IsExtensionSupported(string name) + { + return SupportedExtensions.Contains(name); + } + } + /// /// Defines available properties and methods for the abstraction of the Credential model. /// @@ -14317,9 +14463,9 @@ public interface IGrade : ISynchronizable, IMappable, IHasExtensions, IHasIdenti [NaturalKeyMember] string GradingPeriodDescriptor { get; set; } [NaturalKeyMember] - short GradingPeriodSchoolYear { get; set; } + string GradingPeriodName { get; set; } [NaturalKeyMember] - int GradingPeriodSequence { get; set; } + short GradingPeriodSchoolYear { get; set; } [NaturalKeyMember] string LocalCourseCode { get; set; } [NaturalKeyMember] @@ -14446,9 +14592,9 @@ public interface IGradebookEntry : ISynchronizable, IMappable, IHasExtensions, I TimeSpan? DueTime { get; set; } string GradebookEntryTypeDescriptor { get; set; } string GradingPeriodDescriptor { get; set; } + string GradingPeriodName { get; set; } string LocalCourseCode { get; set; } decimal? MaxPoints { get; set; } - int? PeriodSequence { get; set; } long? SchoolId { get; set; } short? SchoolYear { get; set; } string SectionIdentifier { get; set; } @@ -14482,9 +14628,9 @@ public GradebookEntryMappingContract( bool isGradebookEntryLearningStandardsSupported, bool isGradebookEntryTypeDescriptorSupported, bool isGradingPeriodDescriptorSupported, + bool isGradingPeriodNameSupported, bool isLocalCourseCodeSupported, bool isMaxPointsSupported, - bool isPeriodSequenceSupported, bool isSchoolIdSupported, bool isSchoolYearSupported, bool isSectionIdentifierSupported, @@ -14502,9 +14648,9 @@ IReadOnlyList supportedExtensions IsGradebookEntryLearningStandardsSupported = isGradebookEntryLearningStandardsSupported; IsGradebookEntryTypeDescriptorSupported = isGradebookEntryTypeDescriptorSupported; IsGradingPeriodDescriptorSupported = isGradingPeriodDescriptorSupported; + IsGradingPeriodNameSupported = isGradingPeriodNameSupported; IsLocalCourseCodeSupported = isLocalCourseCodeSupported; IsMaxPointsSupported = isMaxPointsSupported; - IsPeriodSequenceSupported = isPeriodSequenceSupported; IsSchoolIdSupported = isSchoolIdSupported; IsSchoolYearSupported = isSchoolYearSupported; IsSectionIdentifierSupported = isSectionIdentifierSupported; @@ -14522,9 +14668,9 @@ IReadOnlyList supportedExtensions public bool IsGradebookEntryLearningStandardsSupported { get; } public bool IsGradebookEntryTypeDescriptorSupported { get; } public bool IsGradingPeriodDescriptorSupported { get; } + public bool IsGradingPeriodNameSupported { get; } public bool IsLocalCourseCodeSupported { get; } public bool IsMaxPointsSupported { get; } - public bool IsPeriodSequenceSupported { get; } public bool IsSchoolIdSupported { get; } public bool IsSchoolYearSupported { get; } public bool IsSectionIdentifierSupported { get; } @@ -14551,12 +14697,12 @@ bool IMappingContract.IsMemberSupported(string memberName) return IsGradebookEntryTypeDescriptorSupported; case "GradingPeriodDescriptor": return IsGradingPeriodDescriptorSupported; + case "GradingPeriodName": + return IsGradingPeriodNameSupported; case "LocalCourseCode": return IsLocalCourseCodeSupported; case "MaxPoints": return IsMaxPointsSupported; - case "PeriodSequence": - return IsPeriodSequenceSupported; case "SchoolId": return IsSchoolIdSupported; case "SchoolYear": @@ -15025,7 +15171,7 @@ public interface IGradingPeriod : ISynchronizable, IMappable, IHasExtensions, IH [NaturalKeyMember] string GradingPeriodDescriptor { get; set; } [NaturalKeyMember] - int PeriodSequence { get; set; } + string GradingPeriodName { get; set; } [NaturalKeyMember] long SchoolId { get; set; } [NaturalKeyMember] @@ -15034,6 +15180,7 @@ public interface IGradingPeriod : ISynchronizable, IMappable, IHasExtensions, IH // Non-PK properties DateTime BeginDate { get; set; } DateTime EndDate { get; set; } + int? PeriodSequence { get; set; } int TotalInstructionalDays { get; set; } // One-to-one relationships @@ -15054,18 +15201,21 @@ public class GradingPeriodMappingContract : IMappingContract, IExtensionsMapping public GradingPeriodMappingContract( bool isBeginDateSupported, bool isEndDateSupported, + bool isPeriodSequenceSupported, bool isTotalInstructionalDaysSupported, IReadOnlyList supportedExtensions ) { IsBeginDateSupported = isBeginDateSupported; IsEndDateSupported = isEndDateSupported; + IsPeriodSequenceSupported = isPeriodSequenceSupported; IsTotalInstructionalDaysSupported = isTotalInstructionalDaysSupported; SupportedExtensions = supportedExtensions; } public bool IsBeginDateSupported { get; } public bool IsEndDateSupported { get; } + public bool IsPeriodSequenceSupported { get; } public bool IsTotalInstructionalDaysSupported { get; } bool IMappingContract.IsMemberSupported(string memberName) @@ -15076,6 +15226,8 @@ bool IMappingContract.IsMemberSupported(string memberName) return IsBeginDateSupported; case "EndDate": return IsEndDateSupported; + case "PeriodSequence": + return IsPeriodSequenceSupported; case "TotalInstructionalDays": return IsTotalInstructionalDaysSupported; default: @@ -26853,12 +27005,12 @@ public interface IReportCard : ISynchronizable, IMappable, IHasExtensions, IHasI [NaturalKeyMember] string GradingPeriodDescriptor { get; set; } [NaturalKeyMember] + string GradingPeriodName { get; set; } + [NaturalKeyMember] long GradingPeriodSchoolId { get; set; } [NaturalKeyMember] short GradingPeriodSchoolYear { get; set; } [NaturalKeyMember] - int GradingPeriodSequence { get; set; } - [NaturalKeyMember] string StudentUniqueId { get; set; } // Non-PK properties @@ -28708,6 +28860,7 @@ public interface ISection : ISynchronizable, IMappable, IHasExtensions, IHasIden bool? OfficialAttendancePeriod { get; set; } string PopulationServedDescriptor { get; set; } string SectionName { get; set; } + string SectionTypeDescriptor { get; set; } int? SequenceOfCourse { get; set; } // One-to-one relationships @@ -28750,6 +28903,7 @@ public SectionMappingContract( bool isSectionNameSupported, bool isSectionOfferedGradeLevelsSupported, bool isSectionProgramsSupported, + bool isSectionTypeDescriptorSupported, bool isSequenceOfCourseSupported, Func isSectionCharacteristicIncluded, Func isSectionClassPeriodIncluded, @@ -28775,6 +28929,7 @@ IReadOnlyList supportedExtensions IsSectionNameSupported = isSectionNameSupported; IsSectionOfferedGradeLevelsSupported = isSectionOfferedGradeLevelsSupported; IsSectionProgramsSupported = isSectionProgramsSupported; + IsSectionTypeDescriptorSupported = isSectionTypeDescriptorSupported; IsSequenceOfCourseSupported = isSequenceOfCourseSupported; IsSectionCharacteristicIncluded = isSectionCharacteristicIncluded; IsSectionClassPeriodIncluded = isSectionClassPeriodIncluded; @@ -28800,6 +28955,7 @@ IReadOnlyList supportedExtensions public bool IsSectionNameSupported { get; } public bool IsSectionOfferedGradeLevelsSupported { get; } public bool IsSectionProgramsSupported { get; } + public bool IsSectionTypeDescriptorSupported { get; } public bool IsSequenceOfCourseSupported { get; } public Func IsSectionCharacteristicIncluded { get; } public Func IsSectionClassPeriodIncluded { get; } @@ -28843,6 +28999,8 @@ bool IMappingContract.IsMemberSupported(string memberName) return IsSectionOfferedGradeLevelsSupported; case "SectionPrograms": return IsSectionProgramsSupported; + case "SectionTypeDescriptor": + return IsSectionTypeDescriptorSupported; case "SequenceOfCourse": return IsSequenceOfCourseSupported; default: @@ -29276,6 +29434,82 @@ public bool IsExtensionSupported(string name) } } + /// + /// Defines available properties and methods for the abstraction of the SectionTypeDescriptor model. + /// + public interface ISectionTypeDescriptor : EdFi.IDescriptor, ISynchronizable, IMappable, IHasIdentifier, IGetByExample + { + // Primary Key properties + [NaturalKeyMember][AutoIncrement] + int SectionTypeDescriptorId { get; set; } + + // Non-PK properties + + // One-to-one relationships + + // Lists + + // Resource reference data + } + + /// + /// Defines a mapping contract appropriate for a particular context when data is either being mapped or synchronized + /// between entities/resources during API request processing. + /// + public class SectionTypeDescriptorMappingContract : IMappingContract + { + public SectionTypeDescriptorMappingContract( + bool isCodeValueSupported, + bool isDescriptionSupported, + bool isEffectiveBeginDateSupported, + bool isEffectiveEndDateSupported, + bool isNamespaceSupported, + bool isPriorDescriptorIdSupported, + bool isShortDescriptionSupported + ) + { + IsCodeValueSupported = isCodeValueSupported; + IsDescriptionSupported = isDescriptionSupported; + IsEffectiveBeginDateSupported = isEffectiveBeginDateSupported; + IsEffectiveEndDateSupported = isEffectiveEndDateSupported; + IsNamespaceSupported = isNamespaceSupported; + IsPriorDescriptorIdSupported = isPriorDescriptorIdSupported; + IsShortDescriptionSupported = isShortDescriptionSupported; + } + + public bool IsCodeValueSupported { get; } + public bool IsDescriptionSupported { get; } + public bool IsEffectiveBeginDateSupported { get; } + public bool IsEffectiveEndDateSupported { get; } + public bool IsNamespaceSupported { get; } + public bool IsPriorDescriptorIdSupported { get; } + public bool IsShortDescriptionSupported { get; } + + bool IMappingContract.IsMemberSupported(string memberName) + { + switch (memberName) + { + case "CodeValue": + return IsCodeValueSupported; + case "Description": + return IsDescriptionSupported; + case "EffectiveBeginDate": + return IsEffectiveBeginDateSupported; + case "EffectiveEndDate": + return IsEffectiveEndDateSupported; + case "Namespace": + return IsNamespaceSupported; + case "PriorDescriptorId": + return IsPriorDescriptorIdSupported; + case "ShortDescription": + return IsShortDescriptionSupported; + default: + throw new Exception($"Unknown member '{memberName}'."); + } + } + + } + /// /// Defines available properties and methods for the abstraction of the SeparationDescriptor model. /// @@ -29665,7 +29899,7 @@ public interface ISessionGradingPeriod : ISynchronizable, IMappable, IHasExtensi [NaturalKeyMember] string GradingPeriodDescriptor { get; set; } [NaturalKeyMember] - int PeriodSequence { get; set; } + string GradingPeriodName { get; set; } // Non-PK properties @@ -30143,6 +30377,7 @@ public interface IStaff : ISynchronizable, IMappable, IHasExtensions, IHasIdenti DateTime? BirthDate { get; set; } string CitizenshipStatusDescriptor { get; set; } string FirstName { get; set; } + string GenderIdentity { get; set; } string GenerationCodeSuffix { get; set; } string HighestCompletedLevelOfEducationDescriptor { get; set; } bool? HighlyQualifiedTeacher { get; set; } @@ -30194,6 +30429,7 @@ public StaffMappingContract( bool isBirthDateSupported, bool isCitizenshipStatusDescriptorSupported, bool isFirstNameSupported, + bool isGenderIdentitySupported, bool isGenerationCodeSuffixSupported, bool isHighestCompletedLevelOfEducationDescriptorSupported, bool isHighlyQualifiedTeacherSupported, @@ -30247,6 +30483,7 @@ IReadOnlyList supportedExtensions IsBirthDateSupported = isBirthDateSupported; IsCitizenshipStatusDescriptorSupported = isCitizenshipStatusDescriptorSupported; IsFirstNameSupported = isFirstNameSupported; + IsGenderIdentitySupported = isGenderIdentitySupported; IsGenerationCodeSuffixSupported = isGenerationCodeSuffixSupported; IsHighestCompletedLevelOfEducationDescriptorSupported = isHighestCompletedLevelOfEducationDescriptorSupported; IsHighlyQualifiedTeacherSupported = isHighlyQualifiedTeacherSupported; @@ -30300,6 +30537,7 @@ IReadOnlyList supportedExtensions public bool IsBirthDateSupported { get; } public bool IsCitizenshipStatusDescriptorSupported { get; } public bool IsFirstNameSupported { get; } + public bool IsGenderIdentitySupported { get; } public bool IsGenerationCodeSuffixSupported { get; } public bool IsHighestCompletedLevelOfEducationDescriptorSupported { get; } public bool IsHighlyQualifiedTeacherSupported { get; } @@ -30358,6 +30596,8 @@ bool IMappingContract.IsMemberSupported(string memberName) return IsCitizenshipStatusDescriptorSupported; case "FirstName": return IsFirstNameSupported; + case "GenderIdentity": + return IsGenderIdentitySupported; case "GenerationCodeSuffix": return IsGenerationCodeSuffixSupported; case "HighestCompletedLevelOfEducationDescriptor": @@ -31539,6 +31779,7 @@ public interface IStaffEducationOrganizationEmploymentAssociation : ISynchroniza string StaffUniqueId { get; set; } // Non-PK properties + decimal? AnnualWage { get; set; } string CredentialIdentifier { get; set; } string Department { get; set; } DateTime? EndDate { get; set; } @@ -31569,6 +31810,7 @@ public interface IStaffEducationOrganizationEmploymentAssociation : ISynchroniza public class StaffEducationOrganizationEmploymentAssociationMappingContract : IMappingContract, IExtensionsMappingContract { public StaffEducationOrganizationEmploymentAssociationMappingContract( + bool isAnnualWageSupported, bool isCredentialIdentifierSupported, bool isDepartmentSupported, bool isEndDateSupported, @@ -31581,6 +31823,7 @@ public StaffEducationOrganizationEmploymentAssociationMappingContract( IReadOnlyList supportedExtensions ) { + IsAnnualWageSupported = isAnnualWageSupported; IsCredentialIdentifierSupported = isCredentialIdentifierSupported; IsDepartmentSupported = isDepartmentSupported; IsEndDateSupported = isEndDateSupported; @@ -31593,6 +31836,7 @@ IReadOnlyList supportedExtensions SupportedExtensions = supportedExtensions; } + public bool IsAnnualWageSupported { get; } public bool IsCredentialIdentifierSupported { get; } public bool IsDepartmentSupported { get; } public bool IsEndDateSupported { get; } @@ -31607,6 +31851,8 @@ bool IMappingContract.IsMemberSupported(string memberName) { switch (memberName) { + case "AnnualWage": + return IsAnnualWageSupported; case "CredentialIdentifier": return IsCredentialIdentifierSupported; case "Department": @@ -34412,11 +34658,11 @@ public interface IStudentAcademicRecordReportCard : ISynchronizable, IMappable, [NaturalKeyMember] string GradingPeriodDescriptor { get; set; } [NaturalKeyMember] + string GradingPeriodName { get; set; } + [NaturalKeyMember] long GradingPeriodSchoolId { get; set; } [NaturalKeyMember] short GradingPeriodSchoolYear { get; set; } - [NaturalKeyMember] - int GradingPeriodSequence { get; set; } // Non-PK properties @@ -35499,12 +35745,12 @@ public interface IStudentCompetencyObjective : ISynchronizable, IMappable, IHasE [NaturalKeyMember] string GradingPeriodDescriptor { get; set; } [NaturalKeyMember] + string GradingPeriodName { get; set; } + [NaturalKeyMember] long GradingPeriodSchoolId { get; set; } [NaturalKeyMember] short GradingPeriodSchoolYear { get; set; } [NaturalKeyMember] - int GradingPeriodSequence { get; set; } - [NaturalKeyMember] string Objective { get; set; } [NaturalKeyMember] long ObjectiveEducationOrganizationId { get; set; } @@ -36237,6 +36483,7 @@ public interface IStudentEducationOrganizationAssociation : ISynchronizable, IMa // Non-PK properties string BarrierToInternetAccessInResidenceDescriptor { get; set; } + string GenderIdentity { get; set; } bool? HispanicLatinoEthnicity { get; set; } bool? InternetAccessInResidence { get; set; } string InternetAccessTypeInResidenceDescriptor { get; set; } @@ -36248,6 +36495,7 @@ public interface IStudentEducationOrganizationAssociation : ISynchronizable, IMa string PrimaryLearningDeviceProviderDescriptor { get; set; } string ProfileThumbnail { get; set; } string SexDescriptor { get; set; } + string SupporterMilitaryConnectionDescriptor { get; set; } // One-to-one relationships @@ -36281,6 +36529,7 @@ public class StudentEducationOrganizationAssociationMappingContract : IMappingCo { public StudentEducationOrganizationAssociationMappingContract( bool isBarrierToInternetAccessInResidenceDescriptorSupported, + bool isGenderIdentitySupported, bool isHispanicLatinoEthnicitySupported, bool isInternetAccessInResidenceSupported, bool isInternetAccessTypeInResidenceDescriptorSupported, @@ -36305,6 +36554,7 @@ public StudentEducationOrganizationAssociationMappingContract( bool isStudentEducationOrganizationAssociationStudentIndicatorsSupported, bool isStudentEducationOrganizationAssociationTelephonesSupported, bool isStudentEducationOrganizationAssociationTribalAffiliationsSupported, + bool isSupporterMilitaryConnectionDescriptorSupported, Func isStudentEducationOrganizationAssociationAddressIncluded, Func isStudentEducationOrganizationAssociationAncestryEthnicOriginIncluded, Func isStudentEducationOrganizationAssociationCohortYearIncluded, @@ -36322,6 +36572,7 @@ IReadOnlyList supportedExtensions ) { IsBarrierToInternetAccessInResidenceDescriptorSupported = isBarrierToInternetAccessInResidenceDescriptorSupported; + IsGenderIdentitySupported = isGenderIdentitySupported; IsHispanicLatinoEthnicitySupported = isHispanicLatinoEthnicitySupported; IsInternetAccessInResidenceSupported = isInternetAccessInResidenceSupported; IsInternetAccessTypeInResidenceDescriptorSupported = isInternetAccessTypeInResidenceDescriptorSupported; @@ -36346,6 +36597,7 @@ IReadOnlyList supportedExtensions IsStudentEducationOrganizationAssociationStudentIndicatorsSupported = isStudentEducationOrganizationAssociationStudentIndicatorsSupported; IsStudentEducationOrganizationAssociationTelephonesSupported = isStudentEducationOrganizationAssociationTelephonesSupported; IsStudentEducationOrganizationAssociationTribalAffiliationsSupported = isStudentEducationOrganizationAssociationTribalAffiliationsSupported; + IsSupporterMilitaryConnectionDescriptorSupported = isSupporterMilitaryConnectionDescriptorSupported; IsStudentEducationOrganizationAssociationAddressIncluded = isStudentEducationOrganizationAssociationAddressIncluded; IsStudentEducationOrganizationAssociationAncestryEthnicOriginIncluded = isStudentEducationOrganizationAssociationAncestryEthnicOriginIncluded; IsStudentEducationOrganizationAssociationCohortYearIncluded = isStudentEducationOrganizationAssociationCohortYearIncluded; @@ -36363,6 +36615,7 @@ IReadOnlyList supportedExtensions } public bool IsBarrierToInternetAccessInResidenceDescriptorSupported { get; } + public bool IsGenderIdentitySupported { get; } public bool IsHispanicLatinoEthnicitySupported { get; } public bool IsInternetAccessInResidenceSupported { get; } public bool IsInternetAccessTypeInResidenceDescriptorSupported { get; } @@ -36387,6 +36640,7 @@ IReadOnlyList supportedExtensions public bool IsStudentEducationOrganizationAssociationStudentIndicatorsSupported { get; } public bool IsStudentEducationOrganizationAssociationTelephonesSupported { get; } public bool IsStudentEducationOrganizationAssociationTribalAffiliationsSupported { get; } + public bool IsSupporterMilitaryConnectionDescriptorSupported { get; } public Func IsStudentEducationOrganizationAssociationAddressIncluded { get; } public Func IsStudentEducationOrganizationAssociationAncestryEthnicOriginIncluded { get; } public Func IsStudentEducationOrganizationAssociationCohortYearIncluded { get; } @@ -36407,6 +36661,8 @@ bool IMappingContract.IsMemberSupported(string memberName) { case "BarrierToInternetAccessInResidenceDescriptor": return IsBarrierToInternetAccessInResidenceDescriptorSupported; + case "GenderIdentity": + return IsGenderIdentitySupported; case "HispanicLatinoEthnicity": return IsHispanicLatinoEthnicitySupported; case "InternetAccessInResidence": @@ -36455,6 +36711,8 @@ bool IMappingContract.IsMemberSupported(string memberName) return IsStudentEducationOrganizationAssociationTelephonesSupported; case "StudentEducationOrganizationAssociationTribalAffiliations": return IsStudentEducationOrganizationAssociationTribalAffiliationsSupported; + case "SupporterMilitaryConnectionDescriptor": + return IsSupporterMilitaryConnectionDescriptorSupported; default: throw new Exception($"Unknown member '{memberName}'."); } @@ -40422,6 +40680,7 @@ public interface IStudentSectionAssociation : ISynchronizable, IMappable, IHasEx // One-to-one relationships // Lists + ICollection StudentSectionAssociationPrograms { get; set; } // Resource reference data Guid? SectionResourceId { get; set; } @@ -40441,7 +40700,9 @@ public StudentSectionAssociationMappingContract( bool isEndDateSupported, bool isHomeroomIndicatorSupported, bool isRepeatIdentifierDescriptorSupported, + bool isStudentSectionAssociationProgramsSupported, bool isTeacherStudentDataLinkExclusionSupported, + Func isStudentSectionAssociationProgramIncluded, IReadOnlyList supportedExtensions ) { @@ -40449,7 +40710,9 @@ IReadOnlyList supportedExtensions IsEndDateSupported = isEndDateSupported; IsHomeroomIndicatorSupported = isHomeroomIndicatorSupported; IsRepeatIdentifierDescriptorSupported = isRepeatIdentifierDescriptorSupported; + IsStudentSectionAssociationProgramsSupported = isStudentSectionAssociationProgramsSupported; IsTeacherStudentDataLinkExclusionSupported = isTeacherStudentDataLinkExclusionSupported; + IsStudentSectionAssociationProgramIncluded = isStudentSectionAssociationProgramIncluded; SupportedExtensions = supportedExtensions; } @@ -40457,7 +40720,9 @@ IReadOnlyList supportedExtensions public bool IsEndDateSupported { get; } public bool IsHomeroomIndicatorSupported { get; } public bool IsRepeatIdentifierDescriptorSupported { get; } + public bool IsStudentSectionAssociationProgramsSupported { get; } public bool IsTeacherStudentDataLinkExclusionSupported { get; } + public Func IsStudentSectionAssociationProgramIncluded { get; } bool IMappingContract.IsMemberSupported(string memberName) { @@ -40471,6 +40736,8 @@ bool IMappingContract.IsMemberSupported(string memberName) return IsHomeroomIndicatorSupported; case "RepeatIdentifierDescriptor": return IsRepeatIdentifierDescriptorSupported; + case "StudentSectionAssociationPrograms": + return IsStudentSectionAssociationProgramsSupported; case "TeacherStudentDataLinkExclusion": return IsTeacherStudentDataLinkExclusionSupported; default: @@ -40486,6 +40753,63 @@ public bool IsExtensionSupported(string name) } } + /// + /// Defines available properties and methods for the abstraction of the StudentSectionAssociationProgram model. + /// + public interface IStudentSectionAssociationProgram : ISynchronizable, IMappable, IHasExtensions, IGetByExample + { + // Primary Key properties + [NaturalKeyMember] + IStudentSectionAssociation StudentSectionAssociation { get; set; } + [NaturalKeyMember] + long EducationOrganizationId { get; set; } + [NaturalKeyMember] + string ProgramName { get; set; } + [NaturalKeyMember] + string ProgramTypeDescriptor { get; set; } + + // Non-PK properties + + // One-to-one relationships + + // Lists + + // Resource reference data + Guid? ProgramResourceId { get; set; } + string ProgramDiscriminator { get; set; } + } + + /// + /// Defines a mapping contract appropriate for a particular context when data is either being mapped or synchronized + /// between entities/resources during API request processing. + /// + public class StudentSectionAssociationProgramMappingContract : IMappingContract, IExtensionsMappingContract + { + public StudentSectionAssociationProgramMappingContract( + IReadOnlyList supportedExtensions + ) + { + SupportedExtensions = supportedExtensions; + } + + + bool IMappingContract.IsMemberSupported(string memberName) + { + switch (memberName) + { + default: + throw new Exception($"Unknown member '{memberName}'."); + } + } + + public IReadOnlyList SupportedExtensions { get; } + + public bool IsExtensionSupported(string name) + { + return SupportedExtensions.Contains(name); + } + } + /// /// Defines available properties and methods for the abstraction of the StudentSectionAttendanceEvent model. /// @@ -41561,6 +41885,82 @@ bool IMappingContract.IsMemberSupported(string memberName) } + /// + /// Defines available properties and methods for the abstraction of the SupporterMilitaryConnectionDescriptor model. + /// + public interface ISupporterMilitaryConnectionDescriptor : EdFi.IDescriptor, ISynchronizable, IMappable, IHasIdentifier, IGetByExample + { + // Primary Key properties + [NaturalKeyMember][AutoIncrement] + int SupporterMilitaryConnectionDescriptorId { get; set; } + + // Non-PK properties + + // One-to-one relationships + + // Lists + + // Resource reference data + } + + /// + /// Defines a mapping contract appropriate for a particular context when data is either being mapped or synchronized + /// between entities/resources during API request processing. + /// + public class SupporterMilitaryConnectionDescriptorMappingContract : IMappingContract + { + public SupporterMilitaryConnectionDescriptorMappingContract( + bool isCodeValueSupported, + bool isDescriptionSupported, + bool isEffectiveBeginDateSupported, + bool isEffectiveEndDateSupported, + bool isNamespaceSupported, + bool isPriorDescriptorIdSupported, + bool isShortDescriptionSupported + ) + { + IsCodeValueSupported = isCodeValueSupported; + IsDescriptionSupported = isDescriptionSupported; + IsEffectiveBeginDateSupported = isEffectiveBeginDateSupported; + IsEffectiveEndDateSupported = isEffectiveEndDateSupported; + IsNamespaceSupported = isNamespaceSupported; + IsPriorDescriptorIdSupported = isPriorDescriptorIdSupported; + IsShortDescriptionSupported = isShortDescriptionSupported; + } + + public bool IsCodeValueSupported { get; } + public bool IsDescriptionSupported { get; } + public bool IsEffectiveBeginDateSupported { get; } + public bool IsEffectiveEndDateSupported { get; } + public bool IsNamespaceSupported { get; } + public bool IsPriorDescriptorIdSupported { get; } + public bool IsShortDescriptionSupported { get; } + + bool IMappingContract.IsMemberSupported(string memberName) + { + switch (memberName) + { + case "CodeValue": + return IsCodeValueSupported; + case "Description": + return IsDescriptionSupported; + case "EffectiveBeginDate": + return IsEffectiveBeginDateSupported; + case "EffectiveEndDate": + return IsEffectiveEndDateSupported; + case "Namespace": + return IsNamespaceSupported; + case "PriorDescriptorId": + return IsPriorDescriptorIdSupported; + case "ShortDescription": + return IsShortDescriptionSupported; + default: + throw new Exception($"Unknown member '{memberName}'."); + } + } + + } + /// /// Defines available properties and methods for the abstraction of the Survey model. /// diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Mappers_EntityMapper.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Mappers_EntityMapper.generated.approved.cs index a9b2197452..5a0dace7c5 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Mappers_EntityMapper.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Models_Mappers_EntityMapper.generated.approved.cs @@ -10277,6 +10277,13 @@ public static bool SynchronizeTo(this IContact source, IContact target) isModified = true; } + if ((mappingContract?.IsGenderIdentitySupported != false) + && target.GenderIdentity != source.GenderIdentity) + { + target.GenderIdentity = source.GenderIdentity; + isModified = true; + } + if ((mappingContract?.IsGenerationCodeSuffixSupported != false) && target.GenerationCodeSuffix != source.GenerationCodeSuffix) { @@ -10474,6 +10481,9 @@ public static void MapTo(this IContact source, IContact target, Action mappingContract?.IsCourseTranscriptPartialCourseTranscriptAwardsIncluded?.Invoke(item) ?? true); } + if (mappingContract?.IsCourseTranscriptProgramsSupported ?? true) + { + isModified |= + source.CourseTranscriptPrograms.SynchronizeCollectionTo( + target.CourseTranscriptPrograms, + onChildAdded: child => + { + child.CourseTranscript = target; + }, + includeItem: item => mappingContract?.IsCourseTranscriptProgramIncluded?.Invoke(item) ?? true); + } + + if (mappingContract?.IsCourseTranscriptSectionsSupported ?? true) + { + isModified |= + source.CourseTranscriptSections.SynchronizeCollectionTo( + target.CourseTranscriptSections, + onChildAdded: child => + { + child.CourseTranscript = target; + }, + includeItem: item => mappingContract?.IsCourseTranscriptSectionIncluded?.Invoke(item) ?? true); + } + // Sync extensions isModified |= source.SynchronizeExtensionsTo(target, mappingContract); @@ -14882,6 +14923,9 @@ public static void MapTo(this ICourseTranscript source, ICourseTranscript target if (mappingContract?.IsMethodCreditEarnedDescriptorSupported != false) target.MethodCreditEarnedDescriptor = source.MethodCreditEarnedDescriptor; + if (mappingContract?.IsResponsibleTeacherStaffUniqueIdSupported != false) + target.ResponsibleTeacherStaffUniqueId = source.ResponsibleTeacherStaffUniqueId; + if (mappingContract?.IsWhenTakenGradeLevelDescriptorSupported != false) target.WhenTakenGradeLevelDescriptor = source.WhenTakenGradeLevelDescriptor; @@ -14893,6 +14937,8 @@ public static void MapTo(this ICourseTranscript source, ICourseTranscript target target.CourseDiscriminator = source.CourseDiscriminator; target.ExternalEducationOrganizationResourceId = source.ExternalEducationOrganizationResourceId; target.ExternalEducationOrganizationDiscriminator = source.ExternalEducationOrganizationDiscriminator; + target.ResponsibleTeacherStaffResourceId = source.ResponsibleTeacherStaffResourceId; + target.ResponsibleTeacherStaffDiscriminator = source.ResponsibleTeacherStaffDiscriminator; target.StudentAcademicRecordResourceId = source.StudentAcademicRecordResourceId; target.StudentAcademicRecordDiscriminator = source.StudentAcademicRecordDiscriminator; } @@ -14930,6 +14976,16 @@ public static void MapTo(this ICourseTranscript source, ICourseTranscript target source.CourseTranscriptPartialCourseTranscriptAwards.MapCollectionTo(target.CourseTranscriptPartialCourseTranscriptAwards, target, mappingContract?.IsCourseTranscriptPartialCourseTranscriptAwardsIncluded); } + if (mappingContract?.IsCourseTranscriptProgramsSupported != false) + { + source.CourseTranscriptPrograms.MapCollectionTo(target.CourseTranscriptPrograms, target, mappingContract?.IsCourseTranscriptProgramIncluded); + } + + if (mappingContract?.IsCourseTranscriptSectionsSupported != false) + { + source.CourseTranscriptSections.MapCollectionTo(target.CourseTranscriptSections, target, mappingContract?.IsCourseTranscriptSectionIncluded); + } + // Map extensions source.MapExtensionsTo(target, mappingContract); @@ -15354,6 +15410,164 @@ public static void MapTo(this ICourseTranscriptPartialCourseTranscriptAwards sou // Copy Aggregate Reference Data + // ---------------------------------- + // Map One-to-one relationships + // ---------------------------------- + + // Map lists + + // Map extensions + source.MapExtensionsTo(target, mappingContract); + + // Convert source to an ETag, if appropriate + if (target is IHasETag entityWithETag) + entityWithETag.ETag = GeneratedArtifactStaticDependencies.ETagProvider.GetETag(source); + + // Copy/assign LastModifiedDate, if appropriate + if (target is IDateVersionedEntity targetDateVersionedEntity) + { + if (source is IHasETag etagSource) + { + // Convert resource's supplied eTag value to entity's LastModifiedDate + targetDateVersionedEntity.LastModifiedDate = GeneratedArtifactStaticDependencies.ETagProvider.GetDateTime(etagSource.ETag); + } + else if (source is IDateVersionedEntity sourceDateVersionedEntity) + { + // Copy LastModifiedDate, when mapping from entities to resources/entities + targetDateVersionedEntity.LastModifiedDate = sourceDateVersionedEntity.LastModifiedDate; + } + } + } + } + + [ExcludeFromCodeCoverage] + public static class CourseTranscriptProgramMapper + { + private static readonly FullName _fullName_edfi_CourseTranscriptProgram = new FullName("edfi", "CourseTranscriptProgram"); + + public static bool SynchronizeTo(this ICourseTranscriptProgram source, ICourseTranscriptProgram target) + { + bool isModified = false; + + // Get the mapping contract for knowing what values to synchronize through to target entity + var mappingContract = (CourseTranscriptProgramMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_CourseTranscriptProgram); + + + // Copy non-PK properties + + + // Sync lists + // Sync extensions + isModified |= source.SynchronizeExtensionsTo(target, mappingContract); + + return isModified; + } + + public static void MapTo(this ICourseTranscriptProgram source, ICourseTranscriptProgram target, Action onMapped) + { + // Get the mapping contract for determining what values to map through to target + var mappingContract = (CourseTranscriptProgramMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_CourseTranscriptProgram); + + // Copy contextual primary key values + target.ProgramName = source.ProgramName; + target.ProgramTypeDescriptor = source.ProgramTypeDescriptor; + + // Copy non-PK properties + + // Copy Aggregate Reference Data + if (GeneratedArtifactStaticDependencies.AuthorizationContextProvider == null + || GeneratedArtifactStaticDependencies.AuthorizationContextProvider.GetAction() == RequestActions.ReadActionUri) + { + target.ProgramResourceId = source.ProgramResourceId; + target.ProgramDiscriminator = source.ProgramDiscriminator; + } + + + + // ---------------------------------- + // Map One-to-one relationships + // ---------------------------------- + + // Map lists + + // Map extensions + source.MapExtensionsTo(target, mappingContract); + + // Convert source to an ETag, if appropriate + if (target is IHasETag entityWithETag) + entityWithETag.ETag = GeneratedArtifactStaticDependencies.ETagProvider.GetETag(source); + + // Copy/assign LastModifiedDate, if appropriate + if (target is IDateVersionedEntity targetDateVersionedEntity) + { + if (source is IHasETag etagSource) + { + // Convert resource's supplied eTag value to entity's LastModifiedDate + targetDateVersionedEntity.LastModifiedDate = GeneratedArtifactStaticDependencies.ETagProvider.GetDateTime(etagSource.ETag); + } + else if (source is IDateVersionedEntity sourceDateVersionedEntity) + { + // Copy LastModifiedDate, when mapping from entities to resources/entities + targetDateVersionedEntity.LastModifiedDate = sourceDateVersionedEntity.LastModifiedDate; + } + } + } + } + + [ExcludeFromCodeCoverage] + public static class CourseTranscriptSectionMapper + { + private static readonly FullName _fullName_edfi_CourseTranscriptSection = new FullName("edfi", "CourseTranscriptSection"); + + public static bool SynchronizeTo(this ICourseTranscriptSection source, ICourseTranscriptSection target) + { + bool isModified = false; + + // Get the mapping contract for knowing what values to synchronize through to target entity + var mappingContract = (CourseTranscriptSectionMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_CourseTranscriptSection); + + + // Copy non-PK properties + + + // Sync lists + // Sync extensions + isModified |= source.SynchronizeExtensionsTo(target, mappingContract); + + return isModified; + } + + public static void MapTo(this ICourseTranscriptSection source, ICourseTranscriptSection target, Action onMapped) + { + // Get the mapping contract for determining what values to map through to target + var mappingContract = (CourseTranscriptSectionMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_CourseTranscriptSection); + + // Copy contextual primary key values + target.LocalCourseCode = source.LocalCourseCode; + target.SchoolId = source.SchoolId; + target.SectionIdentifier = source.SectionIdentifier; + target.SessionName = source.SessionName; + + // Copy non-PK properties + + // Copy Aggregate Reference Data + if (GeneratedArtifactStaticDependencies.AuthorizationContextProvider == null + || GeneratedArtifactStaticDependencies.AuthorizationContextProvider.GetAction() == RequestActions.ReadActionUri) + { + target.SectionResourceId = source.SectionResourceId; + target.SectionDiscriminator = source.SectionDiscriminator; + } + + + // ---------------------------------- // Map One-to-one relationships // ---------------------------------- @@ -25564,8 +25778,8 @@ public static bool SynchronizeTo(this IGrade source, IGrade target) (target.BeginDate != source.BeginDate) || !string.Equals(target.GradeTypeDescriptor, source.GradeTypeDescriptor, StringComparison.OrdinalIgnoreCase) || !string.Equals(target.GradingPeriodDescriptor, source.GradingPeriodDescriptor, StringComparison.OrdinalIgnoreCase) + || (!keyStringComparer.Equals(target.GradingPeriodName, source.GradingPeriodName)) || (target.GradingPeriodSchoolYear != source.GradingPeriodSchoolYear) - || (target.GradingPeriodSequence != source.GradingPeriodSequence) || (!keyStringComparer.Equals(target.LocalCourseCode, source.LocalCourseCode)) || (target.SchoolId != source.SchoolId) || (target.SchoolYear != source.SchoolYear) @@ -25599,13 +25813,13 @@ public static bool SynchronizeTo(this IGrade source, IGrade target) { source.GradingPeriodDescriptor = target.GradingPeriodDescriptor; } - if (source.GradingPeriodSchoolYear != target.GradingPeriodSchoolYear) + if (source.GradingPeriodName != target.GradingPeriodName) { - source.GradingPeriodSchoolYear = target.GradingPeriodSchoolYear; + source.GradingPeriodName = target.GradingPeriodName; } - if (source.GradingPeriodSequence != target.GradingPeriodSequence) + if (source.GradingPeriodSchoolYear != target.GradingPeriodSchoolYear) { - source.GradingPeriodSequence = target.GradingPeriodSequence; + source.GradingPeriodSchoolYear = target.GradingPeriodSchoolYear; } if (source.LocalCourseCode != target.LocalCourseCode) { @@ -25719,8 +25933,8 @@ public static void MapTo(this IGrade source, IGrade target, Action onMapped) + { + // Get the mapping contract for determining what values to map through to target + var mappingContract = (SectionCharacteristicDescriptorMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_SectionCharacteristicDescriptor); + + // Copy resource Id + target.Id = source.Id; + + // Copy contextual primary key values + target.SectionCharacteristicDescriptorId = source.SectionCharacteristicDescriptorId; + + // Copy inherited non-PK properties + + if (mappingContract?.IsCodeValueSupported != false) + target.CodeValue = source.CodeValue; + + if (mappingContract?.IsDescriptionSupported != false) + target.Description = source.Description; + + if (mappingContract?.IsEffectiveBeginDateSupported != false) + target.EffectiveBeginDate = source.EffectiveBeginDate; + + if (mappingContract?.IsEffectiveEndDateSupported != false) + target.EffectiveEndDate = source.EffectiveEndDate; + + if (mappingContract?.IsNamespaceSupported != false) + target.Namespace = source.Namespace; + + if (mappingContract?.IsPriorDescriptorIdSupported != false) + target.PriorDescriptorId = source.PriorDescriptorId; + + if (mappingContract?.IsShortDescriptionSupported != false) + target.ShortDescription = source.ShortDescription; + + // Copy non-PK properties + + // Copy Aggregate Reference Data + + + // ---------------------------------- + // Map One-to-one relationships + // ---------------------------------- + + // Map inherited lists + + // Map lists + + + // Convert source to an ETag, if appropriate + if (target is IHasETag entityWithETag) + entityWithETag.ETag = GeneratedArtifactStaticDependencies.ETagProvider.GetETag(source); + + // Copy/assign LastModifiedDate, if appropriate + if (target is IDateVersionedEntity targetDateVersionedEntity) + { + if (source is IHasETag etagSource) + { + // Convert resource's supplied eTag value to entity's LastModifiedDate + targetDateVersionedEntity.LastModifiedDate = GeneratedArtifactStaticDependencies.ETagProvider.GetDateTime(etagSource.ETag); + } + else if (source is IDateVersionedEntity sourceDateVersionedEntity) + { + // Copy LastModifiedDate, when mapping from entities to resources/entities + targetDateVersionedEntity.LastModifiedDate = sourceDateVersionedEntity.LastModifiedDate; + } + } + } + } + +} +// Aggregate: SectionTypeDescriptor -namespace EdFi.Ods.Entities.Common.EdFi //.SectionCharacteristicDescriptorAggregate +namespace EdFi.Ods.Entities.Common.EdFi //.SectionTypeDescriptorAggregate { [ExcludeFromCodeCoverage] - public static class SectionCharacteristicDescriptorMapper + public static class SectionTypeDescriptorMapper { - private static readonly FullName _fullName_edfi_SectionCharacteristicDescriptor = new FullName("edfi", "SectionCharacteristicDescriptor"); + private static readonly FullName _fullName_edfi_SectionTypeDescriptor = new FullName("edfi", "SectionTypeDescriptor"); - public static bool SynchronizeTo(this ISectionCharacteristicDescriptor source, ISectionCharacteristicDescriptor target) + public static bool SynchronizeTo(this ISectionTypeDescriptor source, ISectionTypeDescriptor target) { bool isModified = false; // Get the mapping contract for knowing what values to synchronize through to target entity - var mappingContract = (SectionCharacteristicDescriptorMappingContract) GeneratedArtifactStaticDependencies + var mappingContract = (SectionTypeDescriptorMappingContract) GeneratedArtifactStaticDependencies .MappingContractProvider - .GetMappingContract(_fullName_edfi_SectionCharacteristicDescriptor); + .GetMappingContract(_fullName_edfi_SectionTypeDescriptor); // Detect primary key changes if ( - (target.SectionCharacteristicDescriptorId != source.SectionCharacteristicDescriptorId)) + (target.SectionTypeDescriptorId != source.SectionTypeDescriptorId)) { - // Disallow PK column updates on SectionCharacteristicDescriptor + // Disallow PK column updates on SectionTypeDescriptor throw new BadRequestException("Key values for this resource cannot be changed. Delete and recreate the resource item."); } @@ -53191,18 +53590,18 @@ public static bool SynchronizeTo(this ISectionCharacteristicDescriptor source, I return isModified; } - public static void MapTo(this ISectionCharacteristicDescriptor source, ISectionCharacteristicDescriptor target, Action onMapped) + public static void MapTo(this ISectionTypeDescriptor source, ISectionTypeDescriptor target, Action onMapped) { // Get the mapping contract for determining what values to map through to target - var mappingContract = (SectionCharacteristicDescriptorMappingContract) GeneratedArtifactStaticDependencies + var mappingContract = (SectionTypeDescriptorMappingContract) GeneratedArtifactStaticDependencies .MappingContractProvider - .GetMappingContract(_fullName_edfi_SectionCharacteristicDescriptor); + .GetMappingContract(_fullName_edfi_SectionTypeDescriptor); // Copy resource Id target.Id = source.Id; // Copy contextual primary key values - target.SectionCharacteristicDescriptorId = source.SectionCharacteristicDescriptorId; + target.SectionTypeDescriptorId = source.SectionTypeDescriptorId; // Copy inherited non-PK properties @@ -54053,7 +54452,7 @@ public static void MapTo(this ISessionGradingPeriod source, ISessionGradingPerio // Copy contextual primary key values target.GradingPeriodDescriptor = source.GradingPeriodDescriptor; - target.PeriodSequence = source.PeriodSequence; + target.GradingPeriodName = source.GradingPeriodName; // Copy non-PK properties @@ -54979,6 +55378,13 @@ public static bool SynchronizeTo(this IStaff source, IStaff target) isModified = true; } + if ((mappingContract?.IsGenderIdentitySupported != false) + && target.GenderIdentity != source.GenderIdentity) + { + target.GenderIdentity = source.GenderIdentity; + isModified = true; + } + if ((mappingContract?.IsGenerationCodeSuffixSupported != false) && target.GenerationCodeSuffix != source.GenerationCodeSuffix) { @@ -55310,6 +55716,9 @@ public static void MapTo(this IStaff source, IStaff target, Action + { + child.StudentSectionAssociation = target; + }, + includeItem: item => mappingContract?.IsStudentSectionAssociationProgramIncluded?.Invoke(item) ?? true); + } + // Sync extensions isModified |= source.SynchronizeExtensionsTo(target, mappingContract); @@ -72019,6 +72470,90 @@ public static void MapTo(this IStudentSectionAssociation source, IStudentSection + // ---------------------------------- + // Map One-to-one relationships + // ---------------------------------- + + // Map lists + + if (mappingContract?.IsStudentSectionAssociationProgramsSupported != false) + { + source.StudentSectionAssociationPrograms.MapCollectionTo(target.StudentSectionAssociationPrograms, target, mappingContract?.IsStudentSectionAssociationProgramIncluded); + } + + // Map extensions + source.MapExtensionsTo(target, mappingContract); + + // Convert source to an ETag, if appropriate + if (target is IHasETag entityWithETag) + entityWithETag.ETag = GeneratedArtifactStaticDependencies.ETagProvider.GetETag(source); + + // Copy/assign LastModifiedDate, if appropriate + if (target is IDateVersionedEntity targetDateVersionedEntity) + { + if (source is IHasETag etagSource) + { + // Convert resource's supplied eTag value to entity's LastModifiedDate + targetDateVersionedEntity.LastModifiedDate = GeneratedArtifactStaticDependencies.ETagProvider.GetDateTime(etagSource.ETag); + } + else if (source is IDateVersionedEntity sourceDateVersionedEntity) + { + // Copy LastModifiedDate, when mapping from entities to resources/entities + targetDateVersionedEntity.LastModifiedDate = sourceDateVersionedEntity.LastModifiedDate; + } + } + } + } + + [ExcludeFromCodeCoverage] + public static class StudentSectionAssociationProgramMapper + { + private static readonly FullName _fullName_edfi_StudentSectionAssociationProgram = new FullName("edfi", "StudentSectionAssociationProgram"); + + public static bool SynchronizeTo(this IStudentSectionAssociationProgram source, IStudentSectionAssociationProgram target) + { + bool isModified = false; + + // Get the mapping contract for knowing what values to synchronize through to target entity + var mappingContract = (StudentSectionAssociationProgramMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_StudentSectionAssociationProgram); + + + // Copy non-PK properties + + + // Sync lists + // Sync extensions + isModified |= source.SynchronizeExtensionsTo(target, mappingContract); + + return isModified; + } + + public static void MapTo(this IStudentSectionAssociationProgram source, IStudentSectionAssociationProgram target, Action onMapped) + { + // Get the mapping contract for determining what values to map through to target + var mappingContract = (StudentSectionAssociationProgramMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_StudentSectionAssociationProgram); + + // Copy contextual primary key values + target.EducationOrganizationId = source.EducationOrganizationId; + target.ProgramName = source.ProgramName; + target.ProgramTypeDescriptor = source.ProgramTypeDescriptor; + + // Copy non-PK properties + + // Copy Aggregate Reference Data + if (GeneratedArtifactStaticDependencies.AuthorizationContextProvider == null + || GeneratedArtifactStaticDependencies.AuthorizationContextProvider.GetAction() == RequestActions.ReadActionUri) + { + target.ProgramResourceId = source.ProgramResourceId; + target.ProgramDiscriminator = source.ProgramDiscriminator; + } + + + // ---------------------------------- // Map One-to-one relationships // ---------------------------------- @@ -73781,6 +74316,167 @@ public static void MapTo(this ISubmissionStatusDescriptor source, ISubmissionSta // Map lists + // Convert source to an ETag, if appropriate + if (target is IHasETag entityWithETag) + entityWithETag.ETag = GeneratedArtifactStaticDependencies.ETagProvider.GetETag(source); + + // Copy/assign LastModifiedDate, if appropriate + if (target is IDateVersionedEntity targetDateVersionedEntity) + { + if (source is IHasETag etagSource) + { + // Convert resource's supplied eTag value to entity's LastModifiedDate + targetDateVersionedEntity.LastModifiedDate = GeneratedArtifactStaticDependencies.ETagProvider.GetDateTime(etagSource.ETag); + } + else if (source is IDateVersionedEntity sourceDateVersionedEntity) + { + // Copy LastModifiedDate, when mapping from entities to resources/entities + targetDateVersionedEntity.LastModifiedDate = sourceDateVersionedEntity.LastModifiedDate; + } + } + } + } + +} +// Aggregate: SupporterMilitaryConnectionDescriptor + +namespace EdFi.Ods.Entities.Common.EdFi //.SupporterMilitaryConnectionDescriptorAggregate +{ + [ExcludeFromCodeCoverage] + public static class SupporterMilitaryConnectionDescriptorMapper + { + private static readonly FullName _fullName_edfi_SupporterMilitaryConnectionDescriptor = new FullName("edfi", "SupporterMilitaryConnectionDescriptor"); + + public static bool SynchronizeTo(this ISupporterMilitaryConnectionDescriptor source, ISupporterMilitaryConnectionDescriptor target) + { + bool isModified = false; + + // Get the mapping contract for knowing what values to synchronize through to target entity + var mappingContract = (SupporterMilitaryConnectionDescriptorMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_SupporterMilitaryConnectionDescriptor); + + // Detect primary key changes + if ( + (target.SupporterMilitaryConnectionDescriptorId != source.SupporterMilitaryConnectionDescriptorId)) + { + // Disallow PK column updates on SupporterMilitaryConnectionDescriptor + throw new BadRequestException("Key values for this resource cannot be changed. Delete and recreate the resource item."); + } + + + // Copy inherited non-PK properties + + + if ((mappingContract?.IsCodeValueSupported != false) + && target.CodeValue != source.CodeValue) + { + target.CodeValue = source.CodeValue; + isModified = true; + } + + if ((mappingContract?.IsDescriptionSupported != false) + && target.Description != source.Description) + { + target.Description = source.Description; + isModified = true; + } + + if ((mappingContract?.IsEffectiveBeginDateSupported != false) + && target.EffectiveBeginDate != source.EffectiveBeginDate) + { + target.EffectiveBeginDate = source.EffectiveBeginDate; + isModified = true; + } + + if ((mappingContract?.IsEffectiveEndDateSupported != false) + && target.EffectiveEndDate != source.EffectiveEndDate) + { + target.EffectiveEndDate = source.EffectiveEndDate; + isModified = true; + } + + if ((mappingContract?.IsNamespaceSupported != false) + && target.Namespace != source.Namespace) + { + target.Namespace = source.Namespace; + isModified = true; + } + + if ((mappingContract?.IsPriorDescriptorIdSupported != false) + && target.PriorDescriptorId != source.PriorDescriptorId) + { + target.PriorDescriptorId = source.PriorDescriptorId; + isModified = true; + } + + if ((mappingContract?.IsShortDescriptionSupported != false) + && target.ShortDescription != source.ShortDescription) + { + target.ShortDescription = source.ShortDescription; + isModified = true; + } + + // Copy non-PK properties + + + // Synch inherited lists + + // Sync lists + + return isModified; + } + + public static void MapTo(this ISupporterMilitaryConnectionDescriptor source, ISupporterMilitaryConnectionDescriptor target, Action onMapped) + { + // Get the mapping contract for determining what values to map through to target + var mappingContract = (SupporterMilitaryConnectionDescriptorMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_SupporterMilitaryConnectionDescriptor); + + // Copy resource Id + target.Id = source.Id; + + // Copy contextual primary key values + target.SupporterMilitaryConnectionDescriptorId = source.SupporterMilitaryConnectionDescriptorId; + + // Copy inherited non-PK properties + + if (mappingContract?.IsCodeValueSupported != false) + target.CodeValue = source.CodeValue; + + if (mappingContract?.IsDescriptionSupported != false) + target.Description = source.Description; + + if (mappingContract?.IsEffectiveBeginDateSupported != false) + target.EffectiveBeginDate = source.EffectiveBeginDate; + + if (mappingContract?.IsEffectiveEndDateSupported != false) + target.EffectiveEndDate = source.EffectiveEndDate; + + if (mappingContract?.IsNamespaceSupported != false) + target.Namespace = source.Namespace; + + if (mappingContract?.IsPriorDescriptorIdSupported != false) + target.PriorDescriptorId = source.PriorDescriptorId; + + if (mappingContract?.IsShortDescriptionSupported != false) + target.ShortDescription = source.ShortDescription; + + // Copy non-PK properties + + // Copy Aggregate Reference Data + + + // ---------------------------------- + // Map One-to-one relationships + // ---------------------------------- + + // Map inherited lists + + // Map lists + + // Convert source to an ETag, if appropriate if (target is IHasETag entityWithETag) entityWithETag.ETag = GeneratedArtifactStaticDependencies.ETagProvider.GetETag(source); diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Pipelines_CreateOrUpdatePipelines.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Pipelines_CreateOrUpdatePipelines.generated.approved.cs index 0edf6eb1f5..a6a6def42c 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Pipelines_CreateOrUpdatePipelines.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Pipelines_CreateOrUpdatePipelines.generated.approved.cs @@ -1444,6 +1444,12 @@ public class SectionCharacteristicDescriptorCreateOrUpdatePipeline : CreateOrUpd public SectionCharacteristicDescriptorCreateOrUpdatePipeline(IPipelineFactory factory) : base(factory) { } } + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptorCreateOrUpdatePipeline : CreateOrUpdatePipeline + { + public SectionTypeDescriptorCreateOrUpdatePipeline(IPipelineFactory factory) : base(factory) { } + } + [ExcludeFromCodeCoverage] public class SeparationDescriptorCreateOrUpdatePipeline : CreateOrUpdatePipeline { @@ -1798,6 +1804,12 @@ public class SubmissionStatusDescriptorCreateOrUpdatePipeline : CreateOrUpdatePi public SubmissionStatusDescriptorCreateOrUpdatePipeline(IPipelineFactory factory) : base(factory) { } } + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptorCreateOrUpdatePipeline : CreateOrUpdatePipeline + { + public SupporterMilitaryConnectionDescriptorCreateOrUpdatePipeline(IPipelineFactory factory) : base(factory) { } + } + [ExcludeFromCodeCoverage] public class SurveyCreateOrUpdatePipeline : CreateOrUpdatePipeline { diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Requests_Requests.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Requests_Requests.generated.approved.cs index e0bd524ef8..aa0bed56bc 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Requests_Requests.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Requests_Requests.generated.approved.cs @@ -2369,6 +2369,7 @@ public class ContactGetByExample { public string ContactUniqueId { get; set; } public string FirstName { get; set; } + public string GenderIdentity { get; set; } public string GenerationCodeSuffix { get; set; } public string HighestCompletedLevelOfEducationDescriptor { get; set; } public Guid Id { get; set; } @@ -3072,6 +3073,7 @@ public class CourseTranscriptGetByExample public decimal FinalNumericGradeEarned { get; set; } public Guid Id { get; set; } public string MethodCreditEarnedDescriptor { get; set; } + public string ResponsibleTeacherStaffUniqueId { get; set; } public short SchoolYear { get; set; } public string StudentUniqueId { get; set; } public string TermDescriptor { get; set; } @@ -5331,8 +5333,8 @@ public class GradeGetByExample public string GradeEarnedDescription { get; set; } public string GradeTypeDescriptor { get; set; } public string GradingPeriodDescriptor { get; set; } + public string GradingPeriodName { get; set; } public short GradingPeriodSchoolYear { get; set; } - public int GradingPeriodSequence { get; set; } public Guid Id { get; set; } public string LetterGradeEarned { get; set; } public string LocalCourseCode { get; set; } @@ -5395,11 +5397,11 @@ public class GradebookEntryGetByExample public string GradebookEntryIdentifier { get; set; } public string GradebookEntryTypeDescriptor { get; set; } public string GradingPeriodDescriptor { get; set; } + public string GradingPeriodName { get; set; } public Guid Id { get; set; } public string LocalCourseCode { get; set; } public decimal MaxPoints { get; set; } public string Namespace { get; set; } - public int PeriodSequence { get; set; } public long SchoolId { get; set; } public short SchoolYear { get; set; } public string SectionIdentifier { get; set; } @@ -5638,6 +5640,7 @@ public class GradingPeriodGetByExample public DateTime BeginDate { get; set; } public DateTime EndDate { get; set; } public string GradingPeriodDescriptor { get; set; } + public string GradingPeriodName { get; set; } public Guid Id { get; set; } public int PeriodSequence { get; set; } public long SchoolId { get; set; } @@ -10597,9 +10600,9 @@ public class ReportCardGetByExample { public long EducationOrganizationId { get; set; } public string GradingPeriodDescriptor { get; set; } + public string GradingPeriodName { get; set; } public long GradingPeriodSchoolId { get; set; } public short GradingPeriodSchoolYear { get; set; } - public int GradingPeriodSequence { get; set; } public Guid Id { get; set; } public decimal NumberOfDaysAbsent { get; set; } public decimal NumberOfDaysInAttendance { get; set; } @@ -11419,6 +11422,7 @@ public class SectionGetByExample public short SchoolYear { get; set; } public string SectionIdentifier { get; set; } public string SectionName { get; set; } + public string SectionTypeDescriptor { get; set; } public int SequenceOfCourse { get; set; } public string SessionName { get; set; } } @@ -11561,6 +11565,52 @@ public SectionCharacteristicDescriptorDelete(Guid id) } } +namespace EdFi.Ods.Api.Common.Models.Requests.SectionTypeDescriptors.EdFi +{ + + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptorGetByExample + { + public int SectionTypeDescriptorId { get; set; } + } + + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptorGetByIds : IHasIdentifiers + { + public SectionTypeDescriptorGetByIds() { } + + public SectionTypeDescriptorGetByIds(params Guid[] ids) + { + Ids = new List(ids); + } + + public List Ids { get; set; } + } + + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptorPost : Resources.SectionTypeDescriptor.EdFi.SectionTypeDescriptor + { + } + + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptorPut : Resources.SectionTypeDescriptor.EdFi.SectionTypeDescriptor + { + } + + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptorDelete : IHasIdentifier + { + public SectionTypeDescriptorDelete() { } + + public SectionTypeDescriptorDelete(Guid id) + { + Id = id; + } + + public Guid Id { get; set; } + } +} + namespace EdFi.Ods.Api.Common.Models.Requests.SeparationDescriptors.EdFi { @@ -11994,6 +12044,7 @@ public class StaffGetByExample public DateTime BirthDate { get; set; } public string CitizenshipStatusDescriptor { get; set; } public string FirstName { get; set; } + public string GenderIdentity { get; set; } public string GenerationCodeSuffix { get; set; } public string HighestCompletedLevelOfEducationDescriptor { get; set; } public bool HighlyQualifiedTeacher { get; set; } @@ -12365,6 +12416,7 @@ namespace EdFi.Ods.Api.Common.Models.Requests.StaffEducationOrganizationEmployme [ExcludeFromCodeCoverage] public class StaffEducationOrganizationEmploymentAssociationGetByExample { + public decimal AnnualWage { get; set; } public string CredentialIdentifier { get; set; } public string Department { get; set; } public long EducationOrganizationId { get; set; } @@ -13169,9 +13221,9 @@ public class StudentCompetencyObjectiveGetByExample public string CompetencyLevelDescriptor { get; set; } public string DiagnosticStatement { get; set; } public string GradingPeriodDescriptor { get; set; } + public string GradingPeriodName { get; set; } public long GradingPeriodSchoolId { get; set; } public short GradingPeriodSchoolYear { get; set; } - public int GradingPeriodSequence { get; set; } public Guid Id { get; set; } public string Objective { get; set; } public long ObjectiveEducationOrganizationId { get; set; } @@ -13433,6 +13485,7 @@ public class StudentEducationOrganizationAssociationGetByExample { public string BarrierToInternetAccessInResidenceDescriptor { get; set; } public long EducationOrganizationId { get; set; } + public string GenderIdentity { get; set; } public bool HispanicLatinoEthnicity { get; set; } public Guid Id { get; set; } public bool InternetAccessInResidence { get; set; } @@ -13446,6 +13499,7 @@ public class StudentEducationOrganizationAssociationGetByExample public string ProfileThumbnail { get; set; } public string SexDescriptor { get; set; } public string StudentUniqueId { get; set; } + public string SupporterMilitaryConnectionDescriptor { get; set; } } [ExcludeFromCodeCoverage] @@ -14707,6 +14761,52 @@ public SubmissionStatusDescriptorDelete(Guid id) } } +namespace EdFi.Ods.Api.Common.Models.Requests.SupporterMilitaryConnectionDescriptors.EdFi +{ + + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptorGetByExample + { + public int SupporterMilitaryConnectionDescriptorId { get; set; } + } + + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptorGetByIds : IHasIdentifiers + { + public SupporterMilitaryConnectionDescriptorGetByIds() { } + + public SupporterMilitaryConnectionDescriptorGetByIds(params Guid[] ids) + { + Ids = new List(ids); + } + + public List Ids { get; set; } + } + + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptorPost : Resources.SupporterMilitaryConnectionDescriptor.EdFi.SupporterMilitaryConnectionDescriptor + { + } + + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptorPut : Resources.SupporterMilitaryConnectionDescriptor.EdFi.SupporterMilitaryConnectionDescriptor + { + } + + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptorDelete : IHasIdentifier + { + public SupporterMilitaryConnectionDescriptorDelete() { } + + public SupporterMilitaryConnectionDescriptorDelete(Guid id) + { + Id = id; + } + + public Guid Id { get; set; } + } +} + namespace EdFi.Ods.Api.Common.Models.Requests.Surveys.EdFi { diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Resources_Resources.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Resources_Resources.generated.approved.cs index 98705c539b..d898c47446 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Resources_Resources.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Resources_Resources.generated.approved.cs @@ -25127,6 +25127,13 @@ public override int GetHashCode() [DataMember(Name="firstName")] public string FirstName { get; set; } + /// + /// The gender the contact identifies themselves as. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="genderIdentity")] + public string GenderIdentity { get; set; } + /// /// An appendage, if any, used to denote an individual's generation in his family (e.g., Jr., Sr., III). /// @@ -35130,6 +35137,8 @@ public CourseTranscript() CourseTranscriptCreditCategories = new List(); CourseTranscriptEarnedAdditionalCredits = new List(); CourseTranscriptPartialCourseTranscriptAwards = new List(); + CourseTranscriptPrograms = new List(); + CourseTranscriptSections = new List(); } // ------------------------------------------------------------ @@ -35213,6 +35222,38 @@ public EducationOrganization.EdFi.EducationOrganizationReference ExternalEducati _externalEducationOrganizationReference = value; } } + private bool _responsibleTeacherStaffReferenceExplicitlyAssigned; + private Staff.EdFi.StaffReference _responsibleTeacherStaffReference; + private Staff.EdFi.StaffReference ImplicitResponsibleTeacherStaffReference + { + get + { + // if the Reference is null, it is instantiated unless it has been explicitly assigned to null + if (_responsibleTeacherStaffReference == null && !_responsibleTeacherStaffReferenceExplicitlyAssigned) + _responsibleTeacherStaffReference = new Staff.EdFi.StaffReference(); + + return _responsibleTeacherStaffReference; + } + } + + [DataMember(Name="responsibleTeacherStaffReference")] + public Staff.EdFi.StaffReference ResponsibleTeacherStaffReference + { + get + { + // Only return the reference if it's non-null, and all its properties have non-default values assigned + if (ImplicitResponsibleTeacherStaffReference != null + && (_responsibleTeacherStaffReferenceExplicitlyAssigned || _SuspendReferenceAssignmentCheck || ImplicitResponsibleTeacherStaffReference.IsReferenceFullyDefined())) + return ImplicitResponsibleTeacherStaffReference; + + return null; + } + set + { + _responsibleTeacherStaffReferenceExplicitlyAssigned = true; + _responsibleTeacherStaffReference = value; + } + } private bool _studentAcademicRecordReferenceExplicitlyAssigned; private StudentAcademicRecord.EdFi.StudentAcademicRecordReference _studentAcademicRecordReference; private StudentAcademicRecord.EdFi.StudentAcademicRecordReference ImplicitStudentAcademicRecordReference @@ -35642,6 +35683,34 @@ public override int GetHashCode() [DataMember(Name="methodCreditEarnedDescriptor")] public string MethodCreditEarnedDescriptor { get; set; } + /// + /// A unique alphanumeric code assigned to a responsibleteacherstaff. + /// + // IS in a reference, NOT a lookup column + string Entities.Common.EdFi.ICourseTranscript.ResponsibleTeacherStaffUniqueId + { + get + { + if (ImplicitResponsibleTeacherStaffReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitResponsibleTeacherStaffReference.IsReferenceFullyDefined())) + { + return ImplicitResponsibleTeacherStaffReference.StaffUniqueId; + } + + return default(string); + } + set + { + // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. + // All ExplicitlyAssigned are reset to false in advanced + + // ResponsibleTeacherStaff + _responsibleTeacherStaffReferenceExplicitlyAssigned = false; + ImplicitResponsibleTeacherStaffReference.StaffUniqueId = value; + GeneratedArtifactStaticDependencies.UsiLookupsByUniqueIdContextProvider.Get().AddLookup("Staff", value); + } + } + /// /// Student's grade level at time of course. /// @@ -35821,6 +35890,64 @@ public ICollection CourseTranscri set { CourseTranscriptPartialCourseTranscriptAwards = new List(value.Cast()); } } + private ICollection _courseTranscriptPrograms; + private ICollection _courseTranscriptProgramsCovariant; + + [DataMember(Name="programs"), NoDuplicateMembers] + public ICollection CourseTranscriptPrograms + { + get { return _courseTranscriptPrograms; } + set + { + if (value == null) return; + // Initialize primary list with notifying adapter immediately wired up so existing items are associated with the parent + var list = new CollectionAdapterWithAddNotifications(value, + (s, e) => ((Entities.Common.EdFi.ICourseTranscriptProgram)e.Item).CourseTranscript = this); + _courseTranscriptPrograms = list; + + // Initialize covariant list with notifying adapter with deferred wire up so only new items are processed (optimization) + var covariantList = new CovariantCollectionAdapterWithAddNotifications(value); + covariantList.ItemAdded += (s, e) => ((Entities.Common.EdFi.ICourseTranscriptProgram)e.Item).CourseTranscript = this; + _courseTranscriptProgramsCovariant = covariantList; + } + } + + // Covariant version, visible only on the interface + ICollection Entities.Common.EdFi.ICourseTranscript.CourseTranscriptPrograms + { + get { return _courseTranscriptProgramsCovariant; } + set { CourseTranscriptPrograms = new List(value.Cast()); } + } + + private ICollection _courseTranscriptSections; + private ICollection _courseTranscriptSectionsCovariant; + + [DataMember(Name="sections"), NoDuplicateMembers] + public ICollection CourseTranscriptSections + { + get { return _courseTranscriptSections; } + set + { + if (value == null) return; + // Initialize primary list with notifying adapter immediately wired up so existing items are associated with the parent + var list = new CollectionAdapterWithAddNotifications(value, + (s, e) => ((Entities.Common.EdFi.ICourseTranscriptSection)e.Item).CourseTranscript = this); + _courseTranscriptSections = list; + + // Initialize covariant list with notifying adapter with deferred wire up so only new items are processed (optimization) + var covariantList = new CovariantCollectionAdapterWithAddNotifications(value); + covariantList.ItemAdded += (s, e) => ((Entities.Common.EdFi.ICourseTranscriptSection)e.Item).CourseTranscript = this; + _courseTranscriptSectionsCovariant = covariantList; + } + } + + // Covariant version, visible only on the interface + ICollection Entities.Common.EdFi.ICourseTranscript.CourseTranscriptSections + { + get { return _courseTranscriptSectionsCovariant; } + set { CourseTranscriptSections = new List(value.Cast()); } + } + // ------------------------------------------------------------- // ============================================================= @@ -35868,6 +35995,16 @@ internal void OnDeserialized(StreamingContext context) item.CourseTranscript = this; } + if (_courseTranscriptPrograms != null) foreach (var item in _courseTranscriptPrograms) + { + item.CourseTranscript = this; + } + + if (_courseTranscriptSections != null) foreach (var item in _courseTranscriptSections) + { + item.CourseTranscript = this; + } + } // ------------------------------------------------------------ @@ -35916,6 +36053,20 @@ string Entities.Common.EdFi.ICourseTranscript.ExternalEducationOrganizationDiscr } + Guid? Entities.Common.EdFi.ICourseTranscript.ResponsibleTeacherStaffResourceId + { + get { return null; } + set { ImplicitResponsibleTeacherStaffReference.ResourceId = value ?? default(Guid); } + } + + string Entities.Common.EdFi.ICourseTranscript.ResponsibleTeacherStaffDiscriminator + { + // Not supported for Resources + get { return null; } + set { ImplicitResponsibleTeacherStaffReference.Discriminator = value; } + } + + Guid? Entities.Common.EdFi.ICourseTranscript.StudentAcademicRecordResourceId { get { return null; } @@ -36020,6 +36171,28 @@ protected override bool PreValidate(FluentValidation.ValidationContext !mappingContract.Value.IsCourseTranscriptProgramIncluded(x)); + + if (hasInvalidCourseTranscriptProgramsItems) + { + profileName ??= GeneratedArtifactStaticDependencies.ProfileContentTypeContextProvider.Get().ProfileName; + failures.Add(new ValidationFailure("CourseTranscriptProgram", $"A supplied 'CourseTranscriptProgram' has a descriptor value that does not conform with the filter values defined by profile '{profileName}'.")); + } + } + + if (mappingContract.Value.IsCourseTranscriptSectionIncluded != null) + { + var hasInvalidCourseTranscriptSectionsItems = instance.CourseTranscriptSections.Any(x => !mappingContract.Value.IsCourseTranscriptSectionIncluded(x)); + + if (hasInvalidCourseTranscriptSectionsItems) + { + profileName ??= GeneratedArtifactStaticDependencies.ProfileContentTypeContextProvider.Get().ProfileName; + failures.Add(new ValidationFailure("CourseTranscriptSection", $"A supplied 'CourseTranscriptSection' has a descriptor value that does not conform with the filter values defined by profile '{profileName}'.")); + } + } + } // ----------------------- // Validate unified keys @@ -36076,226 +36249,26 @@ protected override bool PreValidate(FluentValidation.ValidationContext - /// A class which represents the edfi.CourseTranscriptAcademicSubject table of the CourseTranscript aggregate in the ODS Database. - /// - [Serializable, DataContract] - [ExcludeFromCodeCoverage] - public class CourseTranscriptAcademicSubject : Entities.Common.EdFi.ICourseTranscriptAcademicSubject - { -#pragma warning disable 414 - private bool _SuspendReferenceAssignmentCheck = false; - public void SuspendReferenceAssignmentCheck() { _SuspendReferenceAssignmentCheck = true; } -#pragma warning restore 414 - - // ============================================================= - // Constructor - // ------------------------------------------------------------- - - // ------------------------------------------------------------ - - // ============================================================ - // Unique Identifier - // ------------------------------------------------------------ - // ------------------------------------------------------------ - - // ============================================================= - // References - // ------------------------------------------------------------- - // ------------------------------------------------------------- - - //============================================================== - // Primary Key - // ------------------------------------------------------------- - private Entities.Common.EdFi.ICourseTranscript _courseTranscript; - - [IgnoreDataMember] - Entities.Common.EdFi.ICourseTranscript ICourseTranscriptAcademicSubject.CourseTranscript - { - get { return _courseTranscript; } - set { SetCourseTranscript(value); } - } - - internal Entities.Common.EdFi.ICourseTranscript CourseTranscript - { - set { SetCourseTranscript(value); } - } - - private void SetCourseTranscript(Entities.Common.EdFi.ICourseTranscript value) - { - _courseTranscript = value; - } - - /// - /// The subject area for the course transcript credits awarded in the course transcript. - /// - // NOT in a reference, IS a lookup column - [DataMember(Name="academicSubjectDescriptor"), NaturalKeyMember] - public string AcademicSubjectDescriptor { get; set; } - // ------------------------------------------------------------- - - // ============================================================= - // Equality - // ------------------------------------------------------------- - - /// - /// Determines equality based on the natural key properties of the resource. - /// - /// - /// A boolean value indicating equality result of the compared resources. - /// - public override bool Equals(object obj) - { - var compareTo = obj as Entities.Common.EdFi.ICourseTranscriptAcademicSubject; - - if (ReferenceEquals(this, compareTo)) - return true; - - if (compareTo == null) - return false; - - // Parent Property - if (_courseTranscript == null || !_courseTranscript.Equals(compareTo.CourseTranscript)) - return false; - - - // Standard Property - if (!StringComparer.OrdinalIgnoreCase.Equals((this as Entities.Common.EdFi.ICourseTranscriptAcademicSubject).AcademicSubjectDescriptor, compareTo.AcademicSubjectDescriptor)) - return false; - - - return true; - } - - /// - /// Builds the hash code based on the unique identifying values. - /// - /// - /// A hash code for the resource. - /// - public override int GetHashCode() - { - var hash = new HashCode(); - //Parent Property - if (_courseTranscript != null) - hash.Add(_courseTranscript); - - // Standard Property - hash.Add((this as Entities.Common.EdFi.ICourseTranscriptAcademicSubject).AcademicSubjectDescriptor); - - return hash.ToHashCode(); - } - // ------------------------------------------------------------- - - // ============================================================= - // Inherited Properties - // ------------------------------------------------------------- - // ------------------------------------------------------------- - - // ============================================================= - // Properties - // ------------------------------------------------------------- - // ------------------------------------------------------------- - - // ============================================================= - // One-to-one relationships - // ------------------------------------------------------------- - // ------------------------------------------------------------- - - // ============================================================= - // Inherited One-to-one relationships - // ------------------------------------------------------------- - // ------------------------------------------------------------- - - // ============================================================= - // Inherited Collections - // ------------------------------------------------------------- - // ------------------------------------------------------------- - - // ============================================================= - // Extensions - // ------------------------------------------------------------- - [JsonProperty("_ext")] - [JsonConverter(typeof(ExtensionsConverter), "CourseTranscript", "CourseTranscriptAcademicSubject")] - public System.Collections.IDictionary Extensions { get; set; } - // ------------------------------------------------------------- - - // ============================================================= - // Collections - // ------------------------------------------------------------- - // ------------------------------------------------------------- - - // ============================================================= - // Versioning - // ------------------------------------------------------------- - // ------------------------------------------------------------- - - // ------------------------------------------------------------- - // OnDeserialize - // ------------------------------------------------------------- - // ------------------------------------------------------------ - - // ============================================================ - // Data Synchronization - // ------------------------------------------------------------ - bool ISynchronizable.Synchronize(object target) - { - return Entities.Common.EdFi.CourseTranscriptAcademicSubjectMapper.SynchronizeTo(this, (Entities.Common.EdFi.ICourseTranscriptAcademicSubject)target); - } - - void IMappable.Map(object target) - { - Entities.Common.EdFi.CourseTranscriptAcademicSubjectMapper.MapTo(this, (Entities.Common.EdFi.ICourseTranscriptAcademicSubject)target, null); - } - // ------------------------------------------------------------- - - // ================================================================= - // Resource Reference Data - // ----------------------------------------------------------------- - // ----------------------------------------------------------------- - } - - // ================================================================= - // Validators - // ----------------------------------------------------------------- - - [ExcludeFromCodeCoverage] - public class CourseTranscriptAcademicSubjectPutPostRequestValidator : FluentValidation.AbstractValidator - { - protected override bool PreValidate(FluentValidation.ValidationContext context, FluentValidation.Results.ValidationResult result) - { - if (context.InstanceToValidate == null) + foreach (var item in instance.CourseTranscriptSections) { - result.Errors.Add(new ValidationFailure("", "Please ensure a model was supplied.")); + var validationResult = courseTranscriptSectionsValidator.Validate(item); - return false; + if (!validationResult.IsValid) + failures.AddRange(validationResult.Errors); } - var instance = context.InstanceToValidate; - - var failures = new List(); - - // ----------------------- - // Validate unified keys - // ----------------------- - - // Recursively invoke the child collection item validators if (failures.Any()) { @@ -36313,11 +36286,231 @@ protected override bool PreValidate(FluentValidation.ValidationContext - /// A class which represents the edfi.CourseTranscriptAlternativeCourseIdentificationCode table of the CourseTranscript aggregate in the ODS Database. + /// A class which represents the edfi.CourseTranscriptAcademicSubject table of the CourseTranscript aggregate in the ODS Database. /// [Serializable, DataContract] [ExcludeFromCodeCoverage] - public class CourseTranscriptAlternativeCourseIdentificationCode : Entities.Common.EdFi.ICourseTranscriptAlternativeCourseIdentificationCode + public class CourseTranscriptAcademicSubject : Entities.Common.EdFi.ICourseTranscriptAcademicSubject + { +#pragma warning disable 414 + private bool _SuspendReferenceAssignmentCheck = false; + public void SuspendReferenceAssignmentCheck() { _SuspendReferenceAssignmentCheck = true; } +#pragma warning restore 414 + + // ============================================================= + // Constructor + // ------------------------------------------------------------- + + // ------------------------------------------------------------ + + // ============================================================ + // Unique Identifier + // ------------------------------------------------------------ + // ------------------------------------------------------------ + + // ============================================================= + // References + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + //============================================================== + // Primary Key + // ------------------------------------------------------------- + private Entities.Common.EdFi.ICourseTranscript _courseTranscript; + + [IgnoreDataMember] + Entities.Common.EdFi.ICourseTranscript ICourseTranscriptAcademicSubject.CourseTranscript + { + get { return _courseTranscript; } + set { SetCourseTranscript(value); } + } + + internal Entities.Common.EdFi.ICourseTranscript CourseTranscript + { + set { SetCourseTranscript(value); } + } + + private void SetCourseTranscript(Entities.Common.EdFi.ICourseTranscript value) + { + _courseTranscript = value; + } + + /// + /// The subject area for the course transcript credits awarded in the course transcript. + /// + // NOT in a reference, IS a lookup column + [DataMember(Name="academicSubjectDescriptor"), NaturalKeyMember] + public string AcademicSubjectDescriptor { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Equality + // ------------------------------------------------------------- + + /// + /// Determines equality based on the natural key properties of the resource. + /// + /// + /// A boolean value indicating equality result of the compared resources. + /// + public override bool Equals(object obj) + { + var compareTo = obj as Entities.Common.EdFi.ICourseTranscriptAcademicSubject; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + // Parent Property + if (_courseTranscript == null || !_courseTranscript.Equals(compareTo.CourseTranscript)) + return false; + + + // Standard Property + if (!StringComparer.OrdinalIgnoreCase.Equals((this as Entities.Common.EdFi.ICourseTranscriptAcademicSubject).AcademicSubjectDescriptor, compareTo.AcademicSubjectDescriptor)) + return false; + + + return true; + } + + /// + /// Builds the hash code based on the unique identifying values. + /// + /// + /// A hash code for the resource. + /// + public override int GetHashCode() + { + var hash = new HashCode(); + //Parent Property + if (_courseTranscript != null) + hash.Add(_courseTranscript); + + // Standard Property + hash.Add((this as Entities.Common.EdFi.ICourseTranscriptAcademicSubject).AcademicSubjectDescriptor); + + return hash.ToHashCode(); + } + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + [JsonProperty("_ext")] + [JsonConverter(typeof(ExtensionsConverter), "CourseTranscript", "CourseTranscriptAcademicSubject")] + public System.Collections.IDictionary Extensions { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Versioning + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + // OnDeserialize + // ------------------------------------------------------------- + // ------------------------------------------------------------ + + // ============================================================ + // Data Synchronization + // ------------------------------------------------------------ + bool ISynchronizable.Synchronize(object target) + { + return Entities.Common.EdFi.CourseTranscriptAcademicSubjectMapper.SynchronizeTo(this, (Entities.Common.EdFi.ICourseTranscriptAcademicSubject)target); + } + + void IMappable.Map(object target) + { + Entities.Common.EdFi.CourseTranscriptAcademicSubjectMapper.MapTo(this, (Entities.Common.EdFi.ICourseTranscriptAcademicSubject)target, null); + } + // ------------------------------------------------------------- + + // ================================================================= + // Resource Reference Data + // ----------------------------------------------------------------- + // ----------------------------------------------------------------- + } + + // ================================================================= + // Validators + // ----------------------------------------------------------------- + + [ExcludeFromCodeCoverage] + public class CourseTranscriptAcademicSubjectPutPostRequestValidator : FluentValidation.AbstractValidator + { + protected override bool PreValidate(FluentValidation.ValidationContext context, FluentValidation.Results.ValidationResult result) + { + if (context.InstanceToValidate == null) + { + result.Errors.Add(new ValidationFailure("", "Please ensure a model was supplied.")); + + return false; + } + + var instance = context.InstanceToValidate; + + var failures = new List(); + + // ----------------------- + // Validate unified keys + // ----------------------- + + // Recursively invoke the child collection item validators + + if (failures.Any()) + { + foreach (var failure in failures) + { + result.Errors.Add(failure); + } + + return false; + } + + return true; + } + } + // ----------------------------------------------------------------- + + /// + /// A class which represents the edfi.CourseTranscriptAlternativeCourseIdentificationCode table of the CourseTranscript aggregate in the ODS Database. + /// + [Serializable, DataContract] + [ExcludeFromCodeCoverage] + public class CourseTranscriptAlternativeCourseIdentificationCode : Entities.Common.EdFi.ICourseTranscriptAlternativeCourseIdentificationCode { #pragma warning disable 414 private bool _SuspendReferenceAssignmentCheck = false; @@ -37290,36 +37483,59 @@ protected override bool PreValidate(FluentValidation.ValidationContext - /// Represents a reference to the Credential resource. + /// Represents a reference from the CourseTranscriptProgram entity to the Program resource. /// [DataContract] [ExcludeFromCodeCoverage] - public class CredentialReference + public class CourseTranscriptProgramToProgramReference { - [DataMember(Name="credentialIdentifier"), NaturalKeyMember] - public string CredentialIdentifier { get; set; } + private Entities.Common.EdFi.ICourseTranscriptProgram backReference; - [DataMember(Name="stateOfIssueStateAbbreviationDescriptor"), NaturalKeyMember] - public string StateOfIssueStateAbbreviationDescriptor { get; set; } + // Parameterless constructor for deserialization + public CourseTranscriptProgramToProgramReference() { } + + // Constructor for inline initialization in parent + public CourseTranscriptProgramToProgramReference(Entities.Common.EdFi.ICourseTranscriptProgram backReference) + { + this.backReference = backReference; + } + + // Expose back reference internally for access after JSON deserialization to enable link generation + internal Entities.Common.EdFi.ICourseTranscriptProgram BackReference + { + get { return backReference; } + set { backReference = value; } + } + + private long _educationOrganizationId; + + [DataMember(Name="educationOrganizationId"), NaturalKeyMember] + public long EducationOrganizationId + { + get => _educationOrganizationId == default(long) + ? BackReference.CourseTranscript.EducationOrganizationId + : _educationOrganizationId; + set => _educationOrganizationId = value; + } + + [DataMember(Name="programName"), NaturalKeyMember] + public string ProgramName { get; set; } + + [DataMember(Name="programTypeDescriptor"), NaturalKeyMember] + public string ProgramTypeDescriptor { get; set; } /// - /// Gets or sets the resource identifier of the referenced resource. + /// Gets or sets the referenced resource's identifier (i.e. "id" property). /// public Guid ResourceId { get; set; } /// /// Gets or sets the discriminator value which identifies the concrete sub-type of the referenced resource - /// when the referenced resource has been derived; otherwise null. + /// when a resource has been derived; otherwise null. /// public string Discriminator { get; set; } - private Link _link; [DataMember(Name="link")] @@ -37329,6 +37545,10 @@ public Link Link { if (_link == null) { + // Can't generate a link without the back reference + if (backReference == null) + return null; + // Only generate links when all values are present if (IsReferenceFullyDefined()) _link = CreateLink(); @@ -37344,15 +37564,1001 @@ public Link Link /// true if the reference's properties are all set to non-default values; otherwise false. public bool IsReferenceFullyDefined() { - return CredentialIdentifier != default(string) && StateOfIssueStateAbbreviationDescriptor != default(string); + return ProgramName != default(string) + && ProgramTypeDescriptor != default(string) + ; } private Link CreateLink() { var link = new Link { - Rel = "Credential", - Href = $"/ed-fi/credentials/{ResourceId:n}" + Rel = "Program", + Href = $"/ed-fi/programs/{ResourceId:n}" + }; + + if (string.IsNullOrEmpty(Discriminator)) + return link; + + string[] linkParts = Discriminator.Split('.'); + + if (linkParts.Length < 2) + return link; + + var resource = GeneratedArtifactStaticDependencies.ResourceModelProvider.GetResourceModel() + .GetResourceByFullName(new FullName(linkParts[0], linkParts[1])); + + // return the default link if the relationship is already correct, and/or if the resource is not found. + if (resource == null || link.Rel == resource.Name) + return link; + + return new Link + { + Rel = resource.Name, + Href = $"/{resource.SchemaUriSegment()}/{resource.PluralName.ToCamelCase()}/{ResourceId:n}" + }; + } + } + + /// + /// A class which represents the edfi.CourseTranscriptProgram table of the CourseTranscript aggregate in the ODS Database. + /// + [Serializable, DataContract] + [ExcludeFromCodeCoverage] + public class CourseTranscriptProgram : Entities.Common.EdFi.ICourseTranscriptProgram + { +#pragma warning disable 414 + private bool _SuspendReferenceAssignmentCheck = false; + public void SuspendReferenceAssignmentCheck() { _SuspendReferenceAssignmentCheck = true; } +#pragma warning restore 414 + + // ============================================================= + // Constructor + // ------------------------------------------------------------- + + // ------------------------------------------------------------ + + // ============================================================ + // Unique Identifier + // ------------------------------------------------------------ + // ------------------------------------------------------------ + + // ============================================================= + // References + // ------------------------------------------------------------- + + private bool _programReferenceExplicitlyAssigned; + private CourseTranscriptProgramToProgramReference _programReference; + private CourseTranscriptProgramToProgramReference ImplicitProgramReference + { + get + { + // if the Reference is null, it is instantiated unless it has been explicitly assigned to null + if (_programReference == null && !_programReferenceExplicitlyAssigned) + _programReference = new CourseTranscriptProgramToProgramReference(this); + + return _programReference; + } + } + + [DataMember(Name="programReference")][NaturalKeyMember] + public CourseTranscriptProgramToProgramReference ProgramReference + { + get + { + // Only return the reference if it's non-null, and all its properties have non-default values assigned + if (ImplicitProgramReference != null + && (_programReferenceExplicitlyAssigned || _SuspendReferenceAssignmentCheck || ImplicitProgramReference.IsReferenceFullyDefined())) + return ImplicitProgramReference; + + return null; + } + set + { + _programReferenceExplicitlyAssigned = true; + _programReference = value; + _programReference.BackReference = this; + } + } + // ------------------------------------------------------------- + + //============================================================== + // Primary Key + // ------------------------------------------------------------- + private Entities.Common.EdFi.ICourseTranscript _courseTranscript; + + [IgnoreDataMember] + Entities.Common.EdFi.ICourseTranscript ICourseTranscriptProgram.CourseTranscript + { + get { return _courseTranscript; } + set { SetCourseTranscript(value); } + } + + internal Entities.Common.EdFi.ICourseTranscript CourseTranscript + { + set { SetCourseTranscript(value); } + } + + private void SetCourseTranscript(Entities.Common.EdFi.ICourseTranscript value) + { + _courseTranscript = value; + + // Initialize unified key values from parent context when reference is being formed by outbound mapper + if (!_programReferenceExplicitlyAssigned) + { + ImplicitProgramReference.EducationOrganizationId = _courseTranscript.EducationOrganizationId; + } + } + + /// + /// The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies. + /// + // IS in a reference, NOT a lookup column + string Entities.Common.EdFi.ICourseTranscriptProgram.ProgramName + { + get + { + if (ImplicitProgramReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitProgramReference.IsReferenceFullyDefined())) + return ImplicitProgramReference.ProgramName; + + return default(string); + } + set + { + // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. + // All ExplicitlyAssigned are reset to false in advanced + + // Program + _programReferenceExplicitlyAssigned = false; + ImplicitProgramReference.ProgramName = value; + } + } + + /// + /// The type of program. + /// + + // IS in a reference (CourseTranscriptProgram.ProgramTypeDescriptorId), IS a lookup column + string Entities.Common.EdFi.ICourseTranscriptProgram.ProgramTypeDescriptor + { + get + { + if (ImplicitProgramReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitProgramReference.IsReferenceFullyDefined())) + return ImplicitProgramReference.ProgramTypeDescriptor; + + return null; + } + set + { + ImplicitProgramReference.ProgramTypeDescriptor = value; + } + } + // ------------------------------------------------------------- + + // ============================================================= + // Equality + // ------------------------------------------------------------- + + /// + /// Determines equality based on the natural key properties of the resource. + /// + /// + /// A boolean value indicating equality result of the compared resources. + /// + public override bool Equals(object obj) + { + var compareTo = obj as Entities.Common.EdFi.ICourseTranscriptProgram; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + // Parent Property + if (_courseTranscript == null || !_courseTranscript.Equals(compareTo.CourseTranscript)) + return false; + + + // Referenced Property + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.ICourseTranscriptProgram).ProgramName, compareTo.ProgramName)) + return false; + + + // Unified Type Property + if (!StringComparer.OrdinalIgnoreCase.Equals((this as Entities.Common.EdFi.ICourseTranscriptProgram).ProgramTypeDescriptor, compareTo.ProgramTypeDescriptor)) + return false; + + + return true; + } + + /// + /// Builds the hash code based on the unique identifying values. + /// + /// + /// A hash code for the resource. + /// + public override int GetHashCode() + { + var hash = new HashCode(); + //Parent Property + if (_courseTranscript != null) + hash.Add(_courseTranscript); + + //Referenced Property + hash.Add((this as Entities.Common.EdFi.ICourseTranscriptProgram).ProgramName); + + //Unified Type Property + hash.Add((this as Entities.Common.EdFi.ICourseTranscriptProgram).ProgramTypeDescriptor); + + return hash.ToHashCode(); + } + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + [JsonProperty("_ext")] + [JsonConverter(typeof(ExtensionsConverter), "CourseTranscript", "CourseTranscriptProgram")] + public System.Collections.IDictionary Extensions { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Versioning + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + // OnDeserialize + // ------------------------------------------------------------- + + [OnDeserialized] + internal void OnDeserialized(StreamingContext context) + { + // Reconnect external inbound references on deserialization + if (_programReference != null) + _programReference.BackReference = this; + } + // ------------------------------------------------------------ + + // ============================================================ + // Data Synchronization + // ------------------------------------------------------------ + bool ISynchronizable.Synchronize(object target) + { + return Entities.Common.EdFi.CourseTranscriptProgramMapper.SynchronizeTo(this, (Entities.Common.EdFi.ICourseTranscriptProgram)target); + } + + void IMappable.Map(object target) + { + Entities.Common.EdFi.CourseTranscriptProgramMapper.MapTo(this, (Entities.Common.EdFi.ICourseTranscriptProgram)target, null); + } + // ------------------------------------------------------------- + + // ================================================================= + // Resource Reference Data + // ----------------------------------------------------------------- + Guid? Entities.Common.EdFi.ICourseTranscriptProgram.ProgramResourceId + { + get { return null; } + set { ImplicitProgramReference.ResourceId = value ?? default(Guid); } + } + + string Entities.Common.EdFi.ICourseTranscriptProgram.ProgramDiscriminator + { + // Not supported for Resources + get { return null; } + set { ImplicitProgramReference.Discriminator = value; } + } + + + // ----------------------------------------------------------------- + } + + // ================================================================= + // Validators + // ----------------------------------------------------------------- + + [ExcludeFromCodeCoverage] + public class CourseTranscriptProgramPutPostRequestValidator : FluentValidation.AbstractValidator + { + protected override bool PreValidate(FluentValidation.ValidationContext context, FluentValidation.Results.ValidationResult result) + { + if (context.InstanceToValidate == null) + { + result.Errors.Add(new ValidationFailure("", "Please ensure a model was supplied.")); + + return false; + } + + var instance = context.InstanceToValidate; + + var failures = new List(); + + // ----------------------- + // Validate unified keys + // ----------------------- + var sourcesForEducationOrganizationId = GetEducationOrganizationIdSources(); + + if (!sourcesForEducationOrganizationId.Select(t => t.Item2).Where(v => !v.IsDefaultValue()).AllEqual()) + { + failures.Add(new ValidationFailure("EducationOrganizationId", + $"Supplied values for unified key property 'educationOrganizationId' on 'CourseTranscriptProgram' are not consistent: {string.Join(", ", sourcesForEducationOrganizationId.Select(x => $"{x.Item1} = {x.Item2}"))}")); + } + + IEnumerable> GetEducationOrganizationIdSources() + { + // Obtain value from the parent + yield return Tuple.Create("educationOrganizationId (from parent context)", (instance as Entities.Common.EdFi.ICourseTranscriptProgram).CourseTranscript.EducationOrganizationId); + + // Obtain value from other references + var valueFromProgramReference = instance.ProgramReference?.EducationOrganizationId; + + if (valueFromProgramReference != null) + { + yield return Tuple.Create("programReference.educationOrganizationId", instance.ProgramReference.EducationOrganizationId); + } + + } + + // Recursively invoke the child collection item validators + + if (failures.Any()) + { + foreach (var failure in failures) + { + result.Errors.Add(failure); + } + + return false; + } + + return true; + } + } + // ----------------------------------------------------------------- + + /// + /// Represents a reference from the CourseTranscriptSection entity to the Section resource. + /// + [DataContract] + [ExcludeFromCodeCoverage] + public class CourseTranscriptSectionToSectionReference + { + private Entities.Common.EdFi.ICourseTranscriptSection backReference; + + // Parameterless constructor for deserialization + public CourseTranscriptSectionToSectionReference() { } + + // Constructor for inline initialization in parent + public CourseTranscriptSectionToSectionReference(Entities.Common.EdFi.ICourseTranscriptSection backReference) + { + this.backReference = backReference; + } + + // Expose back reference internally for access after JSON deserialization to enable link generation + internal Entities.Common.EdFi.ICourseTranscriptSection BackReference + { + get { return backReference; } + set { backReference = value; } + } + + private short _schoolYear; + + [DataMember(Name="schoolYear"), NaturalKeyMember] + public short SchoolYear + { + get => _schoolYear == default(short) + ? BackReference.CourseTranscript.SchoolYear + : _schoolYear; + set => _schoolYear = value; + } + + [DataMember(Name="localCourseCode"), NaturalKeyMember] + public string LocalCourseCode { get; set; } + + [DataMember(Name="schoolId"), NaturalKeyMember] + public long SchoolId { get; set; } + + [DataMember(Name="sectionIdentifier"), NaturalKeyMember] + public string SectionIdentifier { get; set; } + + [DataMember(Name="sessionName"), NaturalKeyMember] + public string SessionName { get; set; } + + /// + /// Gets or sets the referenced resource's identifier (i.e. "id" property). + /// + public Guid ResourceId { get; set; } + + /// + /// Gets or sets the discriminator value which identifies the concrete sub-type of the referenced resource + /// when a resource has been derived; otherwise null. + /// + public string Discriminator { get; set; } + + private Link _link; + + [DataMember(Name="link")] + public Link Link + { + get + { + if (_link == null) + { + // Can't generate a link without the back reference + if (backReference == null) + return null; + + // Only generate links when all values are present + if (IsReferenceFullyDefined()) + _link = CreateLink(); + } + + return _link; + } + } + + /// + /// Indicates whether the reference has been fully defined (all key values are currently assigned non-default values). + /// + /// true if the reference's properties are all set to non-default values; otherwise false. + public bool IsReferenceFullyDefined() + { + return LocalCourseCode != default(string) + && SchoolId != default(long) + && SectionIdentifier != default(string) + && SessionName != default(string) + ; + } + + private Link CreateLink() + { + var link = new Link + { + Rel = "Section", + Href = $"/ed-fi/sections/{ResourceId:n}" + }; + + if (string.IsNullOrEmpty(Discriminator)) + return link; + + string[] linkParts = Discriminator.Split('.'); + + if (linkParts.Length < 2) + return link; + + var resource = GeneratedArtifactStaticDependencies.ResourceModelProvider.GetResourceModel() + .GetResourceByFullName(new FullName(linkParts[0], linkParts[1])); + + // return the default link if the relationship is already correct, and/or if the resource is not found. + if (resource == null || link.Rel == resource.Name) + return link; + + return new Link + { + Rel = resource.Name, + Href = $"/{resource.SchemaUriSegment()}/{resource.PluralName.ToCamelCase()}/{ResourceId:n}" + }; + } + } + + /// + /// A class which represents the edfi.CourseTranscriptSection table of the CourseTranscript aggregate in the ODS Database. + /// + [Serializable, DataContract] + [ExcludeFromCodeCoverage] + public class CourseTranscriptSection : Entities.Common.EdFi.ICourseTranscriptSection + { +#pragma warning disable 414 + private bool _SuspendReferenceAssignmentCheck = false; + public void SuspendReferenceAssignmentCheck() { _SuspendReferenceAssignmentCheck = true; } +#pragma warning restore 414 + + // ============================================================= + // Constructor + // ------------------------------------------------------------- + + // ------------------------------------------------------------ + + // ============================================================ + // Unique Identifier + // ------------------------------------------------------------ + // ------------------------------------------------------------ + + // ============================================================= + // References + // ------------------------------------------------------------- + + private bool _sectionReferenceExplicitlyAssigned; + private CourseTranscriptSectionToSectionReference _sectionReference; + private CourseTranscriptSectionToSectionReference ImplicitSectionReference + { + get + { + // if the Reference is null, it is instantiated unless it has been explicitly assigned to null + if (_sectionReference == null && !_sectionReferenceExplicitlyAssigned) + _sectionReference = new CourseTranscriptSectionToSectionReference(this); + + return _sectionReference; + } + } + + [DataMember(Name="sectionReference")][NaturalKeyMember] + public CourseTranscriptSectionToSectionReference SectionReference + { + get + { + // Only return the reference if it's non-null, and all its properties have non-default values assigned + if (ImplicitSectionReference != null + && (_sectionReferenceExplicitlyAssigned || _SuspendReferenceAssignmentCheck || ImplicitSectionReference.IsReferenceFullyDefined())) + return ImplicitSectionReference; + + return null; + } + set + { + _sectionReferenceExplicitlyAssigned = true; + _sectionReference = value; + _sectionReference.BackReference = this; + } + } + // ------------------------------------------------------------- + + //============================================================== + // Primary Key + // ------------------------------------------------------------- + private Entities.Common.EdFi.ICourseTranscript _courseTranscript; + + [IgnoreDataMember] + Entities.Common.EdFi.ICourseTranscript ICourseTranscriptSection.CourseTranscript + { + get { return _courseTranscript; } + set { SetCourseTranscript(value); } + } + + internal Entities.Common.EdFi.ICourseTranscript CourseTranscript + { + set { SetCourseTranscript(value); } + } + + private void SetCourseTranscript(Entities.Common.EdFi.ICourseTranscript value) + { + _courseTranscript = value; + + // Initialize unified key values from parent context when reference is being formed by outbound mapper + if (!_sectionReferenceExplicitlyAssigned) + { + ImplicitSectionReference.SchoolYear = _courseTranscript.SchoolYear; + } + } + + /// + /// The local code assigned by the School that identifies the course offering provided for the instruction of students. + /// + // IS in a reference, NOT a lookup column + string Entities.Common.EdFi.ICourseTranscriptSection.LocalCourseCode + { + get + { + if (ImplicitSectionReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitSectionReference.IsReferenceFullyDefined())) + return ImplicitSectionReference.LocalCourseCode; + + return default(string); + } + set + { + // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. + // All ExplicitlyAssigned are reset to false in advanced + + // Section + _sectionReferenceExplicitlyAssigned = false; + ImplicitSectionReference.LocalCourseCode = value; + } + } + + /// + /// The identifier assigned to a school. + /// + // IS in a reference, NOT a lookup column + long Entities.Common.EdFi.ICourseTranscriptSection.SchoolId + { + get + { + if (ImplicitSectionReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitSectionReference.IsReferenceFullyDefined())) + return ImplicitSectionReference.SchoolId; + + return default(long); + } + set + { + // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. + // All ExplicitlyAssigned are reset to false in advanced + + // Section + _sectionReferenceExplicitlyAssigned = false; + ImplicitSectionReference.SchoolId = value; + } + } + + /// + /// The local identifier assigned to a section. + /// + // IS in a reference, NOT a lookup column + string Entities.Common.EdFi.ICourseTranscriptSection.SectionIdentifier + { + get + { + if (ImplicitSectionReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitSectionReference.IsReferenceFullyDefined())) + return ImplicitSectionReference.SectionIdentifier; + + return default(string); + } + set + { + // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. + // All ExplicitlyAssigned are reset to false in advanced + + // Section + _sectionReferenceExplicitlyAssigned = false; + ImplicitSectionReference.SectionIdentifier = value; + } + } + + /// + /// The identifier for the calendar for the academic session. + /// + // IS in a reference, NOT a lookup column + string Entities.Common.EdFi.ICourseTranscriptSection.SessionName + { + get + { + if (ImplicitSectionReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitSectionReference.IsReferenceFullyDefined())) + return ImplicitSectionReference.SessionName; + + return default(string); + } + set + { + // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. + // All ExplicitlyAssigned are reset to false in advanced + + // Section + _sectionReferenceExplicitlyAssigned = false; + ImplicitSectionReference.SessionName = value; + } + } + // ------------------------------------------------------------- + + // ============================================================= + // Equality + // ------------------------------------------------------------- + + /// + /// Determines equality based on the natural key properties of the resource. + /// + /// + /// A boolean value indicating equality result of the compared resources. + /// + public override bool Equals(object obj) + { + var compareTo = obj as Entities.Common.EdFi.ICourseTranscriptSection; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + // Parent Property + if (_courseTranscript == null || !_courseTranscript.Equals(compareTo.CourseTranscript)) + return false; + + + // Referenced Property + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.ICourseTranscriptSection).LocalCourseCode, compareTo.LocalCourseCode)) + return false; + + + // Referenced Property + if (!(this as Entities.Common.EdFi.ICourseTranscriptSection).SchoolId.Equals(compareTo.SchoolId)) + return false; + + + // Referenced Property + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.ICourseTranscriptSection).SectionIdentifier, compareTo.SectionIdentifier)) + return false; + + + // Referenced Property + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.ICourseTranscriptSection).SessionName, compareTo.SessionName)) + return false; + + + return true; + } + + /// + /// Builds the hash code based on the unique identifying values. + /// + /// + /// A hash code for the resource. + /// + public override int GetHashCode() + { + var hash = new HashCode(); + //Parent Property + if (_courseTranscript != null) + hash.Add(_courseTranscript); + + //Referenced Property + hash.Add((this as Entities.Common.EdFi.ICourseTranscriptSection).LocalCourseCode); + + //Referenced Property + hash.Add((this as Entities.Common.EdFi.ICourseTranscriptSection).SchoolId); + + //Referenced Property + hash.Add((this as Entities.Common.EdFi.ICourseTranscriptSection).SectionIdentifier); + + //Referenced Property + hash.Add((this as Entities.Common.EdFi.ICourseTranscriptSection).SessionName); + return hash.ToHashCode(); + } + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + [JsonProperty("_ext")] + [JsonConverter(typeof(ExtensionsConverter), "CourseTranscript", "CourseTranscriptSection")] + public System.Collections.IDictionary Extensions { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Versioning + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + // OnDeserialize + // ------------------------------------------------------------- + + [OnDeserialized] + internal void OnDeserialized(StreamingContext context) + { + // Reconnect external inbound references on deserialization + if (_sectionReference != null) + _sectionReference.BackReference = this; + } + // ------------------------------------------------------------ + + // ============================================================ + // Data Synchronization + // ------------------------------------------------------------ + bool ISynchronizable.Synchronize(object target) + { + return Entities.Common.EdFi.CourseTranscriptSectionMapper.SynchronizeTo(this, (Entities.Common.EdFi.ICourseTranscriptSection)target); + } + + void IMappable.Map(object target) + { + Entities.Common.EdFi.CourseTranscriptSectionMapper.MapTo(this, (Entities.Common.EdFi.ICourseTranscriptSection)target, null); + } + // ------------------------------------------------------------- + + // ================================================================= + // Resource Reference Data + // ----------------------------------------------------------------- + Guid? Entities.Common.EdFi.ICourseTranscriptSection.SectionResourceId + { + get { return null; } + set { ImplicitSectionReference.ResourceId = value ?? default(Guid); } + } + + string Entities.Common.EdFi.ICourseTranscriptSection.SectionDiscriminator + { + // Not supported for Resources + get { return null; } + set { ImplicitSectionReference.Discriminator = value; } + } + + + // ----------------------------------------------------------------- + } + + // ================================================================= + // Validators + // ----------------------------------------------------------------- + + [ExcludeFromCodeCoverage] + public class CourseTranscriptSectionPutPostRequestValidator : FluentValidation.AbstractValidator + { + protected override bool PreValidate(FluentValidation.ValidationContext context, FluentValidation.Results.ValidationResult result) + { + if (context.InstanceToValidate == null) + { + result.Errors.Add(new ValidationFailure("", "Please ensure a model was supplied.")); + + return false; + } + + var instance = context.InstanceToValidate; + + var failures = new List(); + + // ----------------------- + // Validate unified keys + // ----------------------- + var sourcesForSchoolYear = GetSchoolYearSources(); + + if (!sourcesForSchoolYear.Select(t => t.Item2).Where(v => !v.IsDefaultValue()).AllEqual()) + { + failures.Add(new ValidationFailure("SchoolYear", + $"Supplied values for unified key property 'schoolYear' on 'CourseTranscriptSection' are not consistent: {string.Join(", ", sourcesForSchoolYear.Select(x => $"{x.Item1} = {x.Item2}"))}")); + } + + IEnumerable> GetSchoolYearSources() + { + // Obtain value from the parent + yield return Tuple.Create("schoolYear (from parent context)", (instance as Entities.Common.EdFi.ICourseTranscriptSection).CourseTranscript.SchoolYear); + + // Obtain value from other references + var valueFromSectionReference = instance.SectionReference?.SchoolYear; + + if (valueFromSectionReference != null) + { + yield return Tuple.Create("sectionReference.schoolYear", instance.SectionReference.SchoolYear); + } + + } + + // Recursively invoke the child collection item validators + + if (failures.Any()) + { + foreach (var failure in failures) + { + result.Errors.Add(failure); + } + + return false; + } + + return true; + } + } + // ----------------------------------------------------------------- + +} +// Aggregate: Credential + +namespace EdFi.Ods.Api.Common.Models.Resources.Credential.EdFi +{ + /// + /// Represents a reference to the Credential resource. + /// + [DataContract] + [ExcludeFromCodeCoverage] + public class CredentialReference + { + [DataMember(Name="credentialIdentifier"), NaturalKeyMember] + public string CredentialIdentifier { get; set; } + + [DataMember(Name="stateOfIssueStateAbbreviationDescriptor"), NaturalKeyMember] + public string StateOfIssueStateAbbreviationDescriptor { get; set; } + + /// + /// Gets or sets the resource identifier of the referenced resource. + /// + public Guid ResourceId { get; set; } + + /// + /// Gets or sets the discriminator value which identifies the concrete sub-type of the referenced resource + /// when the referenced resource has been derived; otherwise null. + /// + public string Discriminator { get; set; } + + + private Link _link; + + [DataMember(Name="link")] + public Link Link + { + get + { + if (_link == null) + { + // Only generate links when all values are present + if (IsReferenceFullyDefined()) + _link = CreateLink(); + } + + return _link; + } + } + + /// + /// Indicates whether the reference has been fully defined (all key values are currently assigned non-default values). + /// + /// true if the reference's properties are all set to non-default values; otherwise false. + public bool IsReferenceFullyDefined() + { + return CredentialIdentifier != default(string) && StateOfIssueStateAbbreviationDescriptor != default(string); + } + + private Link CreateLink() + { + var link = new Link + { + Rel = "Credential", + Href = $"/ed-fi/credentials/{ResourceId:n}" }; if (string.IsNullOrEmpty(Discriminator)) @@ -61109,12 +62315,12 @@ public class GradeReference [DataMember(Name="gradingPeriodDescriptor"), NaturalKeyMember] public string GradingPeriodDescriptor { get; set; } + [DataMember(Name="gradingPeriodName"), NaturalKeyMember] + public string GradingPeriodName { get; set; } + [DataMember(Name="gradingPeriodSchoolYear"), NaturalKeyMember] public short GradingPeriodSchoolYear { get; set; } - [DataMember(Name="gradingPeriodSequence"), NaturalKeyMember] - public int GradingPeriodSequence { get; set; } - [DataMember(Name="localCourseCode"), NaturalKeyMember] public string LocalCourseCode { get; set; } @@ -61178,7 +62384,7 @@ public Link Link /// true if the reference's properties are all set to non-default values; otherwise false. public bool IsReferenceFullyDefined() { - return BeginDate != default(DateTime) && GradeTypeDescriptor != default(string) && GradingPeriodDescriptor != default(string) && GradingPeriodSchoolYear != default(short) && GradingPeriodSequence != default(int) && LocalCourseCode != default(string) && SchoolId != default(long) && SchoolYear != default(short) && SectionIdentifier != default(string) && SessionName != default(string) && StudentUniqueId != default(string); + return BeginDate != default(DateTime) && GradeTypeDescriptor != default(string) && GradingPeriodDescriptor != default(string) && GradingPeriodName != default(string) && GradingPeriodSchoolYear != default(short) && LocalCourseCode != default(string) && SchoolId != default(long) && SchoolYear != default(short) && SectionIdentifier != default(string) && SessionName != default(string) && StudentUniqueId != default(string); } private Link CreateLink() @@ -61353,7 +62559,7 @@ DateTime Entities.Common.EdFi.IGrade.BeginDate public string GradeTypeDescriptor { get; set; } /// - /// The name of the period for which grades are reported. + /// The state's name of the period for which grades are reported. /// // IS in a reference (Grade.GradingPeriodDescriptorId), IS a lookup column @@ -61374,18 +62580,18 @@ string Entities.Common.EdFi.IGrade.GradingPeriodDescriptor } /// - /// The identifier for the grading period school year. + /// The school's descriptive name of the grading period. /// // IS in a reference, NOT a lookup column - short Entities.Common.EdFi.IGrade.GradingPeriodSchoolYear + string Entities.Common.EdFi.IGrade.GradingPeriodName { get { if (ImplicitGradingPeriodReference != null && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) - return ImplicitGradingPeriodReference.SchoolYear; + return ImplicitGradingPeriodReference.GradingPeriodName; - return default(short); + return default(string); } set { @@ -61394,23 +62600,23 @@ short Entities.Common.EdFi.IGrade.GradingPeriodSchoolYear // GradingPeriod _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.SchoolYear = value; + ImplicitGradingPeriodReference.GradingPeriodName = value; } } /// - /// The sequential order of this period relative to other periods. + /// The identifier for the grading period school year. /// // IS in a reference, NOT a lookup column - int Entities.Common.EdFi.IGrade.GradingPeriodSequence + short Entities.Common.EdFi.IGrade.GradingPeriodSchoolYear { get { if (ImplicitGradingPeriodReference != null && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) - return ImplicitGradingPeriodReference.PeriodSequence; + return ImplicitGradingPeriodReference.SchoolYear; - return default(int); + return default(short); } set { @@ -61419,7 +62625,7 @@ int Entities.Common.EdFi.IGrade.GradingPeriodSequence // GradingPeriod _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.PeriodSequence = value; + ImplicitGradingPeriodReference.SchoolYear = value; } } @@ -61616,12 +62822,12 @@ public override bool Equals(object obj) // Referenced Property - if (!(this as Entities.Common.EdFi.IGrade).GradingPeriodSchoolYear.Equals(compareTo.GradingPeriodSchoolYear)) + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.IGrade).GradingPeriodName, compareTo.GradingPeriodName)) return false; // Referenced Property - if (!(this as Entities.Common.EdFi.IGrade).GradingPeriodSequence.Equals(compareTo.GradingPeriodSequence)) + if (!(this as Entities.Common.EdFi.IGrade).GradingPeriodSchoolYear.Equals(compareTo.GradingPeriodSchoolYear)) return false; @@ -61680,10 +62886,10 @@ public override int GetHashCode() //Referenced Property - hash.Add((this as Entities.Common.EdFi.IGrade).GradingPeriodSchoolYear); + hash.Add((this as Entities.Common.EdFi.IGrade).GradingPeriodName); //Referenced Property - hash.Add((this as Entities.Common.EdFi.IGrade).GradingPeriodSequence); + hash.Add((this as Entities.Common.EdFi.IGrade).GradingPeriodSchoolYear); //Referenced Property hash.Add((this as Entities.Common.EdFi.IGrade).LocalCourseCode); @@ -62623,7 +63829,7 @@ public override int GetHashCode() public string GradebookEntryTypeDescriptor { get; set; } /// - /// The name of the period for which grades are reported. + /// The state's name of the period for which grades are reported. /// // IS in a reference (GradebookEntry.GradingPeriodDescriptorId), IS a lookup column @@ -62646,17 +63852,17 @@ string Entities.Common.EdFi.IGradebookEntry.GradingPeriodDescriptor } /// - /// The local code assigned by the School that identifies the course offering provided for the instruction of students. + /// The school's descriptive name of the grading period. /// // IS in a reference, NOT a lookup column - string Entities.Common.EdFi.IGradebookEntry.LocalCourseCode + string Entities.Common.EdFi.IGradebookEntry.GradingPeriodName { get { - if (ImplicitSectionReference != null - && (_SuspendReferenceAssignmentCheck || ImplicitSectionReference.IsReferenceFullyDefined())) + if (ImplicitGradingPeriodReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) { - return ImplicitSectionReference.LocalCourseCode; + return ImplicitGradingPeriodReference.GradingPeriodName; } return default(string); @@ -62666,46 +63872,46 @@ string Entities.Common.EdFi.IGradebookEntry.LocalCourseCode // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. // All ExplicitlyAssigned are reset to false in advanced - // Section - _sectionReferenceExplicitlyAssigned = false; - ImplicitSectionReference.LocalCourseCode = value; + // GradingPeriod + _gradingPeriodReferenceExplicitlyAssigned = false; + ImplicitGradingPeriodReference.GradingPeriodName = value; } } /// - /// The maximum number of points that can be earned for the submission. - /// - // NOT in a reference, NOT a lookup column - [DataMember(Name="maxPoints")] - public decimal? MaxPoints { get; set; } - - /// - /// The sequential order of this period relative to other periods. + /// The local code assigned by the School that identifies the course offering provided for the instruction of students. /// // IS in a reference, NOT a lookup column - int? Entities.Common.EdFi.IGradebookEntry.PeriodSequence + string Entities.Common.EdFi.IGradebookEntry.LocalCourseCode { get { - if (ImplicitGradingPeriodReference != null - && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) + if (ImplicitSectionReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitSectionReference.IsReferenceFullyDefined())) { - return ImplicitGradingPeriodReference.PeriodSequence; + return ImplicitSectionReference.LocalCourseCode; } - return default(int?); + return default(string); } set { // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. // All ExplicitlyAssigned are reset to false in advanced - // GradingPeriod - _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.PeriodSequence = value.GetValueOrDefault(); + // Section + _sectionReferenceExplicitlyAssigned = false; + ImplicitSectionReference.LocalCourseCode = value; } } + /// + /// The maximum number of points that can be earned for the submission. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="maxPoints")] + public decimal? MaxPoints { get; set; } + /// /// The identifier assigned to a school. /// @@ -64494,8 +65700,8 @@ public class GradingPeriodReference [DataMember(Name="gradingPeriodDescriptor"), NaturalKeyMember] public string GradingPeriodDescriptor { get; set; } - [DataMember(Name="periodSequence"), NaturalKeyMember] - public int PeriodSequence { get; set; } + [DataMember(Name="gradingPeriodName"), NaturalKeyMember] + public string GradingPeriodName { get; set; } [DataMember(Name="schoolId"), NaturalKeyMember] public long SchoolId { get; set; } @@ -64539,7 +65745,7 @@ public Link Link /// true if the reference's properties are all set to non-default values; otherwise false. public bool IsReferenceFullyDefined() { - return GradingPeriodDescriptor != default(string) && PeriodSequence != default(int) && SchoolId != default(long) && SchoolYear != default(short); + return GradingPeriodDescriptor != default(string) && GradingPeriodName != default(string) && SchoolId != default(long) && SchoolYear != default(short); } private Link CreateLink() @@ -64679,18 +65885,18 @@ public SchoolYearType.EdFi.SchoolYearTypeReference SchoolYearTypeReference // ------------------------------------------------------------- /// - /// The name of the period for which grades are reported. + /// The state's name of the period for which grades are reported. /// // NOT in a reference, IS a lookup column [DataMember(Name="gradingPeriodDescriptor"), NaturalKeyMember] public string GradingPeriodDescriptor { get; set; } /// - /// The sequential order of this period relative to other periods. + /// The school's descriptive name of the grading period. /// // NOT in a reference, NOT a lookup column - [DataMember(Name="periodSequence"), NaturalKeyMember] - public int PeriodSequence { get; set; } + [DataMember(Name="gradingPeriodName"), NaturalKeyMember] + public string GradingPeriodName { get; set; } /// /// The identifier assigned to a school. @@ -64770,7 +65976,7 @@ public override bool Equals(object obj) // Standard Property - if (!(this as Entities.Common.EdFi.IGradingPeriod).PeriodSequence.Equals(compareTo.PeriodSequence)) + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.IGradingPeriod).GradingPeriodName, compareTo.GradingPeriodName)) return false; @@ -64802,7 +66008,7 @@ public override int GetHashCode() // Standard Property - hash.Add((this as Entities.Common.EdFi.IGradingPeriod).PeriodSequence); + hash.Add((this as Entities.Common.EdFi.IGradingPeriod).GradingPeriodName); //Referenced Property @@ -64836,6 +66042,13 @@ public override int GetHashCode() // NOT in a reference, NOT a lookup column [DataMember(Name="endDate")][JsonConverter(typeof(Iso8601UtcDateOnlyConverter))] public DateTime EndDate { get; set; } + + /// + /// The sequential order of this period relative to other periods. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="periodSequence")] + public int? PeriodSequence { get; set; } private bool _totalInstructionalDaysExplicitlyAssigned = false; private int _totalInstructionalDays; @@ -116762,15 +117975,15 @@ public class ReportCardReference [DataMember(Name="gradingPeriodDescriptor"), NaturalKeyMember] public string GradingPeriodDescriptor { get; set; } + [DataMember(Name="gradingPeriodName"), NaturalKeyMember] + public string GradingPeriodName { get; set; } + [DataMember(Name="gradingPeriodSchoolId"), NaturalKeyMember] public long GradingPeriodSchoolId { get; set; } [DataMember(Name="gradingPeriodSchoolYear"), NaturalKeyMember] public short GradingPeriodSchoolYear { get; set; } - [DataMember(Name="gradingPeriodSequence"), NaturalKeyMember] - public int GradingPeriodSequence { get; set; } - [DataMember(Name="studentUniqueId"), NaturalKeyMember] public string StudentUniqueId { @@ -116819,7 +118032,7 @@ public Link Link /// true if the reference's properties are all set to non-default values; otherwise false. public bool IsReferenceFullyDefined() { - return EducationOrganizationId != default(long) && GradingPeriodDescriptor != default(string) && GradingPeriodSchoolId != default(long) && GradingPeriodSchoolYear != default(short) && GradingPeriodSequence != default(int) && StudentUniqueId != default(string); + return EducationOrganizationId != default(long) && GradingPeriodDescriptor != default(string) && GradingPeriodName != default(string) && GradingPeriodSchoolId != default(long) && GradingPeriodSchoolYear != default(short) && StudentUniqueId != default(string); } private Link CreateLink() @@ -117021,7 +118234,7 @@ long Entities.Common.EdFi.IReportCard.EducationOrganizationId } /// - /// The name of the period for which grades are reported. + /// The state's name of the period for which grades are reported. /// // IS in a reference (ReportCard.GradingPeriodDescriptorId), IS a lookup column @@ -117042,18 +118255,18 @@ string Entities.Common.EdFi.IReportCard.GradingPeriodDescriptor } /// - /// The identifier assigned to a school. + /// The school's descriptive name of the grading period. /// // IS in a reference, NOT a lookup column - long Entities.Common.EdFi.IReportCard.GradingPeriodSchoolId + string Entities.Common.EdFi.IReportCard.GradingPeriodName { get { if (ImplicitGradingPeriodReference != null && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) - return ImplicitGradingPeriodReference.SchoolId; + return ImplicitGradingPeriodReference.GradingPeriodName; - return default(long); + return default(string); } set { @@ -117062,23 +118275,23 @@ long Entities.Common.EdFi.IReportCard.GradingPeriodSchoolId // GradingPeriod _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.SchoolId = value; + ImplicitGradingPeriodReference.GradingPeriodName = value; } } /// - /// The identifier for the grading period school year. + /// The identifier assigned to a school. /// // IS in a reference, NOT a lookup column - short Entities.Common.EdFi.IReportCard.GradingPeriodSchoolYear + long Entities.Common.EdFi.IReportCard.GradingPeriodSchoolId { get { if (ImplicitGradingPeriodReference != null && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) - return ImplicitGradingPeriodReference.SchoolYear; + return ImplicitGradingPeriodReference.SchoolId; - return default(short); + return default(long); } set { @@ -117087,23 +118300,23 @@ short Entities.Common.EdFi.IReportCard.GradingPeriodSchoolYear // GradingPeriod _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.SchoolYear = value; + ImplicitGradingPeriodReference.SchoolId = value; } } /// - /// The sequential order of this period relative to other periods. + /// The identifier for the grading period school year. /// // IS in a reference, NOT a lookup column - int Entities.Common.EdFi.IReportCard.GradingPeriodSequence + short Entities.Common.EdFi.IReportCard.GradingPeriodSchoolYear { get { if (ImplicitGradingPeriodReference != null && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) - return ImplicitGradingPeriodReference.PeriodSequence; + return ImplicitGradingPeriodReference.SchoolYear; - return default(int); + return default(short); } set { @@ -117112,7 +118325,7 @@ int Entities.Common.EdFi.IReportCard.GradingPeriodSequence // GradingPeriod _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.PeriodSequence = value; + ImplicitGradingPeriodReference.SchoolYear = value; } } @@ -117175,17 +118388,17 @@ public override bool Equals(object obj) // Referenced Property - if (!(this as Entities.Common.EdFi.IReportCard).GradingPeriodSchoolId.Equals(compareTo.GradingPeriodSchoolId)) + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.IReportCard).GradingPeriodName, compareTo.GradingPeriodName)) return false; // Referenced Property - if (!(this as Entities.Common.EdFi.IReportCard).GradingPeriodSchoolYear.Equals(compareTo.GradingPeriodSchoolYear)) + if (!(this as Entities.Common.EdFi.IReportCard).GradingPeriodSchoolId.Equals(compareTo.GradingPeriodSchoolId)) return false; // Referenced Property - if (!(this as Entities.Common.EdFi.IReportCard).GradingPeriodSequence.Equals(compareTo.GradingPeriodSequence)) + if (!(this as Entities.Common.EdFi.IReportCard).GradingPeriodSchoolYear.Equals(compareTo.GradingPeriodSchoolYear)) return false; @@ -117215,13 +118428,13 @@ public override int GetHashCode() //Referenced Property - hash.Add((this as Entities.Common.EdFi.IReportCard).GradingPeriodSchoolId); + hash.Add((this as Entities.Common.EdFi.IReportCard).GradingPeriodName); //Referenced Property - hash.Add((this as Entities.Common.EdFi.IReportCard).GradingPeriodSchoolYear); + hash.Add((this as Entities.Common.EdFi.IReportCard).GradingPeriodSchoolId); //Referenced Property - hash.Add((this as Entities.Common.EdFi.IReportCard).GradingPeriodSequence); + hash.Add((this as Entities.Common.EdFi.IReportCard).GradingPeriodSchoolYear); //Referenced Property hash.Add((this as Entities.Common.EdFi.IReportCard).StudentUniqueId); @@ -117628,6 +118841,17 @@ public string GradingPeriodDescriptor set => _gradingPeriodDescriptor = value; } + private string _gradingPeriodName; + + [DataMember(Name="gradingPeriodName"), NaturalKeyMember] + public string GradingPeriodName + { + get => _gradingPeriodName == default(string) + ? BackReference.ReportCard.GradingPeriodName + : _gradingPeriodName; + set => _gradingPeriodName = value; + } + private short _gradingPeriodSchoolYear; [DataMember(Name="gradingPeriodSchoolYear"), NaturalKeyMember] @@ -117639,17 +118863,6 @@ public short GradingPeriodSchoolYear set => _gradingPeriodSchoolYear = value; } - private int _gradingPeriodSequence; - - [DataMember(Name="gradingPeriodSequence"), NaturalKeyMember] - public int GradingPeriodSequence - { - get => _gradingPeriodSequence == default(int) - ? BackReference.ReportCard.GradingPeriodSequence - : _gradingPeriodSequence; - set => _gradingPeriodSequence = value; - } - private string _studentUniqueId; [DataMember(Name="studentUniqueId"), NaturalKeyMember] @@ -117853,7 +119066,7 @@ private void SetReportCard(Entities.Common.EdFi.IReportCard value) if (!_gradeReferenceExplicitlyAssigned) { ImplicitGradeReference.GradingPeriodDescriptor = _reportCard.GradingPeriodDescriptor; - ImplicitGradeReference.GradingPeriodSequence = _reportCard.GradingPeriodSequence; + ImplicitGradeReference.GradingPeriodName = _reportCard.GradingPeriodName; ImplicitGradeReference.GradingPeriodSchoolYear = _reportCard.GradingPeriodSchoolYear; ImplicitGradeReference.StudentUniqueId = _reportCard.StudentUniqueId; } @@ -118267,25 +119480,25 @@ IEnumerable> GetGradingPeriodDescriptorSources() } } - var sourcesForGradingPeriodSequence = GetGradingPeriodSequenceSources(); + var sourcesForGradingPeriodName = GetGradingPeriodNameSources(); - if (!sourcesForGradingPeriodSequence.Select(t => t.Item2).Where(v => !v.IsDefaultValue()).AllEqual()) + if (!sourcesForGradingPeriodName.Select(t => t.Item2).Where(v => !v.IsDefaultValue()).AllEqual(GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer)) { - failures.Add(new ValidationFailure("GradingPeriodSequence", - $"Supplied values for unified key property 'gradingPeriodSequence' on 'ReportCardGrade' are not consistent: {string.Join(", ", sourcesForGradingPeriodSequence.Select(x => $"{x.Item1} = {x.Item2}"))}")); + failures.Add(new ValidationFailure("GradingPeriodName", + $"Supplied values for unified key property 'gradingPeriodName' on 'ReportCardGrade' are not consistent: {string.Join(", ", sourcesForGradingPeriodName.Select(x => $"{x.Item1} = {x.Item2}"))}")); } - IEnumerable> GetGradingPeriodSequenceSources() + IEnumerable> GetGradingPeriodNameSources() { // Obtain value from the parent - yield return Tuple.Create("gradingPeriodSequence (from parent context)", (instance as Entities.Common.EdFi.IReportCardGrade).ReportCard.GradingPeriodSequence); + yield return Tuple.Create("gradingPeriodName (from parent context)", (instance as Entities.Common.EdFi.IReportCardGrade).ReportCard.GradingPeriodName); // Obtain value from other references - var valueFromGradeReference = instance.GradeReference?.GradingPeriodSequence; + var valueFromGradeReference = instance.GradeReference?.GradingPeriodName; if (valueFromGradeReference != null) { - yield return Tuple.Create("gradeReference.gradingPeriodSequence", instance.GradeReference.GradingPeriodSequence); + yield return Tuple.Create("gradeReference.gradingPeriodName", instance.GradeReference.GradingPeriodName); } } @@ -118649,6 +119862,17 @@ public string GradingPeriodDescriptor set => _gradingPeriodDescriptor = value; } + private string _gradingPeriodName; + + [DataMember(Name="gradingPeriodName"), NaturalKeyMember] + public string GradingPeriodName + { + get => _gradingPeriodName == default(string) + ? BackReference.ReportCard.GradingPeriodName + : _gradingPeriodName; + set => _gradingPeriodName = value; + } + private long _gradingPeriodSchoolId; [DataMember(Name="gradingPeriodSchoolId"), NaturalKeyMember] @@ -118671,17 +119895,6 @@ public short GradingPeriodSchoolYear set => _gradingPeriodSchoolYear = value; } - private int _gradingPeriodSequence; - - [DataMember(Name="gradingPeriodSequence"), NaturalKeyMember] - public int GradingPeriodSequence - { - get => _gradingPeriodSequence == default(int) - ? BackReference.ReportCard.GradingPeriodSequence - : _gradingPeriodSequence; - set => _gradingPeriodSequence = value; - } - private string _studentUniqueId; [DataMember(Name="studentUniqueId"), NaturalKeyMember] @@ -118869,7 +120082,7 @@ private void SetReportCard(Entities.Common.EdFi.IReportCard value) if (!_studentCompetencyObjectiveReferenceExplicitlyAssigned) { ImplicitStudentCompetencyObjectiveReference.GradingPeriodDescriptor = _reportCard.GradingPeriodDescriptor; - ImplicitStudentCompetencyObjectiveReference.GradingPeriodSequence = _reportCard.GradingPeriodSequence; + ImplicitStudentCompetencyObjectiveReference.GradingPeriodName = _reportCard.GradingPeriodName; ImplicitStudentCompetencyObjectiveReference.GradingPeriodSchoolId = _reportCard.GradingPeriodSchoolId; ImplicitStudentCompetencyObjectiveReference.GradingPeriodSchoolYear = _reportCard.GradingPeriodSchoolYear; ImplicitStudentCompetencyObjectiveReference.StudentUniqueId = _reportCard.StudentUniqueId; @@ -119152,25 +120365,25 @@ IEnumerable> GetGradingPeriodDescriptorSources() } } - var sourcesForGradingPeriodSequence = GetGradingPeriodSequenceSources(); + var sourcesForGradingPeriodName = GetGradingPeriodNameSources(); - if (!sourcesForGradingPeriodSequence.Select(t => t.Item2).Where(v => !v.IsDefaultValue()).AllEqual()) + if (!sourcesForGradingPeriodName.Select(t => t.Item2).Where(v => !v.IsDefaultValue()).AllEqual(GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer)) { - failures.Add(new ValidationFailure("GradingPeriodSequence", - $"Supplied values for unified key property 'gradingPeriodSequence' on 'ReportCardStudentCompetencyObjective' are not consistent: {string.Join(", ", sourcesForGradingPeriodSequence.Select(x => $"{x.Item1} = {x.Item2}"))}")); + failures.Add(new ValidationFailure("GradingPeriodName", + $"Supplied values for unified key property 'gradingPeriodName' on 'ReportCardStudentCompetencyObjective' are not consistent: {string.Join(", ", sourcesForGradingPeriodName.Select(x => $"{x.Item1} = {x.Item2}"))}")); } - IEnumerable> GetGradingPeriodSequenceSources() + IEnumerable> GetGradingPeriodNameSources() { // Obtain value from the parent - yield return Tuple.Create("gradingPeriodSequence (from parent context)", (instance as Entities.Common.EdFi.IReportCardStudentCompetencyObjective).ReportCard.GradingPeriodSequence); + yield return Tuple.Create("gradingPeriodName (from parent context)", (instance as Entities.Common.EdFi.IReportCardStudentCompetencyObjective).ReportCard.GradingPeriodName); // Obtain value from other references - var valueFromStudentCompetencyObjectiveReference = instance.StudentCompetencyObjectiveReference?.GradingPeriodSequence; + var valueFromStudentCompetencyObjectiveReference = instance.StudentCompetencyObjectiveReference?.GradingPeriodName; if (valueFromStudentCompetencyObjectiveReference != null) { - yield return Tuple.Create("studentCompetencyObjectiveReference.gradingPeriodSequence", instance.StudentCompetencyObjectiveReference.GradingPeriodSequence); + yield return Tuple.Create("studentCompetencyObjectiveReference.gradingPeriodName", instance.StudentCompetencyObjectiveReference.GradingPeriodName); } } @@ -126144,6 +127357,13 @@ string Entities.Common.EdFi.ISection.LocationClassroomIdentificationCode [DataMember(Name="sectionName")] public string SectionName { get; set; } + /// + /// Specifies whether the section is for attendance only, credit only, or both. + /// + // NOT in a reference, IS a lookup column + [DataMember(Name="sectionTypeDescriptor")] + public string SectionTypeDescriptor { get; set; } + /// /// When a section is part of a sequence of parts for a course, the number of the sequence. If the course has only one part, the value of this section attribute should be 1. /// @@ -129089,6 +130309,277 @@ protected override bool PreValidate(FluentValidation.ValidationContext + /// A class which represents the edfi.SectionTypeDescriptor table of the SectionTypeDescriptor aggregate in the ODS Database. + /// + [Serializable, DataContract] + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptor : Entities.Common.EdFi.ISectionTypeDescriptor, Entities.Common.EdFi.IDescriptor, IHasETag, IDateVersionedEntity + { +#pragma warning disable 414 + private bool _SuspendReferenceAssignmentCheck = false; + public void SuspendReferenceAssignmentCheck() { _SuspendReferenceAssignmentCheck = true; } +#pragma warning restore 414 + + // ============================================================= + // Constructor + // ------------------------------------------------------------- + + // ------------------------------------------------------------ + + // ============================================================ + // Unique Identifier + // ------------------------------------------------------------ + + /// + /// The unique identifier for the SectionTypeDescriptor resource. + /// + [DataMember(Name="id")] + [JsonConverter(typeof(GuidConverter))] + public Guid Id { get; set; } + // ------------------------------------------------------------ + + // ============================================================= + // References + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + //============================================================== + // Primary Key + // ------------------------------------------------------------- + + /// + /// A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="sectionTypeDescriptorId"), NaturalKeyMember] + public int SectionTypeDescriptorId { get; set; } + + int IDescriptor.DescriptorId + { + get { return SectionTypeDescriptorId; } + set { SectionTypeDescriptorId = value; } + } + // ------------------------------------------------------------- + + // ============================================================= + // Equality + // ------------------------------------------------------------- + + /// + /// Determines equality based on the natural key properties of the resource. + /// + /// + /// A boolean value indicating equality result of the compared resources. + /// + public override bool Equals(object obj) + { + var compareTo = obj as Entities.Common.EdFi.ISectionTypeDescriptor; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + + // Derived Property + if (!(this as Entities.Common.EdFi.ISectionTypeDescriptor).SectionTypeDescriptorId.Equals(compareTo.SectionTypeDescriptorId)) + return false; + + + return true; + } + + /// + /// Builds the hash code based on the unique identifying values. + /// + /// + /// A hash code for the resource. + /// + public override int GetHashCode() + { + var hash = new HashCode(); + + //Derived Property + hash.Add((this as Entities.Common.EdFi.ISectionTypeDescriptor).SectionTypeDescriptorId); + + return hash.ToHashCode(); + } + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + + /// + /// A code or abbreviation that is used to refer to the descriptor. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="codeValue")] + public string CodeValue { get; set; } + + /// + /// The description of the descriptor. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="description")] + public string Description { get; set; } + + /// + /// The beginning date of the period when the descriptor is in effect. If omitted, the default is immediate effectiveness. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="effectiveBeginDate")][JsonConverter(typeof(Iso8601UtcDateOnlyConverter))] + public DateTime? EffectiveBeginDate { get; set; } + + /// + /// The end date of the period when the descriptor is in effect. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="effectiveEndDate")][JsonConverter(typeof(Iso8601UtcDateOnlyConverter))] + public DateTime? EffectiveEndDate { get; set; } + + /// + /// A globally unique namespace that identifies this descriptor set. Author is strongly encouraged to use the Universal Resource Identifier (http, ftp, file, etc.) for the source of the descriptor definition. Best practice is for this source to be the descriptor file itself, so that it can be machine-readable and be fetched in real-time, if necessary. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="namespace")] + public string Namespace { get; set; } + + /// + /// A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="priorDescriptorId")] + public int? PriorDescriptorId { get; set; } + + /// + /// A shortened description for the descriptor. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="shortDescription")] + public string ShortDescription { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + // NOT a lookup column, Not supported by this model, so there's "null object pattern" style implementation + public System.Collections.IDictionary Extensions { + get { return null; } + set { } + } + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Versioning + // ------------------------------------------------------------- + + [DataMember(Name="_etag")] + public virtual string ETag { get; set; } + + [DataMember(Name="_lastModifiedDate")] + public virtual DateTime LastModifiedDate { get; set; } + + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + // OnDeserialize + // ------------------------------------------------------------- + // ------------------------------------------------------------ + + // ============================================================ + // Data Synchronization + // ------------------------------------------------------------ + bool ISynchronizable.Synchronize(object target) + { + return Entities.Common.EdFi.SectionTypeDescriptorMapper.SynchronizeTo(this, (Entities.Common.EdFi.ISectionTypeDescriptor)target); + } + + void IMappable.Map(object target) + { + Entities.Common.EdFi.SectionTypeDescriptorMapper.MapTo(this, (Entities.Common.EdFi.ISectionTypeDescriptor)target, null); + } + // ------------------------------------------------------------- + + // ================================================================= + // Resource Reference Data + // ----------------------------------------------------------------- + // ----------------------------------------------------------------- + } + + // ================================================================= + // Validators + // ----------------------------------------------------------------- + + [ExcludeFromCodeCoverage] + public class SectionTypeDescriptorPutPostRequestValidator : FluentValidation.AbstractValidator + { + protected override bool PreValidate(FluentValidation.ValidationContext context, FluentValidation.Results.ValidationResult result) + { + if (context.InstanceToValidate == null) + { + result.Errors.Add(new ValidationFailure("", "Please ensure a model was supplied.")); + + return false; + } + + var instance = context.InstanceToValidate; + + var failures = new List(); + + // ----------------------- + // Validate unified keys + // ----------------------- + + // Recursively invoke the child collection item validators + + if (failures.Any()) + { + foreach (var failure in failures) + { + result.Errors.Add(failure); + } + + return false; + } + + return true; + } + } + // ----------------------------------------------------------------- + } // Aggregate: SeparationDescriptor @@ -130247,7 +131738,7 @@ public override int GetHashCode() public DateTime EndDate { get; set; } /// - /// An descriptor value indicating the term. + /// A descriptor value to indicate the term that the session is associated with. /// // NOT in a reference, IS a lookup column [DataMember(Name="termDescriptor")] @@ -131014,8 +132505,8 @@ public short SchoolYear [DataMember(Name="gradingPeriodDescriptor"), NaturalKeyMember] public string GradingPeriodDescriptor { get; set; } - [DataMember(Name="periodSequence"), NaturalKeyMember] - public int PeriodSequence { get; set; } + [DataMember(Name="gradingPeriodName"), NaturalKeyMember] + public string GradingPeriodName { get; set; } /// /// Gets or sets the referenced resource's identifier (i.e. "id" property). @@ -131057,7 +132548,7 @@ public Link Link public bool IsReferenceFullyDefined() { return GradingPeriodDescriptor != default(string) - && PeriodSequence != default(int) + && GradingPeriodName != default(string) ; } @@ -131184,7 +132675,7 @@ private void SetSession(Entities.Common.EdFi.ISession value) } /// - /// The name of the period for which grades are reported. + /// The state's name of the period for which grades are reported. /// // IS in a reference (SessionGradingPeriod.GradingPeriodDescriptorId), IS a lookup column @@ -131205,18 +132696,18 @@ string Entities.Common.EdFi.ISessionGradingPeriod.GradingPeriodDescriptor } /// - /// The sequential order of this period relative to other periods. + /// The school's descriptive name of the grading period. /// // IS in a reference, NOT a lookup column - int Entities.Common.EdFi.ISessionGradingPeriod.PeriodSequence + string Entities.Common.EdFi.ISessionGradingPeriod.GradingPeriodName { get { if (ImplicitGradingPeriodReference != null && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) - return ImplicitGradingPeriodReference.PeriodSequence; + return ImplicitGradingPeriodReference.GradingPeriodName; - return default(int); + return default(string); } set { @@ -131225,7 +132716,7 @@ int Entities.Common.EdFi.ISessionGradingPeriod.PeriodSequence // GradingPeriod _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.PeriodSequence = value; + ImplicitGradingPeriodReference.GradingPeriodName = value; } } // ------------------------------------------------------------- @@ -131261,7 +132752,7 @@ public override bool Equals(object obj) // Referenced Property - if (!(this as Entities.Common.EdFi.ISessionGradingPeriod).PeriodSequence.Equals(compareTo.PeriodSequence)) + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.ISessionGradingPeriod).GradingPeriodName, compareTo.GradingPeriodName)) return false; @@ -131286,7 +132777,7 @@ public override int GetHashCode() //Referenced Property - hash.Add((this as Entities.Common.EdFi.ISessionGradingPeriod).PeriodSequence); + hash.Add((this as Entities.Common.EdFi.ISessionGradingPeriod).GradingPeriodName); return hash.ToHashCode(); } // ------------------------------------------------------------- @@ -133466,6 +134957,13 @@ public override int GetHashCode() [DataMember(Name="firstName")] public string FirstName { get; set; } + /// + /// The gender the staff member identifies themselves as. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="genderIdentity")] + public string GenderIdentity { get; set; } + /// /// An appendage, if any, used to denote an individual's generation in his family (e.g., Jr., Sr., III). /// @@ -143650,6 +145148,13 @@ public override int GetHashCode() // Properties // ------------------------------------------------------------- + /// + /// Annual wage associated with the employment position being reported. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="annualWage")] + public decimal? AnnualWage { get; set; } + /// /// Identifier or serial number assigned to the credential. /// @@ -153046,15 +154551,15 @@ public string StudentUniqueId [DataMember(Name="gradingPeriodDescriptor"), NaturalKeyMember] public string GradingPeriodDescriptor { get; set; } + [DataMember(Name="gradingPeriodName"), NaturalKeyMember] + public string GradingPeriodName { get; set; } + [DataMember(Name="gradingPeriodSchoolId"), NaturalKeyMember] public long GradingPeriodSchoolId { get; set; } [DataMember(Name="gradingPeriodSchoolYear"), NaturalKeyMember] public short GradingPeriodSchoolYear { get; set; } - [DataMember(Name="gradingPeriodSequence"), NaturalKeyMember] - public int GradingPeriodSequence { get; set; } - /// /// Gets or sets the referenced resource's identifier (i.e. "id" property). /// @@ -153095,9 +154600,9 @@ public Link Link public bool IsReferenceFullyDefined() { return GradingPeriodDescriptor != default(string) + && GradingPeriodName != default(string) && GradingPeriodSchoolId != default(long) && GradingPeriodSchoolYear != default(short) - && GradingPeriodSequence != default(int) ; } @@ -153224,7 +154729,7 @@ private void SetStudentAcademicRecord(Entities.Common.EdFi.IStudentAcademicRecor } /// - /// The name of the period for which grades are reported. + /// The state's name of the period for which grades are reported. /// // IS in a reference (StudentAcademicRecordReportCard.GradingPeriodDescriptorId), IS a lookup column @@ -153245,18 +154750,18 @@ string Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodDescri } /// - /// The identifier assigned to a school. + /// The school's descriptive name of the grading period. /// // IS in a reference, NOT a lookup column - long Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodSchoolId + string Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodName { get { if (ImplicitReportCardReference != null && (_SuspendReferenceAssignmentCheck || ImplicitReportCardReference.IsReferenceFullyDefined())) - return ImplicitReportCardReference.GradingPeriodSchoolId; + return ImplicitReportCardReference.GradingPeriodName; - return default(long); + return default(string); } set { @@ -153265,23 +154770,23 @@ long Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodSchoolId // ReportCard _reportCardReferenceExplicitlyAssigned = false; - ImplicitReportCardReference.GradingPeriodSchoolId = value; + ImplicitReportCardReference.GradingPeriodName = value; } } /// - /// The identifier for the grading period school year. + /// The identifier assigned to a school. /// // IS in a reference, NOT a lookup column - short Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodSchoolYear + long Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodSchoolId { get { if (ImplicitReportCardReference != null && (_SuspendReferenceAssignmentCheck || ImplicitReportCardReference.IsReferenceFullyDefined())) - return ImplicitReportCardReference.GradingPeriodSchoolYear; + return ImplicitReportCardReference.GradingPeriodSchoolId; - return default(short); + return default(long); } set { @@ -153290,23 +154795,23 @@ short Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodSchoolY // ReportCard _reportCardReferenceExplicitlyAssigned = false; - ImplicitReportCardReference.GradingPeriodSchoolYear = value; + ImplicitReportCardReference.GradingPeriodSchoolId = value; } } /// - /// The sequential order of this period relative to other periods. + /// The identifier for the grading period school year. /// // IS in a reference, NOT a lookup column - int Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodSequence + short Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodSchoolYear { get { if (ImplicitReportCardReference != null && (_SuspendReferenceAssignmentCheck || ImplicitReportCardReference.IsReferenceFullyDefined())) - return ImplicitReportCardReference.GradingPeriodSequence; + return ImplicitReportCardReference.GradingPeriodSchoolYear; - return default(int); + return default(short); } set { @@ -153315,7 +154820,7 @@ int Entities.Common.EdFi.IStudentAcademicRecordReportCard.GradingPeriodSequence // ReportCard _reportCardReferenceExplicitlyAssigned = false; - ImplicitReportCardReference.GradingPeriodSequence = value; + ImplicitReportCardReference.GradingPeriodSchoolYear = value; } } // ------------------------------------------------------------- @@ -153351,17 +154856,17 @@ public override bool Equals(object obj) // Referenced Property - if (!(this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSchoolId.Equals(compareTo.GradingPeriodSchoolId)) + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodName, compareTo.GradingPeriodName)) return false; // Referenced Property - if (!(this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSchoolYear.Equals(compareTo.GradingPeriodSchoolYear)) + if (!(this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSchoolId.Equals(compareTo.GradingPeriodSchoolId)) return false; // Referenced Property - if (!(this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSequence.Equals(compareTo.GradingPeriodSequence)) + if (!(this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSchoolYear.Equals(compareTo.GradingPeriodSchoolYear)) return false; @@ -153386,13 +154891,13 @@ public override int GetHashCode() //Referenced Property - hash.Add((this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSchoolId); + hash.Add((this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodName); //Referenced Property - hash.Add((this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSchoolYear); + hash.Add((this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSchoolId); //Referenced Property - hash.Add((this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSequence); + hash.Add((this as Entities.Common.EdFi.IStudentAcademicRecordReportCard).GradingPeriodSchoolYear); return hash.ToHashCode(); } // ------------------------------------------------------------- @@ -159082,15 +160587,15 @@ public class StudentCompetencyObjectiveReference [DataMember(Name="gradingPeriodDescriptor"), NaturalKeyMember] public string GradingPeriodDescriptor { get; set; } + [DataMember(Name="gradingPeriodName"), NaturalKeyMember] + public string GradingPeriodName { get; set; } + [DataMember(Name="gradingPeriodSchoolId"), NaturalKeyMember] public long GradingPeriodSchoolId { get; set; } [DataMember(Name="gradingPeriodSchoolYear"), NaturalKeyMember] public short GradingPeriodSchoolYear { get; set; } - [DataMember(Name="gradingPeriodSequence"), NaturalKeyMember] - public int GradingPeriodSequence { get; set; } - [DataMember(Name="objective"), NaturalKeyMember] public string Objective { get; set; } @@ -159148,7 +160653,7 @@ public Link Link /// true if the reference's properties are all set to non-default values; otherwise false. public bool IsReferenceFullyDefined() { - return GradingPeriodDescriptor != default(string) && GradingPeriodSchoolId != default(long) && GradingPeriodSchoolYear != default(short) && GradingPeriodSequence != default(int) && Objective != default(string) && ObjectiveEducationOrganizationId != default(long) && ObjectiveGradeLevelDescriptor != default(string) && StudentUniqueId != default(string); + return GradingPeriodDescriptor != default(string) && GradingPeriodName != default(string) && GradingPeriodSchoolId != default(long) && GradingPeriodSchoolYear != default(short) && Objective != default(string) && ObjectiveEducationOrganizationId != default(long) && ObjectiveGradeLevelDescriptor != default(string) && StudentUniqueId != default(string); } private Link CreateLink() @@ -159324,7 +160829,7 @@ public Student.EdFi.StudentReference StudentReference // ------------------------------------------------------------- /// - /// The name of the period for which grades are reported. + /// The state's name of the period for which grades are reported. /// // IS in a reference (StudentCompetencyObjective.GradingPeriodDescriptorId), IS a lookup column @@ -159345,18 +160850,18 @@ string Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodDescriptor } /// - /// The identifier assigned to a school. + /// The school's descriptive name of the grading period. /// // IS in a reference, NOT a lookup column - long Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodSchoolId + string Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodName { get { if (ImplicitGradingPeriodReference != null && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) - return ImplicitGradingPeriodReference.SchoolId; + return ImplicitGradingPeriodReference.GradingPeriodName; - return default(long); + return default(string); } set { @@ -159365,23 +160870,23 @@ long Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodSchoolId // GradingPeriod _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.SchoolId = value; + ImplicitGradingPeriodReference.GradingPeriodName = value; } } /// - /// The identifier for the grading period school year. + /// The identifier assigned to a school. /// // IS in a reference, NOT a lookup column - short Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodSchoolYear + long Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodSchoolId { get { if (ImplicitGradingPeriodReference != null && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) - return ImplicitGradingPeriodReference.SchoolYear; + return ImplicitGradingPeriodReference.SchoolId; - return default(short); + return default(long); } set { @@ -159390,23 +160895,23 @@ short Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodSchoolYear // GradingPeriod _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.SchoolYear = value; + ImplicitGradingPeriodReference.SchoolId = value; } } /// - /// The sequential order of this period relative to other periods. + /// The identifier for the grading period school year. /// // IS in a reference, NOT a lookup column - int Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodSequence + short Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodSchoolYear { get { if (ImplicitGradingPeriodReference != null && (_SuspendReferenceAssignmentCheck || ImplicitGradingPeriodReference.IsReferenceFullyDefined())) - return ImplicitGradingPeriodReference.PeriodSequence; + return ImplicitGradingPeriodReference.SchoolYear; - return default(int); + return default(short); } set { @@ -159415,7 +160920,7 @@ int Entities.Common.EdFi.IStudentCompetencyObjective.GradingPeriodSequence // GradingPeriod _gradingPeriodReferenceExplicitlyAssigned = false; - ImplicitGradingPeriodReference.PeriodSequence = value; + ImplicitGradingPeriodReference.SchoolYear = value; } } @@ -159544,17 +161049,17 @@ public override bool Equals(object obj) // Referenced Property - if (!(this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSchoolId.Equals(compareTo.GradingPeriodSchoolId)) + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodName, compareTo.GradingPeriodName)) return false; // Referenced Property - if (!(this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSchoolYear.Equals(compareTo.GradingPeriodSchoolYear)) + if (!(this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSchoolId.Equals(compareTo.GradingPeriodSchoolId)) return false; // Referenced Property - if (!(this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSequence.Equals(compareTo.GradingPeriodSequence)) + if (!(this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSchoolYear.Equals(compareTo.GradingPeriodSchoolYear)) return false; @@ -159596,13 +161101,13 @@ public override int GetHashCode() //Referenced Property - hash.Add((this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSchoolId); + hash.Add((this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodName); //Referenced Property - hash.Add((this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSchoolYear); + hash.Add((this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSchoolId); //Referenced Property - hash.Add((this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSequence); + hash.Add((this as Entities.Common.EdFi.IStudentCompetencyObjective).GradingPeriodSchoolYear); //Referenced Property hash.Add((this as Entities.Common.EdFi.IStudentCompetencyObjective).Objective); @@ -164576,6 +166081,13 @@ public override int GetHashCode() [DataMember(Name="barrierToInternetAccessInResidenceDescriptor")] public string BarrierToInternetAccessInResidenceDescriptor { get; set; } + /// + /// The student's gender as last reported to the education organization. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="genderIdentity")] + public string GenderIdentity { get; set; } + /// /// An indication that the individual traces his or her origin or descent to Mexico, Puerto Rico, Cuba, Central, and South America, and other Spanish cultures, regardless of race, as last reported to the education organization. The term, \"Spanish origin,\" can be used in addition to \"Hispanic or Latino.\" /// @@ -164647,11 +166159,18 @@ public override int GetHashCode() public string ProfileThumbnail { get; set; } /// - /// The student's gender as last reported to the education organization. + /// The student's birth sex as reported to the education organization. /// // NOT in a reference, IS a lookup column [DataMember(Name="sexDescriptor")] public string SexDescriptor { get; set; } + + /// + /// Military connection of the person/people whom the student is a dependent of. + /// + // NOT in a reference, IS a lookup column + [DataMember(Name="supporterMilitaryConnectionDescriptor")] + public string SupporterMilitaryConnectionDescriptor { get; set; } // ------------------------------------------------------------- // ============================================================= @@ -185437,6 +186956,10 @@ public class StudentSectionAssociation : Entities.Common.EdFi.IStudentSectionAss // Constructor // ------------------------------------------------------------- + public StudentSectionAssociation() + { + StudentSectionAssociationPrograms = new List(); + } // ------------------------------------------------------------ // ============================================================ @@ -185842,7 +187365,449 @@ public override int GetHashCode() // Extensions // ------------------------------------------------------------- [JsonProperty("_ext")] - [JsonConverter(typeof(ExtensionsConverter), "StudentSectionAssociation", "StudentSectionAssociation")] + [JsonConverter(typeof(ExtensionsConverter), "StudentSectionAssociation", "StudentSectionAssociation")] + public System.Collections.IDictionary Extensions { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + private ICollection _studentSectionAssociationPrograms; + private ICollection _studentSectionAssociationProgramsCovariant; + + [DataMember(Name="programs"), NoDuplicateMembers] + public ICollection StudentSectionAssociationPrograms + { + get { return _studentSectionAssociationPrograms; } + set + { + if (value == null) return; + // Initialize primary list with notifying adapter immediately wired up so existing items are associated with the parent + var list = new CollectionAdapterWithAddNotifications(value, + (s, e) => ((Entities.Common.EdFi.IStudentSectionAssociationProgram)e.Item).StudentSectionAssociation = this); + _studentSectionAssociationPrograms = list; + + // Initialize covariant list with notifying adapter with deferred wire up so only new items are processed (optimization) + var covariantList = new CovariantCollectionAdapterWithAddNotifications(value); + covariantList.ItemAdded += (s, e) => ((Entities.Common.EdFi.IStudentSectionAssociationProgram)e.Item).StudentSectionAssociation = this; + _studentSectionAssociationProgramsCovariant = covariantList; + } + } + + // Covariant version, visible only on the interface + ICollection Entities.Common.EdFi.IStudentSectionAssociation.StudentSectionAssociationPrograms + { + get { return _studentSectionAssociationProgramsCovariant; } + set { StudentSectionAssociationPrograms = new List(value.Cast()); } + } + + // ------------------------------------------------------------- + + // ============================================================= + // Versioning + // ------------------------------------------------------------- + + [DataMember(Name="_etag")] + public virtual string ETag { get; set; } + + [DataMember(Name="_lastModifiedDate")] + public virtual DateTime LastModifiedDate { get; set; } + + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + // OnDeserialize + // ------------------------------------------------------------- + + [OnDeserialized] + internal void OnDeserialized(StreamingContext context) + { + // Reconnect external inbound references on deserialization + if (_studentSectionAssociationPrograms != null) foreach (var item in _studentSectionAssociationPrograms) + { + item.StudentSectionAssociation = this; + } + + } + // ------------------------------------------------------------ + + // ============================================================ + // Data Synchronization + // ------------------------------------------------------------ + bool ISynchronizable.Synchronize(object target) + { + return Entities.Common.EdFi.StudentSectionAssociationMapper.SynchronizeTo(this, (Entities.Common.EdFi.IStudentSectionAssociation)target); + } + + void IMappable.Map(object target) + { + Entities.Common.EdFi.StudentSectionAssociationMapper.MapTo(this, (Entities.Common.EdFi.IStudentSectionAssociation)target, null); + } + // ------------------------------------------------------------- + + // ================================================================= + // Resource Reference Data + // ----------------------------------------------------------------- + Guid? Entities.Common.EdFi.IStudentSectionAssociation.SectionResourceId + { + get { return null; } + set { ImplicitSectionReference.ResourceId = value ?? default(Guid); } + } + + string Entities.Common.EdFi.IStudentSectionAssociation.SectionDiscriminator + { + // Not supported for Resources + get { return null; } + set { ImplicitSectionReference.Discriminator = value; } + } + + + Guid? Entities.Common.EdFi.IStudentSectionAssociation.StudentResourceId + { + get { return null; } + set { ImplicitStudentReference.ResourceId = value ?? default(Guid); } + } + + string Entities.Common.EdFi.IStudentSectionAssociation.StudentDiscriminator + { + // Not supported for Resources + get { return null; } + set { ImplicitStudentReference.Discriminator = value; } + } + + + // ----------------------------------------------------------------- + } + + // ================================================================= + // Validators + // ----------------------------------------------------------------- + + [ExcludeFromCodeCoverage] + public class StudentSectionAssociationPutPostRequestValidator : FluentValidation.AbstractValidator + { + private static readonly FullName _fullName_edfi_StudentSectionAssociation = new FullName("edfi", "StudentSectionAssociation"); + + protected override bool PreValidate(FluentValidation.ValidationContext context, FluentValidation.Results.ValidationResult result) + { + if (context.InstanceToValidate == null) + { + result.Errors.Add(new ValidationFailure("", "Please ensure a model was supplied.")); + + return false; + } + + var instance = context.InstanceToValidate; + + var failures = new List(); + + // Profile-based collection item filter validation + string profileName = null; + + // Get the current mapping contract + var mappingContract = new Lazy(() => (StudentSectionAssociationMappingContract) GeneratedArtifactStaticDependencies + .MappingContractProvider + .GetMappingContract(_fullName_edfi_StudentSectionAssociation)); + + if (mappingContract.Value != null) + { + if (mappingContract.Value.IsStudentSectionAssociationProgramIncluded != null) + { + var hasInvalidStudentSectionAssociationProgramsItems = instance.StudentSectionAssociationPrograms.Any(x => !mappingContract.Value.IsStudentSectionAssociationProgramIncluded(x)); + + if (hasInvalidStudentSectionAssociationProgramsItems) + { + profileName ??= GeneratedArtifactStaticDependencies.ProfileContentTypeContextProvider.Get().ProfileName; + failures.Add(new ValidationFailure("StudentSectionAssociationProgram", $"A supplied 'StudentSectionAssociationProgram' has a descriptor value that does not conform with the filter values defined by profile '{profileName}'.")); + } + } + + } + // ----------------------- + // Validate unified keys + // ----------------------- + + // Recursively invoke the child collection item validators + var studentSectionAssociationProgramsValidator = new StudentSectionAssociationProgramPutPostRequestValidator(); + + foreach (var item in instance.StudentSectionAssociationPrograms) + { + var validationResult = studentSectionAssociationProgramsValidator.Validate(item); + + if (!validationResult.IsValid) + failures.AddRange(validationResult.Errors); + } + + + if (failures.Any()) + { + foreach (var failure in failures) + { + result.Errors.Add(failure); + } + + return false; + } + + return true; + } + } + // ----------------------------------------------------------------- + + /// + /// A class which represents the edfi.StudentSectionAssociationProgram table of the StudentSectionAssociation aggregate in the ODS Database. + /// + [Serializable, DataContract] + [ExcludeFromCodeCoverage] + public class StudentSectionAssociationProgram : Entities.Common.EdFi.IStudentSectionAssociationProgram + { +#pragma warning disable 414 + private bool _SuspendReferenceAssignmentCheck = false; + public void SuspendReferenceAssignmentCheck() { _SuspendReferenceAssignmentCheck = true; } +#pragma warning restore 414 + + // ============================================================= + // Constructor + // ------------------------------------------------------------- + + // ------------------------------------------------------------ + + // ============================================================ + // Unique Identifier + // ------------------------------------------------------------ + // ------------------------------------------------------------ + + // ============================================================= + // References + // ------------------------------------------------------------- + + private bool _programReferenceExplicitlyAssigned; + private Program.EdFi.ProgramReference _programReference; + private Program.EdFi.ProgramReference ImplicitProgramReference + { + get + { + // if the Reference is null, it is instantiated unless it has been explicitly assigned to null + if (_programReference == null && !_programReferenceExplicitlyAssigned) + _programReference = new Program.EdFi.ProgramReference(); + + return _programReference; + } + } + + [DataMember(Name="programReference")][NaturalKeyMember] + public Program.EdFi.ProgramReference ProgramReference + { + get + { + // Only return the reference if it's non-null, and all its properties have non-default values assigned + if (ImplicitProgramReference != null + && (_programReferenceExplicitlyAssigned || _SuspendReferenceAssignmentCheck || ImplicitProgramReference.IsReferenceFullyDefined())) + return ImplicitProgramReference; + + return null; + } + set + { + _programReferenceExplicitlyAssigned = true; + _programReference = value; + } + } + // ------------------------------------------------------------- + + //============================================================== + // Primary Key + // ------------------------------------------------------------- + private Entities.Common.EdFi.IStudentSectionAssociation _studentSectionAssociation; + + [IgnoreDataMember] + Entities.Common.EdFi.IStudentSectionAssociation IStudentSectionAssociationProgram.StudentSectionAssociation + { + get { return _studentSectionAssociation; } + set { SetStudentSectionAssociation(value); } + } + + internal Entities.Common.EdFi.IStudentSectionAssociation StudentSectionAssociation + { + set { SetStudentSectionAssociation(value); } + } + + private void SetStudentSectionAssociation(Entities.Common.EdFi.IStudentSectionAssociation value) + { + _studentSectionAssociation = value; + } + + /// + /// The identifier assigned to an education organization. + /// + // IS in a reference, NOT a lookup column + long Entities.Common.EdFi.IStudentSectionAssociationProgram.EducationOrganizationId + { + get + { + if (ImplicitProgramReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitProgramReference.IsReferenceFullyDefined())) + return ImplicitProgramReference.EducationOrganizationId; + + return default(long); + } + set + { + // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. + // All ExplicitlyAssigned are reset to false in advanced + + // Program + _programReferenceExplicitlyAssigned = false; + ImplicitProgramReference.EducationOrganizationId = value; + } + } + + /// + /// The formal name of the program of instruction, training, services, or benefits available through federal, state, or local agencies. + /// + // IS in a reference, NOT a lookup column + string Entities.Common.EdFi.IStudentSectionAssociationProgram.ProgramName + { + get + { + if (ImplicitProgramReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitProgramReference.IsReferenceFullyDefined())) + return ImplicitProgramReference.ProgramName; + + return default(string); + } + set + { + // When a property is assigned, Reference should not be null even if it has been explicitly assigned to null. + // All ExplicitlyAssigned are reset to false in advanced + + // Program + _programReferenceExplicitlyAssigned = false; + ImplicitProgramReference.ProgramName = value; + } + } + + /// + /// The type of program. + /// + + // IS in a reference (StudentSectionAssociationProgram.ProgramTypeDescriptorId), IS a lookup column + string Entities.Common.EdFi.IStudentSectionAssociationProgram.ProgramTypeDescriptor + { + get + { + if (ImplicitProgramReference != null + && (_SuspendReferenceAssignmentCheck || ImplicitProgramReference.IsReferenceFullyDefined())) + return ImplicitProgramReference.ProgramTypeDescriptor; + + return null; + } + set + { + ImplicitProgramReference.ProgramTypeDescriptor = value; + } + } + // ------------------------------------------------------------- + + // ============================================================= + // Equality + // ------------------------------------------------------------- + + /// + /// Determines equality based on the natural key properties of the resource. + /// + /// + /// A boolean value indicating equality result of the compared resources. + /// + public override bool Equals(object obj) + { + var compareTo = obj as Entities.Common.EdFi.IStudentSectionAssociationProgram; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + // Parent Property + if (_studentSectionAssociation == null || !_studentSectionAssociation.Equals(compareTo.StudentSectionAssociation)) + return false; + + + // Referenced Property + if (!(this as Entities.Common.EdFi.IStudentSectionAssociationProgram).EducationOrganizationId.Equals(compareTo.EducationOrganizationId)) + return false; + + + // Referenced Property + if (!GeneratedArtifactStaticDependencies.DatabaseEngineSpecificStringComparer.Equals((this as Entities.Common.EdFi.IStudentSectionAssociationProgram).ProgramName, compareTo.ProgramName)) + return false; + + + // Unified Type Property + if (!StringComparer.OrdinalIgnoreCase.Equals((this as Entities.Common.EdFi.IStudentSectionAssociationProgram).ProgramTypeDescriptor, compareTo.ProgramTypeDescriptor)) + return false; + + + return true; + } + + /// + /// Builds the hash code based on the unique identifying values. + /// + /// + /// A hash code for the resource. + /// + public override int GetHashCode() + { + var hash = new HashCode(); + //Parent Property + if (_studentSectionAssociation != null) + hash.Add(_studentSectionAssociation); + + //Referenced Property + hash.Add((this as Entities.Common.EdFi.IStudentSectionAssociationProgram).EducationOrganizationId); + + //Referenced Property + hash.Add((this as Entities.Common.EdFi.IStudentSectionAssociationProgram).ProgramName); + + //Unified Type Property + hash.Add((this as Entities.Common.EdFi.IStudentSectionAssociationProgram).ProgramTypeDescriptor); + + return hash.ToHashCode(); + } + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + [JsonProperty("_ext")] + [JsonConverter(typeof(ExtensionsConverter), "StudentSectionAssociation", "StudentSectionAssociationProgram")] public System.Collections.IDictionary Extensions { get; set; } // ------------------------------------------------------------- @@ -185854,13 +187819,6 @@ public override int GetHashCode() // ============================================================= // Versioning // ------------------------------------------------------------- - - [DataMember(Name="_etag")] - public virtual string ETag { get; set; } - - [DataMember(Name="_lastModifiedDate")] - public virtual DateTime LastModifiedDate { get; set; } - // ------------------------------------------------------------- // ------------------------------------------------------------- @@ -185873,43 +187831,29 @@ public override int GetHashCode() // ------------------------------------------------------------ bool ISynchronizable.Synchronize(object target) { - return Entities.Common.EdFi.StudentSectionAssociationMapper.SynchronizeTo(this, (Entities.Common.EdFi.IStudentSectionAssociation)target); + return Entities.Common.EdFi.StudentSectionAssociationProgramMapper.SynchronizeTo(this, (Entities.Common.EdFi.IStudentSectionAssociationProgram)target); } void IMappable.Map(object target) { - Entities.Common.EdFi.StudentSectionAssociationMapper.MapTo(this, (Entities.Common.EdFi.IStudentSectionAssociation)target, null); + Entities.Common.EdFi.StudentSectionAssociationProgramMapper.MapTo(this, (Entities.Common.EdFi.IStudentSectionAssociationProgram)target, null); } // ------------------------------------------------------------- // ================================================================= // Resource Reference Data // ----------------------------------------------------------------- - Guid? Entities.Common.EdFi.IStudentSectionAssociation.SectionResourceId - { - get { return null; } - set { ImplicitSectionReference.ResourceId = value ?? default(Guid); } - } - - string Entities.Common.EdFi.IStudentSectionAssociation.SectionDiscriminator - { - // Not supported for Resources - get { return null; } - set { ImplicitSectionReference.Discriminator = value; } - } - - - Guid? Entities.Common.EdFi.IStudentSectionAssociation.StudentResourceId + Guid? Entities.Common.EdFi.IStudentSectionAssociationProgram.ProgramResourceId { get { return null; } - set { ImplicitStudentReference.ResourceId = value ?? default(Guid); } + set { ImplicitProgramReference.ResourceId = value ?? default(Guid); } } - string Entities.Common.EdFi.IStudentSectionAssociation.StudentDiscriminator + string Entities.Common.EdFi.IStudentSectionAssociationProgram.ProgramDiscriminator { // Not supported for Resources get { return null; } - set { ImplicitStudentReference.Discriminator = value; } + set { ImplicitProgramReference.Discriminator = value; } } @@ -185921,9 +187865,9 @@ string Entities.Common.EdFi.IStudentSectionAssociation.StudentDiscriminator // ----------------------------------------------------------------- [ExcludeFromCodeCoverage] - public class StudentSectionAssociationPutPostRequestValidator : FluentValidation.AbstractValidator + public class StudentSectionAssociationProgramPutPostRequestValidator : FluentValidation.AbstractValidator { - protected override bool PreValidate(FluentValidation.ValidationContext context, FluentValidation.Results.ValidationResult result) + protected override bool PreValidate(FluentValidation.ValidationContext context, FluentValidation.Results.ValidationResult result) { if (context.InstanceToValidate == null) { @@ -191477,6 +193421,277 @@ protected override bool PreValidate(FluentValidation.ValidationContext + /// A class which represents the edfi.SupporterMilitaryConnectionDescriptor table of the SupporterMilitaryConnectionDescriptor aggregate in the ODS Database. + /// + [Serializable, DataContract] + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptor : Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor, Entities.Common.EdFi.IDescriptor, IHasETag, IDateVersionedEntity + { +#pragma warning disable 414 + private bool _SuspendReferenceAssignmentCheck = false; + public void SuspendReferenceAssignmentCheck() { _SuspendReferenceAssignmentCheck = true; } +#pragma warning restore 414 + + // ============================================================= + // Constructor + // ------------------------------------------------------------- + + // ------------------------------------------------------------ + + // ============================================================ + // Unique Identifier + // ------------------------------------------------------------ + + /// + /// The unique identifier for the SupporterMilitaryConnectionDescriptor resource. + /// + [DataMember(Name="id")] + [JsonConverter(typeof(GuidConverter))] + public Guid Id { get; set; } + // ------------------------------------------------------------ + + // ============================================================= + // References + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + //============================================================== + // Primary Key + // ------------------------------------------------------------- + + /// + /// A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="supporterMilitaryConnectionDescriptorId"), NaturalKeyMember] + public int SupporterMilitaryConnectionDescriptorId { get; set; } + + int IDescriptor.DescriptorId + { + get { return SupporterMilitaryConnectionDescriptorId; } + set { SupporterMilitaryConnectionDescriptorId = value; } + } + // ------------------------------------------------------------- + + // ============================================================= + // Equality + // ------------------------------------------------------------- + + /// + /// Determines equality based on the natural key properties of the resource. + /// + /// + /// A boolean value indicating equality result of the compared resources. + /// + public override bool Equals(object obj) + { + var compareTo = obj as Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor; + + if (ReferenceEquals(this, compareTo)) + return true; + + if (compareTo == null) + return false; + + + // Derived Property + if (!(this as Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor).SupporterMilitaryConnectionDescriptorId.Equals(compareTo.SupporterMilitaryConnectionDescriptorId)) + return false; + + + return true; + } + + /// + /// Builds the hash code based on the unique identifying values. + /// + /// + /// A hash code for the resource. + /// + public override int GetHashCode() + { + var hash = new HashCode(); + + //Derived Property + hash.Add((this as Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor).SupporterMilitaryConnectionDescriptorId); + + return hash.ToHashCode(); + } + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Properties + // ------------------------------------------------------------- + + /// + /// A code or abbreviation that is used to refer to the descriptor. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="codeValue")] + public string CodeValue { get; set; } + + /// + /// The description of the descriptor. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="description")] + public string Description { get; set; } + + /// + /// The beginning date of the period when the descriptor is in effect. If omitted, the default is immediate effectiveness. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="effectiveBeginDate")][JsonConverter(typeof(Iso8601UtcDateOnlyConverter))] + public DateTime? EffectiveBeginDate { get; set; } + + /// + /// The end date of the period when the descriptor is in effect. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="effectiveEndDate")][JsonConverter(typeof(Iso8601UtcDateOnlyConverter))] + public DateTime? EffectiveEndDate { get; set; } + + /// + /// A globally unique namespace that identifies this descriptor set. Author is strongly encouraged to use the Universal Resource Identifier (http, ftp, file, etc.) for the source of the descriptor definition. Best practice is for this source to be the descriptor file itself, so that it can be machine-readable and be fetched in real-time, if necessary. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="namespace")] + public string Namespace { get; set; } + + /// + /// A unique identifier used as Primary Key, not derived from business logic, when acting as Foreign Key, references the parent table. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="priorDescriptorId")] + public int? PriorDescriptorId { get; set; } + + /// + /// A shortened description for the descriptor. + /// + // NOT in a reference, NOT a lookup column + [DataMember(Name="shortDescription")] + public string ShortDescription { get; set; } + // ------------------------------------------------------------- + + // ============================================================= + // Properties + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited One-to-one relationships + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Inherited Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Extensions + // ------------------------------------------------------------- + // NOT a lookup column, Not supported by this model, so there's "null object pattern" style implementation + public System.Collections.IDictionary Extensions { + get { return null; } + set { } + } + // ------------------------------------------------------------- + + // ============================================================= + // Collections + // ------------------------------------------------------------- + // ------------------------------------------------------------- + + // ============================================================= + // Versioning + // ------------------------------------------------------------- + + [DataMember(Name="_etag")] + public virtual string ETag { get; set; } + + [DataMember(Name="_lastModifiedDate")] + public virtual DateTime LastModifiedDate { get; set; } + + // ------------------------------------------------------------- + + // ------------------------------------------------------------- + // OnDeserialize + // ------------------------------------------------------------- + // ------------------------------------------------------------ + + // ============================================================ + // Data Synchronization + // ------------------------------------------------------------ + bool ISynchronizable.Synchronize(object target) + { + return Entities.Common.EdFi.SupporterMilitaryConnectionDescriptorMapper.SynchronizeTo(this, (Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor)target); + } + + void IMappable.Map(object target) + { + Entities.Common.EdFi.SupporterMilitaryConnectionDescriptorMapper.MapTo(this, (Entities.Common.EdFi.ISupporterMilitaryConnectionDescriptor)target, null); + } + // ------------------------------------------------------------- + + // ================================================================= + // Resource Reference Data + // ----------------------------------------------------------------- + // ----------------------------------------------------------------- + } + + // ================================================================= + // Validators + // ----------------------------------------------------------------- + + [ExcludeFromCodeCoverage] + public class SupporterMilitaryConnectionDescriptorPutPostRequestValidator : FluentValidation.AbstractValidator + { + protected override bool PreValidate(FluentValidation.ValidationContext context, FluentValidation.Results.ValidationResult result) + { + if (context.InstanceToValidate == null) + { + result.Errors.Add(new ValidationFailure("", "Please ensure a model was supplied.")); + + return false; + } + + var instance = context.InstanceToValidate; + + var failures = new List(); + + // ----------------------- + // Validate unified keys + // ----------------------- + + // Recursively invoke the child collection item validators + + if (failures.Any()) + { + foreach (var failure in failures) + { + result.Errors.Add(failure); + } + + return false; + } + + return true; + } + } + // ----------------------------------------------------------------- + } // Aggregate: Survey diff --git a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Security_Authorization_EntityAuthorizationContextProviders.generated.approved.cs b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Security_Authorization_EntityAuthorizationContextProviders.generated.approved.cs index f92d78fbdc..814903decf 100644 --- a/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Security_Authorization_EntityAuthorizationContextProviders.generated.approved.cs +++ b/Utilities/CodeGeneration/EdFi.Ods.CodeGen.Tests/Approval/5.0.0/DataStandard_500_ApprovalTests.Verify.Standard_Std_5.0.0_Security_Authorization_EntityAuthorizationContextProviders.generated.approved.cs @@ -849,6 +849,7 @@ public TContextData GetContextData(ICourseTranscript resource) // CourseEducationOrganizationId = entity.CourseEducationOrganizationId, // Primary key property, Role name applied contextData.EducationOrganizationId = entity.EducationOrganizationId == default(long) ? null as long? : entity.EducationOrganizationId; // Primary key property, Only Education Organization Id present // ExternalEducationOrganizationId = entity.ExternalEducationOrganizationId, // Role name applied and not part of primary key + // ResponsibleTeacherStaffUSI = entity.ResponsibleTeacherStaffUSI, // Not part of primary key contextData.StudentUSI = entity.StudentUSI == default(int) ? null as int? : entity.StudentUSI; // Primary key property, USI return contextData; } @@ -863,6 +864,7 @@ public string[] GetAuthorizationContextPropertyNames() // "CourseEducationOrganizationId", "EducationOrganizationId", // "ExternalEducationOrganizationId", + // "ResponsibleTeacherStaffUSI", "StudentUSI", }; diff --git a/tests/EdFi.Ods.WebApi.IntegrationTests/Controllers/Standard/5.0.0/AggregateDependencyControllerTests.Should_Get_Dependencies.approved.txt b/tests/EdFi.Ods.WebApi.IntegrationTests/Controllers/Standard/5.0.0/AggregateDependencyControllerTests.Should_Get_Dependencies.approved.txt index 6dd777f02c..f028ba6cce 100644 --- a/tests/EdFi.Ods.WebApi.IntegrationTests/Controllers/Standard/5.0.0/AggregateDependencyControllerTests.Should_Get_Dependencies.approved.txt +++ b/tests/EdFi.Ods.WebApi.IntegrationTests/Controllers/Standard/5.0.0/AggregateDependencyControllerTests.Should_Get_Dependencies.approved.txt @@ -1351,6 +1351,14 @@ "Update" ] }, + { + "resource": "/ed-fi/sectionTypeDescriptors", + "order": 1, + "operations": [ + "Create", + "Update" + ] + }, { "resource": "/ed-fi/separationDescriptors", "order": 1, @@ -1471,6 +1479,14 @@ "Update" ] }, + { + "resource": "/ed-fi/supporterMilitaryConnectionDescriptors", + "order": 1, + "operations": [ + "Create", + "Update" + ] + }, { "resource": "/ed-fi/surveyCategoryDescriptors", "order": 1, diff --git a/tests/EdFi.Ods.WebApi.IntegrationTests/Controllers/Standard/5.0.0/AggregateDependencyControllerTests.Should_Get_Dependencies_GraphML.approved.txt b/tests/EdFi.Ods.WebApi.IntegrationTests/Controllers/Standard/5.0.0/AggregateDependencyControllerTests.Should_Get_Dependencies_GraphML.approved.txt index c4a99990a0..9e52e190de 100644 --- a/tests/EdFi.Ods.WebApi.IntegrationTests/Controllers/Standard/5.0.0/AggregateDependencyControllerTests.Should_Get_Dependencies_GraphML.approved.txt +++ b/tests/EdFi.Ods.WebApi.IntegrationTests/Controllers/Standard/5.0.0/AggregateDependencyControllerTests.Should_Get_Dependencies_GraphML.approved.txt @@ -240,6 +240,7 @@ + @@ -299,6 +300,7 @@ + @@ -1051,6 +1053,7 @@ + @@ -1063,6 +1066,7 @@ + @@ -1186,6 +1190,7 @@ + @@ -1193,6 +1198,7 @@ + @@ -1213,6 +1219,7 @@ + @@ -1231,6 +1238,7 @@ + @@ -1366,6 +1374,7 @@ +