/* tslint:disable:max-classes-per-file */
/* tslint:disable:variable-name */
/* tslint:disable:no-trailing-whitespace */
/* tslint:disable:no-consecutive-blank-lines */
/* tslint:disable:no-namespace */
/* tslint:disable:member-access */
/* tslint:disable:typedef-whitespace */
/* tslint:disable:no-internal-module */

declare module EVA.Payroll {
  
  export class CreateEmployment extends EVA.API.RequestMessageGeneric<EVA.Payroll.CreateEmploymentResponse> {
    BackendID : string; 
    UserID : number; // Int32
    StartDate : string; // DateTime
    EndDate? : string; // DateTime, nullable
    EmploymentType : string; 
    Employer : string; 
    DefaultReplacementID? : number; // Int32, nullable
  }
  
  export class CreateEmploymentResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
  }
  
  export class DeleteEmployment extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
  }
  
  export class EmploymentDto {
    ID : number; // Int32
    BackendID : string; 
    UserID : number; // Int32
    UserFullName : string; 
    UserEmailAddress : string; 
    StartDate : string; // DateTime
    EndDate? : string; // DateTime, nullable
    EmploymentType : string; 
    Employer : string; 
    DefaultReplacementID? : number; // Int32, nullable
    DefaultReplacementFullName : string; 
    DefaultReplacementEmailAddress : string; 
  }
  
  export class GetEmploymentByID extends EVA.API.RequestMessageGeneric<EVA.Payroll.GetEmploymentByIDResponse> {
    ID : number; // Int32
  }
  
  export class GetEmploymentByIDResponse extends EVA.API.ResponseMessage {
    ID : number; // Int32
    BackendID : string; 
    UserID : number; // Int32
    UserFullName : string; 
    UserEmailAddress : string; 
    StartDate : string; // DateTime
    EndDate? : string; // DateTime, nullable
    EmploymentType : string; 
    Employer : string; 
    DefaultReplacementID? : number; // Int32, nullable
    DefaultReplacementFullName : string; 
    DefaultReplacementEmailAddress : string; 
  }
  
  export class ListEmployments extends EVA.API.RequestMessageGeneric<EVA.Payroll.ListEmploymentsResponse> {
    PageConfig : EVA.Framework.PageConfigGeneric<EVA.Payroll.ListEmploymentsFilter>; 
  }
  
  export class ListEmploymentsFilter {
    UserID? : number; // Int32, nullable
    DefaultReplacementID? : number; // Int32, nullable
    BackendID : string; 
    EmploymentType : string; 
    Employer : string; 
  }
  
  export class ListEmploymentsResponse extends EVA.API.PagedResultResponse<EVA.Payroll.EmploymentDto> {
  }
  
  export class UpdateEmployment extends EVA.API.RequestMessageWithEmptyResponse {
    ID : number; // Int32
    BackendID : string; 
    UserID : number; // Int32
    StartDate : string; // DateTime
    EndDate? : string; // DateTime, nullable
    EmploymentType : string; 
    Employer : string; 
    DefaultReplacementID? : number; // Int32, nullable
  }
  
}