AuditLogEntry:
  type: object
  properties:
    LogPatientID:
      type: integer
      nullable: true
    LogOrderID:
      type: integer
      nullable: true
    LogMasterID:
      type: integer
      nullable: true
    LogSystemID:
      type: integer
      nullable: true
    TblName:
      type: string
    RecID:
      type: string
    FldName:
      type: string
      nullable: true
    FldValuePrev:
      type: string
      nullable: true
    FldValueNew:
      type: string
      nullable: true
    UserID:
      type: string
    SiteID:
      type: string
    DIDType:
      type: string
      nullable: true
    DID:
      type: string
      nullable: true
    MachineID:
      type: string
      nullable: true
    SessionID:
      type: string
    AppID:
      type: string
    ProcessID:
      type: string
      nullable: true
    WebPageID:
      type: string
      nullable: true
    EventID:
      type: string
    ActivityID:
      type: string
    Reason:
      type: string
      nullable: true
    LogDate:
      type: string
      format: date-time
    Context:
      type: string
    IpAddress:
      type: string
      nullable: true

AuditLogListResponse:
  type: object
  properties:
    data:
      type: array
      items:
        $ref: '#/AuditLogEntry'
    pagination:
      type: object
      properties:
        page:
          type: integer
        perPage:
          type: integer
        total:
          type: integer
      required: [page, perPage, total]
  required: [data, pagination]

AuditLogsEnvelope:
  type: object
  properties:
    status:
      type: string
    message:
      type: string
    data:
      $ref: '#/AuditLogListResponse'
  required: [status, message, data]

AuditLogsErrorResponse:
  type: object
  properties:
    status:
      type: string
    message:
      type: string
    data:
      nullable: true
  required: [status, message, data]
