Compare commits

...

1 Commits

Author SHA1 Message Date
team.net
2fefbe934c Commit Department module, Doctor module and Appointment module 2025-01-30 15:28:26 +05:30
47 changed files with 15102 additions and 4 deletions

@ -26,6 +26,10 @@
"@angular/platform-browser": "~18.1.0",
"@angular/platform-browser-dynamic": "~18.1.0",
"@angular/router": "~18.1.0",
"@fullcalendar/angular": "^6.1.16",
"@fullcalendar/core": "^6.1.15",
"@fullcalendar/daygrid": "^6.1.15",
"@fullcalendar/interaction": "^6.1.15",
"bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",
@ -3500,6 +3504,47 @@
"node": ">=6"
}
},
"node_modules/@fullcalendar/angular": {
"version": "6.1.16",
"resolved": "https://registry.npmjs.org/@fullcalendar/angular/-/angular-6.1.16.tgz",
"integrity": "sha512-Qqs0MZPlIDretmWgtOr0H+uiLO6DKeqxqH1Y2oeWufwEbQTaAxhH7mivdTmxL596JkiuJ/1dhCm+v4tVbFb40w==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
},
"peerDependencies": {
"@angular/common": "12 - 19",
"@angular/core": "12 - 19",
"@fullcalendar/core": "~6.1.15"
}
},
"node_modules/@fullcalendar/core": {
"version": "6.1.15",
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.15.tgz",
"integrity": "sha512-BuX7o6ALpLb84cMw1FCB9/cSgF4JbVO894cjJZ6kP74jzbUZNjtwffwRdA+Id8rrLjT30d/7TrkW90k4zbXB5Q==",
"license": "MIT",
"dependencies": {
"preact": "~10.12.1"
}
},
"node_modules/@fullcalendar/daygrid": {
"version": "6.1.15",
"resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.15.tgz",
"integrity": "sha512-j8tL0HhfiVsdtOCLfzK2J0RtSkiad3BYYemwQKq512cx6btz6ZZ2RNc/hVnIxluuWFyvx5sXZwoeTJsFSFTEFA==",
"license": "MIT",
"peerDependencies": {
"@fullcalendar/core": "~6.1.15"
}
},
"node_modules/@fullcalendar/interaction": {
"version": "6.1.15",
"resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.15.tgz",
"integrity": "sha512-DOTSkofizM7QItjgu7W68TvKKvN9PSEEvDJceyMbQDvlXHa7pm/WAVtAc6xSDZ9xmB1QramYoWGLHkCYbTW1rQ==",
"license": "MIT",
"peerDependencies": {
"@fullcalendar/core": "~6.1.15"
}
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
@ -12977,6 +13022,16 @@
"dev": true,
"license": "MIT"
},
"node_modules/preact": {
"version": "10.12.1",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz",
"integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==",
"license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/preact"
}
},
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",

@ -30,6 +30,10 @@
"@angular/platform-browser": "~18.1.0",
"@angular/platform-browser-dynamic": "~18.1.0",
"@angular/router": "~18.1.0",
"@fullcalendar/angular": "^6.1.16",
"@fullcalendar/core": "^6.1.15",
"@fullcalendar/daygrid": "^6.1.15",
"@fullcalendar/interaction": "^6.1.15",
"bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",

@ -1 +1 @@
<p>appointment-calendar works!</p>
<full-calendar [options]="calendarOptions"></full-calendar>

@ -0,0 +1,8 @@
.fc.fc-theme-standard .fc-view-harness .fc-event.fc-daygrid-block-event {
color: #ffffff;
background: #2563eb;
border-color: #2563eb;
}
.fc-daygrid-day-number {
text-decoration: none !important;
}

@ -1,4 +1,9 @@
import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { FullCalendarModule } from '@fullcalendar/angular';
import { CalendarOptions } from '@fullcalendar/core'; // useful for typechecking
import dayGridPlugin from '@fullcalendar/daygrid';
import interactionPlugin from '@fullcalendar/interaction';
@Component({
selector: 'app-appointment-calendar',
@ -6,5 +11,17 @@ import { Component } from '@angular/core';
styleUrl: './appointment-calendar.component.scss'
})
export class AppointmentCalendarComponent {
calendarOptions: CalendarOptions = {
initialView: 'dayGridMonth',
plugins: [dayGridPlugin, interactionPlugin],
dateClick: (arg) => this.handleDateClick(arg),
events: [
{ title: 'event 1', date: '2025-01-01' },
{ title: 'event 2', date: '2025-01-02' }
]
};
handleDateClick(arg) {
alert('date click! ' + arg.dateStr)
}
}

