30 lines
1.3 KiB
TypeScript
30 lines
1.3 KiB
TypeScript
import { UserAggregate } from '../User/UserAggregate';
|
|
export interface IUserRepository {
|
|
create(user: Partial<UserAggregate>): Promise<UserAggregate>;
|
|
findByPage(from: number, to: number): Promise<{
|
|
users: UserAggregate[];
|
|
totalCount: number;
|
|
}>;
|
|
findByPageIncludingDeleted(from: number, to: number): Promise<{
|
|
users: UserAggregate[];
|
|
totalCount: number;
|
|
}>;
|
|
findById(id: string): Promise<UserAggregate | null>;
|
|
findByIdIncludingDeleted(id: string): Promise<UserAggregate | null>;
|
|
findByUsername(username: string): Promise<UserAggregate | null>;
|
|
findByEmail(email: string): Promise<UserAggregate | null>;
|
|
findByToken(token: string): Promise<UserAggregate | null>;
|
|
search(query: string, limit?: number, offset?: number): Promise<{
|
|
users: UserAggregate[];
|
|
totalCount: number;
|
|
}>;
|
|
searchIncludingDeleted(query: string, limit?: number, offset?: number): Promise<{
|
|
users: UserAggregate[];
|
|
totalCount: number;
|
|
}>;
|
|
update(id: string, update: Partial<UserAggregate>): Promise<UserAggregate | null>;
|
|
delete(id: string): Promise<any>;
|
|
softDelete(id: string): Promise<UserAggregate | null>;
|
|
deactivate(id: string): Promise<UserAggregate | null>;
|
|
}
|
|
//# sourceMappingURL=IUserRepository.d.ts.map
|