-
Notifications
You must be signed in to change notification settings - Fork 0
/
CustomerService.ts
23 lines (20 loc) · 1016 Bytes
/
CustomerService.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import {UniqueEntityID, Email, Phone} from "domain/utils/Types"
import { Customer } from 'domain/customer/aggregators/Customer';
import {ICustomer} from "domain/customer/interfaces/ICustomer"
import {SignUpPayLoad} from 'application/payloads/SignUpPayload'
import {LoginPayLoad} from "application/payloads/LoginPayload"
export abstract class CustomerService {
abstract createCustomer(payload: SignUpPayLoad, countryCode: string): Promise<Customer>;
// abstract findCustomerByPhoneNo(phone: Phone): Customer;
abstract getAllCustomers(): Promise<any>;
abstract getCustomer(customerId: UniqueEntityID): Promise<any>;
abstract login(payload: LoginPayLoad): Promise<any>;
// abstract getByCustomerEmailAddress(emailAddress: Email): Customer;
/**
* Create a customer phone no in int'l format of the provided country code
* @param phoneNo
* @param countryCode
* @return string
*/
// abstract getCustomerPhoneNo(phone: string, countryCode: string): string;
}