@ -1,6 +1,9 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterOutlet } from '@angular/router';
import { FullCalendarModule } from '@fullcalendar/angular';
import { CalendarOptions } from '@fullcalendar/core'; // useful for typechecking
import dayGridPlugin from '@fullcalendar/daygrid';
import { AppointmentCalendarRoutingModule } from './appointment-calendar-routing.module';
import { AppointmentCalendarComponent } from './appointment-calendar.component';
@ -11,7 +14,9 @@ import { AppointmentCalendarComponent } from './appointment-calendar.component';
],
imports: [
CommonModule,
AppointmentCalendarRoutingModule
AppointmentCalendarRoutingModule,
RouterOutlet,
FullCalendarModule
]
})
export class AppointmentCalendarModule { }

@ -0,0 +1,17 @@
# Proxy Generation Output
This directory includes the output of the latest proxy generation.
The files and folders in it will be overwritten when proxy generation is run again.
Therefore, please do not place your own content in this folder.
In addition, `generate-proxy.json` works like a lock file.
It includes information used by the proxy generator, so please do not delete or modify it.
Finally, the name of the files and folders should not be changed for two reasons:
- Proxy generator will keep creating them at those paths and you will have multiple copies of the same content.
- ABP Suite generates files which include imports from this folder.
> **Important Notice:** If you are building a module and are planning to publish to npm,
> some of the generated proxies are likely to be exported from public-api.ts file. In such a case,
> please make sure you export files directly and not from barrel exports. In other words,
> do not include index.ts exports in your public-api.ts exports.

@ -0,0 +1,20 @@
import { RestService, Rest } from '@abp/ng.core';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class AppointmentService {
apiName = 'Default';
get = (config?: Partial<Rest.Config>) =>
this.restService.request<any, string>({
method: 'GET',
responseType: 'text',
url: '/api/app/appointment',
},
{ apiName: this.apiName,...config });
constructor(private restService: RestService) {}
}

@ -0,0 +1 @@
export * from './appointment.service';

@ -0,0 +1,29 @@
import { RestService, Rest } from '@abp/ng.core';
import { Injectable } from '@angular/core';
import type { CreateDepartmentDto, DepartmentDto } from '../dtos/models';
@Injectable({
providedIn: 'root',
})
export class DepartmentService {
apiName = 'Default';
create = (input: CreateDepartmentDto, config?: Partial<Rest.Config>) =>
this.restService.request<any, DepartmentDto>({
method: 'POST',
url: '/api/app/department',
body: input,
},
{ apiName: this.apiName,...config });
get = (config?: Partial<Rest.Config>) =>
this.restService.request<any, DepartmentDto[]>({
method: 'GET',
url: '/api/app/department',
},
{ apiName: this.apiName,...config });
constructor(private restService: RestService) {}
}

@ -0,0 +1 @@
export * from './department.service';

@ -0,0 +1,20 @@
import { RestService, Rest } from '@abp/ng.core';
import { Injectable } from '@angular/core';
import type { DoctorDto } from '../dtos/models';
@Injectable({
providedIn: 'root',
})
export class DoctorService {
apiName = 'Default';
get = (config?: Partial<Rest.Config>) =>
this.restService.request<any, DoctorDto[]>({
method: 'GET',
url: '/api/app/doctor',
},
{ apiName: this.apiName,...config });
constructor(private restService: RestService) {}
}

@ -0,0 +1 @@
export * from './doctor.service';

@ -0,0 +1 @@
export * from './models';

@ -0,0 +1,32 @@
import type { FullAuditedEntity } from '../volo/abp/domain/entities/auditing/models';
import type { GenderEnum } from '../enums/gender-enum.enum';
export interface CreateDepartmentDto {
departmentNo?: string;
departmentName?: string;
departmentDate?: string;
departmentHead?: string;
description?: string;
}
export interface DepartmentDto extends FullAuditedEntity<string> {
departmentNo?: string;
departmentName?: string;
departmentDate?: string;
departmentHead?: string;
status?: string;
description?: string;
}
export interface DoctorDto extends FullAuditedEntity<string> {
firstName?: string;
lastName?: string;
gender?: GenderEnum;
mobile?: string;
designation?: string;
departmentId?: string;
address?: string;
email?: string;
dob?: string;
education?: string;
}

