Preparing search index...
The search index is not available
appointments - v1.0.0
appointments
ICustomerRepository
Interface ICustomerRepository
interface
ICustomerRepository
{
count
(
filter
?:
IFilterOptions
)
:
Promise
<
number
>
;
create
(
entity
:
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
;
delete
(
id
:
string
)
:
Promise
<
void
>
;
exists
(
filter
:
IFilterOptions
)
:
Promise
<
boolean
>
;
findAll
()
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
[]
,
>
;
findByEmail
(
email
:
string
,
)
:
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
;
findById
(
id
:
string
,
)
:
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
;
findByPhone
(
phone
:
string
,
)
:
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
;
findByPreferredBarber
(
barberId
:
string
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
;
findDuplicates
(
criteria
:
{
email
?:
string
;
firstName
?:
string
;
lastName
?:
string
;
phone
?:
string
;
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
[]
,
>
;
findOne
(
filter
:
IFilterOptions
,
)
:
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
;
findWithFilters
(
filters
:
IFilterOptions
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
;
getAppointmentHistory
(
customerId
:
string
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
actualDuration
?:
number
;
additionalServices
?:
{
notes
?:
string
;
price
:
number
;
serviceId
:
string
;
}
[]
;
barberId
:
string
;
cancellationReason
?:
string
;
cancelledAt
?:
Date
;
cancelledBy
?:
string
;
completedAt
?:
Date
;
completedBy
?:
string
;
createdAt
:
Date
;
customerId
:
string
;
endTime
:
Date
;
feedback
?:
{
cleanliness
?:
number
;
comment
?:
string
;
rating
?:
number
;
serviceQuality
?:
number
;
timeliness
?:
number
;
}
;
id
:
string
;
notes
?:
string
;
paymentMethod
?:
"CASH"
|
"CARD"
|
"DIGITAL_WALLET"
;
paymentStatus
?:
"PAID"
|
"PENDING"
|
"FAILED"
;
reschedulingHistory
?:
{
previousBarberId
:
string
;
previousEndTime
:
Date
;
previousStartTime
:
Date
;
reason
?:
string
;
rescheduledAt
:
Date
;
rescheduledBy
:
string
;
}
[]
;
serviceId
:
string
;
startTime
:
Date
;
status
:
"pending"
|
"confirmed"
|
"cancelled"
|
"completed"
;
totalAmount
?:
number
;
updatedAt
:
Date
;
}
,
>
,
>
;
getCustomersByLastAppointment
(
startDate
:
Date
,
endDate
:
Date
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
;
getCustomerStats
(
customerId
:
string
,
)
:
Promise
<
{
averageServiceDuration
:
number
;
cancelledAppointments
:
number
;
completedAppointments
:
number
;
lastVisit
?:
Date
;
preferredServices
:
string
[]
;
totalAppointments
:
number
;
}
,
>
;
getInactiveCustomers
(
inactiveDays
:
number
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
;
mergeCustomers
(
sourceCustomerId
:
string
,
targetCustomerId
:
string
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
;
searchCustomers
(
searchTerm
:
string
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
;
update
(
id
:
string
,
entity
:
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
;
updateContactInfo
(
customerId
:
string
,
updates
:
{
email
?:
string
;
phone
?:
string
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
;
updatePreferences
(
customerId
:
string
,
preferences
:
{
notes
?:
string
;
preferredBarber
?:
string
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
;
validateContactInfo
(
email
:
string
,
phone
:
string
,
)
:
Promise
<
{
existingCustomer
?:
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
;
isEmailValid
:
boolean
;
isPhoneValid
:
boolean
;
}
,
>
;
}
Hierarchy (
View Summary
)
IAdvancedRepository
<
Customer
>
ICustomerRepository
Implemented by
InMemoryCustomerRepository
Index
Methods
count
create
delete
exists
find
All
find
By
Email
find
By
Id
find
By
Phone
find
By
Preferred
Barber
find
Duplicates
find
One
find
With
Filters
get
Appointment
History
get
Customers
By
Last
Appointment
get
Customer
Stats
get
Inactive
Customers
merge
Customers
search
Customers
update
update
Contact
Info
update
Preferences
validate
Contact
Info
Methods
count
count
(
filter
?:
IFilterOptions
)
:
Promise
<
number
>
Parameters
Optional
filter
:
IFilterOptions
Returns
Promise
<
number
>
create
create
(
entity
:
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
Parameters
entity
:
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
Returns
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
delete
delete
(
id
:
string
)
:
Promise
<
void
>
Parameters
id
:
string
Returns
Promise
<
void
>
exists
exists
(
filter
:
IFilterOptions
)
:
Promise
<
boolean
>
Parameters
filter
:
IFilterOptions
Returns
Promise
<
boolean
>
find
All
findAll
()
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
[]
,
>
Returns
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
[]
,
>
find
By
Email
findByEmail
(
email
:
string
,
)
:
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
Parameters
email
:
string
Returns
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
find
By
Id
findById
(
id
:
string
,
)
:
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
Parameters
id
:
string
Returns
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
find
By
Phone
findByPhone
(
phone
:
string
,
)
:
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
Parameters
phone
:
string
Returns
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
find
By
Preferred
Barber
findByPreferredBarber
(
barberId
:
string
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
Parameters
barberId
:
string
Optional
options
:
IQueryOptions
Returns
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
find
Duplicates
findDuplicates
(
criteria
:
{
email
?:
string
;
firstName
?:
string
;
lastName
?:
string
;
phone
?:
string
;
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
[]
,
>
Parameters
criteria
:
{
email
?:
string
;
firstName
?:
string
;
lastName
?:
string
;
phone
?:
string
}
Returns
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
[]
,
>
find
One
findOne
(
filter
:
IFilterOptions
,
)
:
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
Parameters
filter
:
IFilterOptions
Returns
Promise
<
|
null
|
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
find
With
Filters
findWithFilters
(
filters
:
IFilterOptions
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
Parameters
filters
:
IFilterOptions
Optional
options
:
IQueryOptions
Returns
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
get
Appointment
History
getAppointmentHistory
(
customerId
:
string
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
actualDuration
?:
number
;
additionalServices
?:
{
notes
?:
string
;
price
:
number
;
serviceId
:
string
}
[]
;
barberId
:
string
;
cancellationReason
?:
string
;
cancelledAt
?:
Date
;
cancelledBy
?:
string
;
completedAt
?:
Date
;
completedBy
?:
string
;
createdAt
:
Date
;
customerId
:
string
;
endTime
:
Date
;
feedback
?:
{
cleanliness
?:
number
;
comment
?:
string
;
rating
?:
number
;
serviceQuality
?:
number
;
timeliness
?:
number
;
}
;
id
:
string
;
notes
?:
string
;
paymentMethod
?:
"CASH"
|
"CARD"
|
"DIGITAL_WALLET"
;
paymentStatus
?:
"PAID"
|
"PENDING"
|
"FAILED"
;
reschedulingHistory
?:
{
previousBarberId
:
string
;
previousEndTime
:
Date
;
previousStartTime
:
Date
;
reason
?:
string
;
rescheduledAt
:
Date
;
rescheduledBy
:
string
;
}
[]
;
serviceId
:
string
;
startTime
:
Date
;
status
:
"pending"
|
"confirmed"
|
"cancelled"
|
"completed"
;
totalAmount
?:
number
;
updatedAt
:
Date
;
}
,
>
,
>
Parameters
customerId
:
string
Optional
options
:
IQueryOptions
Returns
Promise
<
IPagedResult
<
{
actualDuration
?:
number
;
additionalServices
?:
{
notes
?:
string
;
price
:
number
;
serviceId
:
string
}
[]
;
barberId
:
string
;
cancellationReason
?:
string
;
cancelledAt
?:
Date
;
cancelledBy
?:
string
;
completedAt
?:
Date
;
completedBy
?:
string
;
createdAt
:
Date
;
customerId
:
string
;
endTime
:
Date
;
feedback
?:
{
cleanliness
?:
number
;
comment
?:
string
;
rating
?:
number
;
serviceQuality
?:
number
;
timeliness
?:
number
;
}
;
id
:
string
;
notes
?:
string
;
paymentMethod
?:
"CASH"
|
"CARD"
|
"DIGITAL_WALLET"
;
paymentStatus
?:
"PAID"
|
"PENDING"
|
"FAILED"
;
reschedulingHistory
?:
{
previousBarberId
:
string
;
previousEndTime
:
Date
;
previousStartTime
:
Date
;
reason
?:
string
;
rescheduledAt
:
Date
;
rescheduledBy
:
string
;
}
[]
;
serviceId
:
string
;
startTime
:
Date
;
status
:
"pending"
|
"confirmed"
|
"cancelled"
|
"completed"
;
totalAmount
?:
number
;
updatedAt
:
Date
;
}
,
>
,
>
get
Customers
By
Last
Appointment
getCustomersByLastAppointment
(
startDate
:
Date
,
endDate
:
Date
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
Parameters
startDate
:
Date
endDate
:
Date
Optional
options
:
IQueryOptions
Returns
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
get
Customer
Stats
getCustomerStats
(
customerId
:
string
,
)
:
Promise
<
{
averageServiceDuration
:
number
;
cancelledAppointments
:
number
;
completedAppointments
:
number
;
lastVisit
?:
Date
;
preferredServices
:
string
[]
;
totalAppointments
:
number
;
}
,
>
Parameters
customerId
:
string
Returns
Promise
<
{
averageServiceDuration
:
number
;
cancelledAppointments
:
number
;
completedAppointments
:
number
;
lastVisit
?:
Date
;
preferredServices
:
string
[]
;
totalAppointments
:
number
;
}
,
>
get
Inactive
Customers
getInactiveCustomers
(
inactiveDays
:
number
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
Parameters
inactiveDays
:
number
Optional
options
:
IQueryOptions
Returns
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
merge
Customers
mergeCustomers
(
sourceCustomerId
:
string
,
targetCustomerId
:
string
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
Parameters
sourceCustomerId
:
string
targetCustomerId
:
string
Returns
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
search
Customers
searchCustomers
(
searchTerm
:
string
,
options
?:
IQueryOptions
,
)
:
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
Parameters
searchTerm
:
string
Optional
options
:
IQueryOptions
Returns
Promise
<
IPagedResult
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
,
>
update
update
(
id
:
string
,
entity
:
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
Parameters
id
:
string
entity
:
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
Returns
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
update
Contact
Info
updateContactInfo
(
customerId
:
string
,
updates
:
{
email
?:
string
;
phone
?:
string
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
Parameters
customerId
:
string
updates
:
{
email
?:
string
;
phone
?:
string
}
Returns
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
update
Preferences
updatePreferences
(
customerId
:
string
,
preferences
:
{
notes
?:
string
;
preferredBarber
?:
string
}
,
)
:
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
Parameters
customerId
:
string
preferences
:
{
notes
?:
string
;
preferredBarber
?:
string
}
Returns
Promise
<
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
,
>
validate
Contact
Info
validateContactInfo
(
email
:
string
,
phone
:
string
,
)
:
Promise
<
{
existingCustomer
?:
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
;
isEmailValid
:
boolean
;
isPhoneValid
:
boolean
;
}
,
>
Parameters
email
:
string
phone
:
string
Returns
Promise
<
{
existingCustomer
?:
{
createdAt
:
Date
;
email
:
string
;
firstName
:
string
;
id
:
string
;
lastName
:
string
;
phone
:
string
;
preferences
?:
{
notes
?:
string
;
preferredBarber
?:
string
}
;
updatedAt
:
Date
;
}
;
isEmailValid
:
boolean
;
isPhoneValid
:
boolean
;
}
,
>
Settings
Member Visibility
Protected
Inherited
External
Theme
OS
Light
Dark
On This Page
Methods
count
create
delete
exists
find
All
find
By
Email
find
By
Id
find
By
Phone
find
By
Preferred
Barber
find
Duplicates
find
One
find
With
Filters
get
Appointment
History
get
Customers
By
Last
Appointment
get
Customer
Stats
get
Inactive
Customers
merge
Customers
search
Customers
update
update
Contact
Info
update
Preferences
validate
Contact
Info
appointments - v1.0.0
Loading...