import * as plugins from '../plugins.ts';
import * as data from '../data/index.ts';

export interface IReq_AdminLoginWithUsernameAndPassword extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_AdminLoginWithUsernameAndPassword
> {
  method: 'adminLoginWithUsernameAndPassword';
  request: {
    username: string;
    password: string;
  };
  response: {
    identity?: data.IIdentity;
  };
}

export interface IReq_AdminLogout extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_AdminLogout
> {
  method: 'adminLogout';
  request: {
    identity: data.IIdentity;
  };
  response: {
    ok: boolean;
  };
}

export interface IReq_VerifyIdentity extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_VerifyIdentity
> {
  method: 'verifyIdentity';
  request: {
    identity: data.IIdentity;
  };
  response: {
    valid: boolean;
    identity?: data.IIdentity;
  };
}

export interface IReq_ChangePassword extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_ChangePassword
> {
  method: 'changePassword';
  request: {
    identity: data.IIdentity;
    currentPassword: string;
    newPassword: string;
  };
  response: {
    ok: boolean;
  };
}
