protected override void BuildModel()

in apps/samplecode/education/rosterapi/EducationAccelerator.WebApi/EducationAccelerator.WebApi/Migrations/ApiContextModelSnapshot.cs [12:562]


        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "2.0.0-rtm-26452");

            modelBuilder.Entity("OneRosterProviderDemo.Models.AcademicSession", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<DateTime>("CreatedAt");

                    b.Property<DateTime>("EndDate");

                    b.Property<string>("Metadata");

                    b.Property<string>("ParentAcademicSessionId");

                    b.Property<string>("SchoolYear")
                        .IsRequired();

                    b.Property<DateTime>("StartDate");

                    b.Property<int>("Status");

                    b.Property<string>("Title")
                        .IsRequired();

                    b.Property<int>("Type");

                    b.Property<DateTime>("UpdatedAt");

                    b.HasKey("Id");

                    b.HasIndex("ParentAcademicSessionId");

                    b.ToTable("AcademicSessions");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.Course", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("CourseCode");

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("Metadata");

                    b.Property<string>("OrgId")
                        .IsRequired();

                    b.Property<string>("SchoolYearAcademicSessionId");

                    b.Property<int>("Status");

                    b.Property<string>("Title")
                        .IsRequired();

                    b.Property<DateTime>("UpdatedAt");

                    b.Property<string>("_grades");

                    b.Property<string>("_subjectCodes");

                    b.HasKey("Id");

                    b.HasIndex("OrgId");

                    b.HasIndex("SchoolYearAcademicSessionId");

                    b.ToTable("Courses");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.Enrollment", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<DateTime>("BeginDate");

                    b.Property<DateTime>("CreatedAt");

                    b.Property<DateTime>("EndDate");

                    b.Property<string>("IMSClassId")
                        .IsRequired();

                    b.Property<string>("Metadata");

                    b.Property<bool?>("Primary");

                    b.Property<int>("Role");

                    b.Property<string>("SchoolOrgId")
                        .IsRequired();

                    b.Property<int>("Status");

                    b.Property<DateTime>("UpdatedAt");

                    b.Property<string>("UserId")
                        .IsRequired();

                    b.HasKey("Id");

                    b.HasIndex("IMSClassId");

                    b.HasIndex("SchoolOrgId");

                    b.HasIndex("UserId");

                    b.ToTable("Enrollments");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.IMSClass", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("IMSClassCode");

                    b.Property<int>("IMSClassType");

                    b.Property<string>("CourseId")
                        .IsRequired();

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("Location");

                    b.Property<string>("Metadata");

                    b.Property<string>("SchoolOrgId")
                        .IsRequired();

                    b.Property<int>("Status");

                    b.Property<string>("Title")
                        .IsRequired();

                    b.Property<DateTime>("UpdatedAt");

                    b.Property<string>("_grades");

                    b.Property<string>("_periods");

                    b.Property<string>("_subjectCodes");

                    b.HasKey("Id");

                    b.HasIndex("CourseId");

                    b.HasIndex("SchoolOrgId");

                    b.ToTable("IMSClasses");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.IMSClassAcademicSession", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("AcademicSessionId");

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("IMSClassId");

                    b.Property<string>("Metadata");

                    b.Property<int>("Status");

                    b.Property<DateTime>("UpdatedAt");

                    b.HasKey("Id");

                    b.HasIndex("AcademicSessionId");

                    b.HasIndex("IMSClassId");

                    b.ToTable("IMSClassAcademicSessions");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.LineItem", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("AcademicSessionId")
                        .IsRequired();

                    b.Property<DateTime>("AssignDate");

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("Description");

                    b.Property<DateTime>("DueDate");

                    b.Property<string>("IMSClassId")
                        .IsRequired();

                    b.Property<string>("LineItemCategoryId")
                        .IsRequired();

                    b.Property<string>("Metadata");

                    b.Property<float>("ResultValueMax");

                    b.Property<float>("ResultValueMin");

                    b.Property<int>("Status");

                    b.Property<string>("Title")
                        .IsRequired();

                    b.Property<DateTime>("UpdatedAt");

                    b.HasKey("Id");

                    b.HasIndex("AcademicSessionId");

                    b.HasIndex("IMSClassId");

                    b.HasIndex("LineItemCategoryId");

                    b.ToTable("LineItems");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.LineItemCategory", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("Metadata");

                    b.Property<int>("Status");

                    b.Property<string>("Title")
                        .IsRequired();

                    b.Property<DateTime>("UpdatedAt");

                    b.HasKey("Id");

                    b.ToTable("LineItemCategories");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.OauthNonce", b =>
                {
                    b.Property<string>("Value")
                        .ValueGeneratedOnAdd();

                    b.Property<DateTime>("UsedAt");

                    b.HasKey("Value");

                    b.ToTable("OauthNonces");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.Org", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("Identifier");

                    b.Property<string>("Metadata");

                    b.Property<string>("Name")
                        .IsRequired();

                    b.Property<string>("ParentId");

                    b.Property<string>("ParentOrgId");

                    b.Property<int>("Status");

                    b.Property<int>("Type");

                    b.Property<DateTime>("UpdatedAt");

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.ToTable("Orgs");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.Result", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("Comment");

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("LineItemId")
                        .IsRequired();

                    b.Property<string>("Metadata");

                    b.Property<float>("Score");

                    b.Property<DateTime>("ScoreDate");

                    b.Property<int>("ScoreStatus");

                    b.Property<int>("Status");

                    b.Property<string>("StudentUserId")
                        .IsRequired();

                    b.Property<DateTime>("UpdatedAt");

                    b.HasKey("Id");

                    b.HasIndex("LineItemId");

                    b.HasIndex("StudentUserId");

                    b.ToTable("Results");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.User", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("Email");

                    b.Property<bool>("EnabledUser");

                    b.Property<string>("FamilyName")
                        .IsRequired();

                    b.Property<string>("GivenName")
                        .IsRequired();

                    b.Property<string>("Identifier");

                    b.Property<string>("Metadata");

                    b.Property<string>("MiddleName");

                    b.Property<string>("Password");

                    b.Property<string>("Phone");

                    b.Property<int>("Role");

                    b.Property<string>("SMS");

                    b.Property<int>("Status");

                    b.Property<DateTime>("UpdatedAt");

                    b.Property<string>("Username")
                        .IsRequired();

                    b.Property<string>("_grades");

                    b.HasKey("Id");

                    b.ToTable("Users");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.UserAgent", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("AgentUserId");

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("Metadata");

                    b.Property<int>("Status");

                    b.Property<string>("SubjectUserId");

                    b.Property<DateTime>("UpdatedAt");

                    b.HasKey("Id");

                    b.HasIndex("AgentUserId");

                    b.HasIndex("SubjectUserId");

                    b.ToTable("UserAgents");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.UserOrg", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<DateTime>("CreatedAt");

                    b.Property<string>("Metadata");

                    b.Property<string>("OrgId");

                    b.Property<int>("Status");

                    b.Property<DateTime>("UpdatedAt");

                    b.Property<string>("UserId");

                    b.HasKey("Id");

                    b.HasIndex("OrgId");

                    b.HasIndex("UserId");

                    b.ToTable("UserOrgs");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.AcademicSession", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.AcademicSession", "ParentAcademicSession")
                        .WithMany("Children")
                        .HasForeignKey("ParentAcademicSessionId");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.Course", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.Org", "Org")
                        .WithMany()
                        .HasForeignKey("OrgId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("OneRosterProviderDemo.Models.AcademicSession", "SchoolYearAcademicSession")
                        .WithMany()
                        .HasForeignKey("SchoolYearAcademicSessionId");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.Enrollment", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.IMSClass", "IMSClass")
                        .WithMany("Enrollments")
                        .HasForeignKey("IMSClassId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("OneRosterProviderDemo.Models.Org", "School")
                        .WithMany()
                        .HasForeignKey("SchoolOrgId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("OneRosterProviderDemo.Models.User", "User")
                        .WithMany("Enrollments")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.IMSClass", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.Course", "Course")
                        .WithMany()
                        .HasForeignKey("CourseId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("OneRosterProviderDemo.Models.Org", "School")
                        .WithMany()
                        .HasForeignKey("SchoolOrgId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.IMSClassAcademicSession", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.AcademicSession", "AcademicSession")
                        .WithMany()
                        .HasForeignKey("AcademicSessionId");

                    b.HasOne("OneRosterProviderDemo.Models.IMSClass", "IMSClass")
                        .WithMany("IMSClassAcademicSessions")
                        .HasForeignKey("IMSClassId");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.LineItem", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.AcademicSession", "AcademicSession")
                        .WithMany()
                        .HasForeignKey("AcademicSessionId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("OneRosterProviderDemo.Models.IMSClass", "IMSClass")
                        .WithMany()
                        .HasForeignKey("IMSClassId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("OneRosterProviderDemo.Models.LineItemCategory", "LineItemCategory")
                        .WithMany()
                        .HasForeignKey("LineItemCategoryId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.Org", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.Org", "Parent")
                        .WithMany("Children")
                        .HasForeignKey("ParentId");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.Result", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.LineItem", "LineItem")
                        .WithMany()
                        .HasForeignKey("LineItemId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("OneRosterProviderDemo.Models.User", "Student")
                        .WithMany()
                        .HasForeignKey("StudentUserId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.UserAgent", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.User", "Agent")
                        .WithMany()
                        .HasForeignKey("AgentUserId");

                    b.HasOne("OneRosterProviderDemo.Models.User", "Subject")
                        .WithMany("UserAgents")
                        .HasForeignKey("SubjectUserId");
                });

            modelBuilder.Entity("OneRosterProviderDemo.Models.UserOrg", b =>
                {
                    b.HasOne("OneRosterProviderDemo.Models.Org", "Org")
                        .WithMany()
                        .HasForeignKey("OrgId");

                    b.HasOne("OneRosterProviderDemo.Models.User", "User")
                        .WithMany("UserOrgs")
                        .HasForeignKey("UserId");
                });
#pragma warning restore 612, 618
        }