@ -0,0 +1,9 @@
import { mapEnumToOptions } from '@abp/ng.core';
export enum GenderEnum {
Male = 0,
Female = 1,
Others = 2,
}
export const genderEnumOptions = mapEnumToOptions(GenderEnum);

@ -0,0 +1 @@
export * from './gender-enum.enum';

File diff suppressed because it is too large Load Diff

@ -0,0 +1,7 @@
import * as Appointments from './appointments';
import * as Departments from './departments';
import * as Doctors from './doctors';
import * as Dtos from './dtos';
import * as Enums from './enums';
import * as Volo from './volo';
export { Appointments, Departments, Doctors, Dtos, Enums, Volo };

@ -0,0 +1 @@
export * from './models';

@ -0,0 +1,17 @@
import type { Entity } from '../models';
export interface AuditedEntity<TKey> extends CreationAuditedEntity<TKey> {
lastModificationTime?: string;
lastModifierId?: string;
}
export interface CreationAuditedEntity<TKey> extends Entity<TKey> {
creationTime?: string;
creatorId?: string;
}
export interface FullAuditedEntity<TKey> extends AuditedEntity<TKey> {
isDeleted: boolean;
deleterId?: string;
deletionTime?: string;
}

@ -0,0 +1,3 @@
import * as Auditing from './auditing';
export * from './models';
export { Auditing };

@ -0,0 +1,3 @@
export interface Entity {
}

@ -0,0 +1,2 @@
import * as Entities from './entities';
export { Entities };

@ -0,0 +1,2 @@
import * as Domain from './domain';
export { Domain };

@ -0,0 +1,2 @@
import * as Abp from './abp';
export { Abp };

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Users;
namespace HospitalManagementSystem.Appointments
{
public class AppointmentAppService : HospitalManagementSystemAppService, IAppointmentAppService, ITransientDependency
{
private readonly ICurrentUser _currentUser;
private readonly ICurrentTenant _currentTenant;
public AppointmentAppService(ICurrentUser currentUser, ICurrentTenant currentTenant)
{
_currentUser = currentUser;
_currentTenant = currentTenant;
}
public async Task<string> GetAsync()
{
var x = _currentUser.Id;
var y = _currentTenant.Id;
return _currentUser.Name + " checking done.";
}
}
}

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace HospitalManagementSystem.Appointments
{
public interface IAppointmentAppService : IApplicationService
{
Task<string> GetAsync();
}
}

@ -0,0 +1,31 @@
using HospitalManagementSystem.Dtos;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
namespace HospitalManagementSystem.Departments
{
public class DepartmentAppService : HospitalManagementSystemAppService, IDepartmentAppService
{
private readonly IRepository<Department, Guid> _departmentRepository;
public DepartmentAppService(IRepository<Department, Guid> departmentRepository)
{
_departmentRepository = departmentRepository;
}
public async Task<List<DepartmentDto>> GetAsync()
{
var departmentDtos = new List<DepartmentDto>();
var data = await _departmentRepository.GetListAsync();
departmentDtos = ObjectMapper.Map<List<Department>, List<DepartmentDto>>(data);
return departmentDtos;
}
public async Task<DepartmentDto> CreateAsync(CreateDepartmentDto input)
{
var department = new Department(Guid.NewGuid(), input.DepartmentNo, input.DepartmentName, input.DepartmentDate, input.DepartmentHead, "Active", input.Description);
await _departmentRepository.InsertAsync(department);
return ObjectMapper.Map<Department, DepartmentDto>(department);
}
}
}

@ -0,0 +1,16 @@
using HospitalManagementSystem.Dtos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace HospitalManagementSystem.Departments
{
public interface IDepartmentAppService : IApplicationService
{
Task<List<DepartmentDto>> GetAsync();
Task<DepartmentDto> CreateAsync(CreateDepartmentDto input);
}
}

