Files
turnosxpress/server/src/api/Schedules/Schedules.Service.ts
T
horacio 33743f12b9 feat: add CollaboratorPicker component and integrate into CollaboratorScheduleSummaryFlow
- Implemented CollaboratorPicker for selecting employees with support for single and multiple selections.
- Created CollaboratorScheduleSummaryFlow to display collaborator schedules and exceptions.
- Added ServicePublicationFlow for managing service visibility on public pages.
- Introduced CSS styles for ServicePrivate component to enhance UI.
2026-08-22 12:34:09 -03:00

62 lines
1.8 KiB
TypeScript

import { connect } from "mongoose";
import ScheduleList from "../../Models/Schedules/Schedules";
import {
CreateScheduleParams,
UpdateScheduleParams,
DeleteScheduleParams,
ISchedule,
PaginateSchedulesParams,
PaginateSchedulesResults,
CollaboratorSchedulesView,
FindSchedulesParams,
ScheduleApplyParams,
ScheduleApplyResult,
} from "../../Models/Schedules/Schedules.Interface";
export class SchedulesService {
public async createSchedule(data: CreateScheduleParams): Promise<ISchedule> {
await connect(`${process.env.DATABASE_CONNECTION}`);
const newSchedule = await ScheduleList.createSchedule(data);
return newSchedule;
}
public async updateSchedule(data: UpdateScheduleParams): Promise<void> {
await connect(`${process.env.DATABASE_CONNECTION}`);
await ScheduleList.updateSchedule(data);
}
public async applyScheduleChanges(data: ScheduleApplyParams): Promise<ScheduleApplyResult> {
await connect(`${process.env.DATABASE_CONNECTION}`);
return await ScheduleList.applyScheduleChanges(data);
}
public async deleteSchedule(data: DeleteScheduleParams): Promise<void> {
await connect(`${process.env.DATABASE_CONNECTION}`);
await ScheduleList.delete(data);
}
public async paginateSchedules(
data: PaginateSchedulesParams
): Promise<PaginateSchedulesResults> {
await connect(`${process.env.DATABASE_CONNECTION}`);
const schedules = await ScheduleList.paginate(data);
return schedules;
}
public async findAllSchedulesByCollaborator(
data: FindSchedulesParams
): Promise<CollaboratorSchedulesView> {
await connect(`${process.env.DATABASE_CONNECTION}`);
const schedules = await ScheduleList.findAllSchedulesByCollaborator(data);
return schedules;
}
}