Files
bigcapital/packages/server/src/interfaces/Authentication.ts
2024-04-26 12:21:40 +02:00

93 lines
1.8 KiB
TypeScript

import { ISystemUser } from './User';
import { ITenant } from './Tenancy';
import { SystemUser } from '@/system/models';
export interface IRegisterDTO {
firstName: string;
lastName: string;
email: string;
password: string;
organizationName: string;
}
export interface ILoginDTO {
crediential: string;
password: string;
}
export interface IPasswordReset {
id: number;
email: string;
token: string;
createdAt: Date;
}
export interface IAuthenticationService {
signIn(
email: string,
password: string
): Promise<{ user: ISystemUser; token: string; tenant: ITenant }>;
register(registerDTO: IRegisterDTO): Promise<ISystemUser>;
sendResetPassword(email: string): Promise<IPasswordReset>;
resetPassword(token: string, password: string): Promise<void>;
}
export interface IAuthSigningInEventPayload {
email: string;
password: string;
user: ISystemUser;
}
export interface IAuthSignedInEventPayload {
email: string;
password: string;
user: ISystemUser;
}
export interface IAuthSigningUpEventPayload {
signupDTO: IRegisterDTO;
}
export interface IAuthSignedUpEventPayload {
signupDTO: IRegisterDTO;
tenant: ITenant;
user: ISystemUser;
}
export interface IAuthSignInPOJO {
user: ISystemUser;
token: string;
tenant: ITenant;
}
export interface IAuthResetedPasswordEventPayload {
user: SystemUser;
token: string;
password: string;
}
export interface IAuthSendingResetPassword {
user: ISystemUser;
token: string;
}
export interface IAuthSendedResetPassword {
user: ISystemUser;
token: string;
}
export interface IAuthGetMetaPOJO {
signupDisabled: boolean;
}
export interface IAuthSignUpVerifingEventPayload {
email: string;
verifyToken: string;
userId: number;
}
export interface IAuthSignUpVerifiedEventPayload {
email: string;
verifyToken: string;
userId: number;
}