package com.banesco.module.msg_request_header.domain.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;

@Getter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@RegisterForReflection
public class NetworkTrnInfo {
    @JsonProperty("TransactionConsecutive")
    private String TransactionConsecutive;
    @JsonProperty("RegisterNumber")
    private String RegisterNumber;
    @JsonProperty("OriginatorName")
    private String OriginatorName;
    @JsonProperty("OperationType")
    private String OperationType;
    @JsonProperty("TransactionType")
    private String TransactionType;
    @JsonProperty("TransactionCode")
    private String TransactionCode;
    @JsonProperty("TransactionDate")
    private String TransactionDate;
    @JsonProperty("TransactionTime")
    private String TransactionTime;
    @JsonProperty("BankId")
    private String BankId;
    @JsonProperty("AgencyCode")
    private String AgencyCode;
    @JsonProperty("ChannelId")
    private String ChannelId;
    @JsonProperty("ChannelUserId")
    private String ChannelUserId;
    @JsonProperty("OperationExecIndicator")
    private String OperationExecIndicator;
    @JsonProperty("ConfiguredTransactionCode")
    private String ConfiguredTransactionCode;
    @JsonProperty("Desc")
    private String Desc;
    @JsonProperty("UserId")
    private String UserId;
    @JsonProperty("UserType")
    private String UserType;

    @JsonIgnore
    public NetworkTrnInfo withOptions(
        String date,
        String time
    ) {
        this.TransactionDate = date;
        this.TransactionTime = time;
        return this;
    }
}
