USE [Clinica]
GO

/****** Object:  View [Clinica].[VWAgendaMedico]    Script Date: 02-02-2025 21:38:07 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

ALTER view [Clinica].[VWAgendaMedico]
as
SELECT
	ap.IdAgendaProfesional, 
	p.IdProfesional, 
	pro.Nombres + ' ' + pro.Apellidos as Nombre,
	adc.IdCentroMedico, 
	CASE
		WHEN ap.IdProfesional = -2
			THEN 'No Disponible'
		ELSE 'Disponible' 
	END as MedicoDisponible,
	ap.FechaHora as FechaAgendaDesde, 
	DATEADD(MINUTE, adc.DuracionMinutos, ap.FechaHora) as FechaAgendaHasta,
	adc.IndVigente AS HoraDisponible,
	adc.IdAgendaDisponibleCentroMedico,
    COALESCE(cita.IdPaciente, 0) AS IdPaciente,
    COALESCE(pac.Nombres + ' ' + pac.Apellidos, '') AS NombrePaciente,
    COALESCE(cita.IdCita, 0) AS IdCita,
    COALESCE(cita.IdPrestacion, 0) AS IdPrestacion
FROM
	Clinica.AgendaProfesional ap
JOIN
	Clinica.Profesional p 
	ON p.IdProfesional = ap.IdProfesional
JOIN 
	Clinica.AgendaDisponibleCentroMedico adc 
	ON adc.IdAgendaDisponibleCentroMedico = ap.IdAgendaDisponibleCentroMedico
JOIN
	Clinica.Profesional pro
	ON pro.IdProfesional = p.IdProfesional
LEFT JOIN
	Clinica.Cita cita
	ON cita.IdProfesional = ap.IdProfesional
	AND cita.FechaHora = ap.FechaHora
LEFT JOIN
	Clinica.Paciente pac
	ON pac.IdPaciente = cita.IdPaciente
where 
	ap.IndEliminado = 0
GO