@ -0,0 +1,31 @@
using HospitalManagementSystem.Departments;
using HospitalManagementSystem.Dtos;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
namespace HospitalManagementSystem.Doctors
{
public class DoctorAppService : HospitalManagementSystemAppService, IDoctorAppService
{
private readonly IRepository<Doctor, Guid> _doctorRepository;
public DoctorAppService(IRepository<Doctor, Guid> doctorRepository)
{
_doctorRepository = doctorRepository;
}
public async Task<List<DoctorDto>> GetAsync()
{
var doctorDtos = new List<DoctorDto>();
var data = await _doctorRepository.GetListAsync();
doctorDtos = ObjectMapper.Map<List<Doctor>, List<DoctorDto>>(data);
return doctorDtos;
}
public async Task<DoctorDto> CreateAsync(CreateDoctorDto input)
{
var doctor = new Doctor(Guid.NewGuid(), input.FirstName, input.LastName, input.Gender, input.Mobile, input.Password, input.Designation, input.DepartmentId, input.Address, input.Email, input.DOB, input.Education);
await _doctorRepository.InsertAsync(doctor);
return ObjectMapper.Map<Doctor, DoctorDto>(doctor);
}
}
}

@ -0,0 +1,12 @@
using HospitalManagementSystem.Dtos;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace HospitalManagementSystem.Doctors
{
public interface IDoctorAppService : IApplicationService
{
Task<List<DoctorDto>> GetAsync();
}
}

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalManagementSystem.Dtos
{
public class CreateDepartmentDto
{
public string? DepartmentNo { get; set; }
public string? DepartmentName { get; set; }
public DateTime? DepartmentDate { get; set; }
public string? DepartmentHead { get; set; }
public string? Description { get; set; }
}
}

@ -0,0 +1,24 @@
using HospitalManagementSystem.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalManagementSystem.Dtos
{
public class CreateDoctorDto
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? Gender { get; set; }
public string? Mobile { get; set; }
public string? Password { get; set; }
public string? Designation { get; set; }
public Guid? DepartmentId { get; set; }
public string? Address { get; set; }
public string? Email { get; set; }
public string? DOB { get; set; }
public string? Education { get; set; }
}
}

@ -0,0 +1,15 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Dtos
{
public class DepartmentDto : FullAuditedEntity<Guid>
{
public string? DepartmentNo { get; set; }
public string? DepartmentName { get; set; }
public DateTime? DepartmentDate { get; set; }
public string? DepartmentHead { get; set; }
public string? Status { get; set; }
public string? Description { get; set; }
}
}

@ -0,0 +1,24 @@
using HospitalManagementSystem.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Dtos
{
public class DoctorDto : FullAuditedEntity<Guid>
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? Gender { get; set; }
public string? Mobile { get; set; }
public string? Designation { get; set; }
public Guid? DepartmentId { get; set; }
public string? Address { get; set; }
public string? Email { get; set; }
public string? DOB { get; set; }
public string? Education { get; set; }
}
}

@ -1,4 +1,7 @@
using AutoMapper;
using HospitalManagementSystem.Departments;
using HospitalManagementSystem.Doctors;
using HospitalManagementSystem.Dtos;
namespace HospitalManagementSystem;
@ -9,5 +12,7 @@ public class HospitalManagementSystemApplicationAutoMapperProfile : Profile
/* You can configure your AutoMapper mapping configuration here.
* Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */
CreateMap<Department, DepartmentDto>();
CreateMap<Doctor, DoctorDto>();
}
}

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalManagementSystem.Enums
{
public enum GenderEnum
{
Male = 0,
Female = 1,
Others = 2
}
}

@ -0,0 +1,26 @@
using HospitalManagementSystem.Doctors;
using HospitalManagementSystem.Enums;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Appointments
{
public class Appointment : FullAuditedEntity<Guid>
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public GenderEnum? Gender { get; set; }
public string? Mobile { get; set; }
public string? Address { get; set; }
public string? Email { get; set; }
public string? DOB { get; set; }
public Guid? DoctorId { get; set; }
[ForeignKey("DoctorId")]
public virtual Doctor? Doctor { get; set; }
public DateTime? DateOfAppointment { get; set; }
public string? TimeOfAppointment { get; set; }
public string? InjuryORContion { get; set; }
public string? Note { get; set; }
}
}

@ -0,0 +1,30 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Departments
{
public class Department : FullAuditedEntity<Guid>
{
public string? DepartmentNo { get; set; }
public string? DepartmentName { get; set; }
public DateTime? DepartmentDate { get; set; }
public string? DepartmentHead { get; set; }
public string? Status { get; set; }
public string? Description { get; set; }
public Department()
{
}
public Department(Guid id, string? departmentNo, string? departmentName, DateTime? departmentDate, string? departmentHead, string? status, string? description) : base(id)
{
DepartmentNo = departmentNo;
DepartmentName = departmentName;
DepartmentDate = departmentDate;
DepartmentHead = departmentHead;
Status = status;
Description = description;
}
}
}

