import { TextObjectFilterResult } from "../../Models/TextObjectFilter.model"; export type FindEmployeesServicesParams = { _id?: string; companyId?: string; employeeId?: string; serviceId?: string; }; export type FindEmployeesByServiceParams = { serviceId?: string; }; export type PaginateEmployeesServicesParams = FindEmployeesServicesParams & { page: number; limit: number; }; export type PaginateEmployeesServicesResults = { data: IEmployeeService[]; page: number; pages: number; }; export type CreateEmployeeServiceParams = { companyId: string; serviceId: string; employeeId: string; price?: number; sessionUser: string; }; export type UpdateEmployeeServiceParams = CreateEmployeeServiceParams & { id: string; }; export type DeleteEmployeeServiceParams = { companyId: string; employeeId: string; serviceId: string; sessionUser: string; }; export interface IEmployeeService { id?: string; companyId: string; employeeId: string; serviceId: string; price?: number; } export type FindCollaboratorServicesParams = { companyId: string; employeeId: string; sessionUser: string; }; export type UpdateCollaboratorServicesParams = { companyId: string; employeeId: string; services: ServiceStatusItem[]; sessionUser: string; }; export type DeleteEmployeeServiceByCompanyParams = { companyId: string; }; export type DeleteEmployeeServiceByEmployeeParams = { employeeId: string; }; export interface CollaboratorServiceItems { id: string; name: string; description: string; length: number; price: number; limit: number; active: boolean; } export interface CollaboratorServiceView { companyId: string; employeeId: string; fullName: string; avatar: string; services: CollaboratorServiceItems[]; } export interface ServiceStatusItem { serviceId: string; active: boolean; } export interface IEmployeesServicesAdapter { create(data: CreateEmployeeServiceParams): Promise; update(data: UpdateEmployeeServiceParams): Promise; delete(id: string): Promise; find(filters: FindEmployeesServicesParams): Promise; findOne(filters: FindEmployeesServicesParams): Promise; paginate(filters: PaginateEmployeesServicesParams): Promise; } export interface IEmployeesServicesManager { employeesServices: IEmployeesServicesAdapter; createEmployeeService(data: CreateEmployeeServiceParams): Promise; updateEmployeeService(data: UpdateEmployeeServiceParams): Promise; updateCollaboratorServices(data: UpdateCollaboratorServicesParams): Promise; find(data: FindEmployeesServicesParams): Promise; findAllServicesByCollaborator( data: FindEmployeesServicesParams ): Promise; delete(data: DeleteEmployeeServiceParams): Promise; textObjectFilter(data: FindEmployeesServicesParams): Promise; findByService(data: FindEmployeesByServiceParams): Promise; deleteEmployeeServiceByCompany(data: DeleteEmployeeServiceByCompanyParams): Promise; deleteEmployeeServiceByEmployee(data: DeleteEmployeeServiceByEmployeeParams): Promise; }