{
  "_comment": "InstituteRun monorepo service manifest. Consumed by detect-changed-services.ps1 and (indirectly) by azure-pipelines.yml. sourceRepo/sourceBranch are only used by Merge-ToMonorepo.ps1 during the one-time migration.",
  "sharedLibraries": [
    {
      "name": "Utility",
      "path": "Utility/Utility.csproj",
      "sourceRepo": "Utility",
      "sourceBranch": "develop",
      "note": "Referenced by every service below (confirmed via ProjectReference scan). A change here must fan out to ALL services - that is correct here, unlike CLM's over-broad Utilities/Authentication mapping."
    },
    {
      "name": "Shared",
      "path": "Shared/Shared.Services.csproj",
      "sourceRepo": "Shared",
      "sourceBranch": "develop",
      "note": "No service currently references this (no ProjectReference found anywhere). Build it for validation only; do not fan out to any service until it's actually wired into a .csproj. Update dependsOn lists below once it is."
    }
  ],
  "services": [
    { "name": "Accounts", "projectPath": "Accounts/Accounts/Accounts.csproj", "sourceRepo": "Accounts", "sourceBranch": "Develop", "iisAppPool": "InstituteRun-Accounts", "iisPhysicalPath": "E:\\InstituteRun\\API\\Accounts", "dependsOn": ["Utility"] },
    { "name": "Admission_API", "projectPath": "Admission_API/Admission_API/Admission_API.csproj", "sourceRepo": "Admission_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-Admission_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\Admission_API", "dependsOn": ["Utility"] },
    { "name": "Attendance_SE_API", "projectPath": "Attendance_SE_API/Attendance_SE_API/Attendance_SE_API.csproj", "sourceRepo": "Attendance_SE_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-Attendance_SE_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\Attendance_SE_API", "dependsOn": ["Utility"] },
    { "name": "Communication_API", "projectPath": "Communication_API/Communication_API/Communication_API.csproj", "sourceRepo": "Communication_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-Communication_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\Communication_API", "dependsOn": ["Utility"] },
    { "name": "Employee_API", "projectPath": "Employee_API/Employee_API/Employee_API.csproj", "sourceRepo": "Employee_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-Employee_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\Employee_API", "dependsOn": ["Utility"] },
    { "name": "EventsAndGallery", "projectPath": "EventsAndGallery/EventsAndGallery/EventsAndGallery.csproj", "sourceRepo": "EventsAndGallery", "sourceBranch": "develop", "iisAppPool": "InstituteRun-EventsAndGallery", "iisPhysicalPath": "E:\\InstituteRun\\API\\EventsAndGallery", "dependsOn": ["Utility"] },
    { "name": "Exam_Management", "projectPath": "Exam_Management/ExamManagement/ExamManagement.csproj", "sourceRepo": "Exam_Management", "sourceBranch": "develop", "iisAppPool": "InstituteRun-Exam_Management", "iisPhysicalPath": "E:\\InstituteRun\\API\\Exam_Management", "dependsOn": ["Utility"] },
    { "name": "FeeManagement_API", "projectPath": "FeeManagement_API/FeeManagement_API/FeeManagement_API.csproj", "sourceRepo": "FeeManagement_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-FeeManagement_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\FeeManagement_API", "dependsOn": ["Utility"], "note": "Repo also contains Tools/FeesReportsDocxGen - an auxiliary console tool, not part of the deployed API. Excluded from deploy manifest; add separately if it needs its own pipeline." },
    { "name": "HRMS", "projectPath": "HRMS/HRMS/HRMS.csproj", "sourceRepo": "HRMS", "sourceBranch": "develop", "iisAppPool": "InstituteRun-HRMS", "iisPhysicalPath": "E:\\InstituteRun\\API\\HRMS", "dependsOn": ["Utility"] },
    { "name": "HostelManagement_API", "projectPath": "HostelManagement_API/HostelManagement_API/HostelManagement_API.csproj", "sourceRepo": "HostelManagement_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-HostelManagement_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\HostelManagement_API", "dependsOn": ["Utility"] },
    { "name": "Infirmary_API", "projectPath": "Infirmary_API/Infirmary_API/Infirmary_API.csproj", "sourceRepo": "Infirmary_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-Infirmary_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\Infirmary_API", "dependsOn": ["Utility"] },
    { "name": "Institute_API", "projectPath": "Institute_API/Institute_API/Institute_API.csproj", "sourceRepo": "Institute_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-Institute_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\Institute_API", "dependsOn": ["Utility"] },
    { "name": "LessonPlanning_API", "projectPath": "LessonPlanning_API/LessonPlanning_API/LessonPlanning_API.csproj", "sourceRepo": "LessonPlanning_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-LessonPlanning_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\LessonPlanning_API", "dependsOn": ["Utility"] },
    { "name": "LibraryManagement_API", "projectPath": "LibraryManagement_API/LibraryManagement_API/LibraryManagement_API.csproj", "sourceRepo": "LibraryManagement_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-LibraryManagement_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\LibraryManagement_API", "dependsOn": ["Utility"] },
    { "name": "ProductUpdate_API", "projectPath": "ProductUpdate_API/ProductUpdate_API/ProductUpdate_API.csproj", "sourceRepo": "ProductUpdate_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-ProductUpdate_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\ProductUpdate_API", "dependsOn": ["Utility"] },
    { "name": "ProjectImages", "projectPath": "ProjectImages/ERPProjectImages/ERPProjectImages.csproj", "sourceRepo": "ProjectImages", "sourceBranch": "develop", "iisAppPool": "InstituteRun-ProjectImages", "iisPhysicalPath": "E:\\InstituteRun\\API\\ProjectImages", "dependsOn": ["Utility"], "note": "Folder name (ProjectImages) differs from project/assembly name (ERPProjectImages) - intentional, not a typo." },
    { "name": "SiteAdmin_API", "projectPath": "SiteAdmin_API/SiteAdmin_API/SiteAdmin_API.csproj", "sourceRepo": "SiteAdmin_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-SiteAdmin_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\SiteAdmin_API", "dependsOn": ["Utility"] },
    { "name": "StudentManagement_API", "projectPath": "StudentManagement_API/StudentManagement_API/StudentManagement_API.csproj", "sourceRepo": "StudentManagement_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-StudentManagement_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\StudentManagement_API", "dependsOn": ["Utility"] },
    { "name": "TimeTable_API", "projectPath": "TimeTable_API/TimeTable_API/TimeTable_API.csproj", "sourceRepo": "TimeTable_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-TimeTable_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\TimeTable_API", "dependsOn": ["Utility"] },
    { "name": "TinyUrl", "projectPath": "TinyUrl/TinyUrl/TinyUrl.csproj", "sourceRepo": "TinyUrl", "sourceBranch": "develop", "iisAppPool": "InstituteRun-TinyUrl", "iisPhysicalPath": "E:\\InstituteRun\\API\\TinyUrl", "dependsOn": ["Utility"] },
    { "name": "Transport_API", "projectPath": "Transport_API/Transport_API/Transport_API.csproj", "sourceRepo": "Transport_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-Transport_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\Transport_API", "dependsOn": ["Utility"] },
    { "name": "UserRoleManagement_API", "projectPath": "UserRoleManagement_API/UserRoleManagement_API/UserRoleManagement_API.csproj", "sourceRepo": "UserRoleManagement_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-UserRoleManagement_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\UserRoleManagement_API", "dependsOn": ["Utility"] },
    { "name": "VisitorManagement_API", "projectPath": "VisitorManagement_API/VisitorManagement_API/VisitorManagement_API.csproj", "sourceRepo": "VisitorManagement_API", "sourceBranch": "develop", "iisAppPool": "InstituteRun-VisitorManagement_API", "iisPhysicalPath": "E:\\InstituteRun\\API\\VisitorManagement_API", "dependsOn": ["Utility"] }
  ],
  "excluded": [
    { "name": "InstituteRunNewAPI", "reason": "Legacy pre-split monorepo (still has all 20+ services under one iGuruERP_API_Dapper.sln, last touched separately from the split repos). Do NOT subtree-merge this - it would duplicate every service with a second, stale history. Archive or delete the Azure Repos entry once the new monorepo is live." },
    { "name": "InstituteRunSolution", "reason": "The multi-repo orchestrator repo you already have (azure-pipelines-1.yml + pipelines/templates/deploy-service.yml). Superseded by this monorepo pipeline. Keep it around read-only until the new pipeline is validated in prod, then retire it." },
    { "name": "New folder", "reason": "Empty directory, nothing to merge." },
    { "name": "Institute_API/1", "reason": "Stray file - looks like an aborted git merge commit-message scratch file (COMMIT_EDITMSG leftover), not source. Delete before or after merge, not part of the manifest." }
  ],
  "iisParentSite": "InstituteRunApi",
  "_todo": "iisAppPool / iisPhysicalPath values above are placeholders following the CLM naming convention (E:\\CLM\\API\\<Service>\\, dedicated pool per service). Confirm actual server paths, site name, and app pool names with your ops setup before using deploy-iis.ps1 in anger."
}