@ -0,0 +1,49 @@
using HospitalManagementSystem.Appointments;
using HospitalManagementSystem.Departments;
using HospitalManagementSystem.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Doctors
{
public class Doctor : FullAuditedEntity<Guid>
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? Gender { get; set; }
public string? Mobile { get; set; }
public string? Password { get; set; }
public string? Designation { get; set; }
public Guid? DepartmentId { get; set; }
[ForeignKey("DepartmentId")]
public virtual Department? Department { get; set; }
public string? Address { get; set; }
public string? Email { get; set; }
public string? DOB { get; set; }
public string? Education { get; set; }
public virtual ICollection<Appointment> Appointments { get; set; } = new List<Appointment>();
public Doctor()
{
//Appointments = new List<Appointment>();
}
public Doctor(Guid id, string? firstName, string? lastName,
string? gender, string? mobile, string? password,
string? designation, Guid? departmentId, string? address,
string? email, string? dOB, string? education) : base(id)
{
FirstName = firstName;
LastName = lastName;
Gender = gender;
Mobile = mobile;
Password = password;
Designation = designation;
DepartmentId = departmentId;
Address = address;
Email = email;
DOB = dOB;
Education = education;
}
}
}

@ -1,4 +1,7 @@
using Microsoft.EntityFrameworkCore;
using HospitalManagementSystem.Appointments;
using HospitalManagementSystem.Departments;
using HospitalManagementSystem.Doctors;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.AuditLogging.EntityFrameworkCore;
using Volo.Abp.BackgroundJobs.EntityFrameworkCore;
using Volo.Abp.Data;
@ -50,6 +53,10 @@ public class HospitalManagementSystemDbContext :
// Tenant Management
public DbSet<Tenant> Tenants { get; set; }
public DbSet<TenantConnectionString> TenantConnectionStrings { get; set; }
//Custom entity
public DbSet<Department> Departments { get; set; }
public DbSet<Doctor> Doctors { get; set; }
public DbSet<Appointment> Appointments { get; set; }
#endregion

@ -0,0 +1,131 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace HospitalManagementSystem.Migrations
{
/// <inheritdoc />
public partial class addedDepartment_Doctor_Appointment_Table : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Departments",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
DepartmentNo = table.Column<string>(type: "nvarchar(max)", nullable: true),
DepartmentName = table.Column<string>(type: "nvarchar(max)", nullable: true),
DepartmentDate = table.Column<DateTime>(type: "datetime2", nullable: true),
DepartmentHead = table.Column<string>(type: "nvarchar(max)", nullable: true),
Status = table.Column<string>(type: "nvarchar(max)", nullable: true),
Description = table.Column<string>(type: "nvarchar(max)", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Departments", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Doctors",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
FirstName = table.Column<string>(type: "nvarchar(max)", nullable: true),
LastName = table.Column<string>(type: "nvarchar(max)", nullable: true),
Gender = table.Column<string>(type: "nvarchar(max)", nullable: true),
Mobile = table.Column<string>(type: "nvarchar(max)", nullable: true),
Password = table.Column<string>(type: "nvarchar(max)", nullable: true),
Designation = table.Column<string>(type: "nvarchar(max)", nullable: true),
DepartmentId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Address = table.Column<string>(type: "nvarchar(max)", nullable: true),
Email = table.Column<string>(type: "nvarchar(max)", nullable: true),
DOB = table.Column<string>(type: "nvarchar(max)", nullable: true),
Education = table.Column<string>(type: "nvarchar(max)", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Doctors", x => x.Id);
table.ForeignKey(
name: "FK_Doctors_Departments_DepartmentId",
column: x => x.DepartmentId,
principalTable: "Departments",
principalColumn: "Id");
});
migrationBuilder.CreateTable(
name: "Appointments",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
FirstName = table.Column<string>(type: "nvarchar(max)", nullable: true),
LastName = table.Column<string>(type: "nvarchar(max)", nullable: true),
Gender = table.Column<string>(type: "nvarchar(max)", nullable: true),
Mobile = table.Column<string>(type: "nvarchar(max)", nullable: true),
Address = table.Column<string>(type: "nvarchar(max)", nullable: true),
Email = table.Column<string>(type: "nvarchar(max)", nullable: true),
DOB = table.Column<string>(type: "nvarchar(max)", nullable: true),
DoctorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DateOfAppointment = table.Column<DateTime>(type: "datetime2", nullable: true),
TimeOfAppointment = table.Column<string>(type: "nvarchar(max)", nullable: true),
InjuryORContion = table.Column<string>(type: "nvarchar(max)", nullable: true),
Note = table.Column<string>(type: "nvarchar(max)", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Appointments", x => x.Id);
table.ForeignKey(
name: "FK_Appointments_Doctors_DoctorId",
column: x => x.DoctorId,
principalTable: "Doctors",
principalColumn: "Id");
});
migrationBuilder.CreateIndex(
name: "IX_Appointments_DoctorId",
table: "Appointments",
column: "DoctorId");
migrationBuilder.CreateIndex(
name: "IX_Doctors_DepartmentId",
table: "Doctors",
column: "DepartmentId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Appointments");
migrationBuilder.DropTable(
name: "Doctors");
migrationBuilder.DropTable(
name: "Departments");
}
}
}

@ -0,0 +1,36 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace HospitalManagementSystem.Migrations
{
/// <inheritdoc />
public partial class changeGenderEnumToString : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<int>(
name: "Gender",
table: "Appointments",
type: "int",
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(max)",
oldNullable: true);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Gender",
table: "Appointments",
type: "nvarchar(max)",
nullable: true,
oldClrType: typeof(int),
oldType: "int",
oldNullable: true);
}
}
}

@ -24,6 +24,217 @@ namespace HospitalManagementSystem.Migrations
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("HospitalManagementSystem.Appointments.Appointment", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<string>("Address")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<string>("DOB")
.HasColumnType("nvarchar(max)");
b.Property<DateTime?>("DateOfAppointment")
.HasColumnType("datetime2");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<Guid?>("DoctorId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("FirstName")
.HasColumnType("nvarchar(max)");
b.Property<int?>("Gender")
.HasColumnType("int");
b.Property<string>("InjuryORContion")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("LastName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Mobile")
.HasColumnType("nvarchar(max)");
b.Property<string>("Note")
.HasColumnType("nvarchar(max)");
b.Property<string>("TimeOfAppointment")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("DoctorId");
b.ToTable("Appointments");
});
modelBuilder.Entity("HospitalManagementSystem.Departments.Department", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<DateTime?>("DepartmentDate")
.HasColumnType("datetime2");
b.Property<string>("DepartmentHead")
.HasColumnType("nvarchar(max)");
b.Property<string>("DepartmentName")
.HasColumnType("nvarchar(max)");
b.Property<string>("DepartmentNo")
.HasColumnType("nvarchar(max)");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Status")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Departments");
});
modelBuilder.Entity("HospitalManagementSystem.Doctors.Doctor", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<string>("Address")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<string>("DOB")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<Guid?>("DepartmentId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Designation")
.HasColumnType("nvarchar(max)");
b.Property<string>("Education")
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("FirstName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Gender")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("LastName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Mobile")
.HasColumnType("nvarchar(max)");
b.Property<string>("Password")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("DepartmentId");
b.ToTable("Doctors");
});
modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b =>
{
b.Property<Guid>("Id")
@ -1764,6 +1975,24 @@ namespace HospitalManagementSystem.Migrations
b.ToTable("AbpTenantConnectionStrings", (string)null);
});
modelBuilder.Entity("HospitalManagementSystem.Appointments.Appointment", b =>
{
b.HasOne("HospitalManagementSystem.Doctors.Doctor", "Doctor")
.WithMany("Appointments")
.HasForeignKey("DoctorId");
b.Navigation("Doctor");
});
modelBuilder.Entity("HospitalManagementSystem.Doctors.Doctor", b =>
{
b.HasOne("HospitalManagementSystem.Departments.Department", "Department")
.WithMany()
.HasForeignKey("DepartmentId");
b.Navigation("Department");
});
modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b =>
{
b.HasOne("Volo.Abp.AuditLogging.AuditLog", null)
@ -1906,6 +2135,11 @@ namespace HospitalManagementSystem.Migrations
.IsRequired();
});
modelBuilder.Entity("HospitalManagementSystem.Doctors.Doctor", b =>
{
b.Navigation("Appointments");
});
modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b =>
{
b.Navigation("Actions");