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

import com.banesco.common.domain.model.Agreement;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.*;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import java.util.List;

@Getter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@RegisterForReflection
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Account {
    @Schema(description = "Estado de la cuenta")
    private AccountStatus accountStatus;
    @Schema(description = "Lista de datos de identificacion de la cuenta")
    private List<AccountIdentification> accountIdentification;
    @Schema(description = "Tipo de cuenta")
    private AccountType accountType;
    @Schema(description = "Informacion de los tipos de balances de la cuenta")
    private List<AccountBalance> accountBalance;
    @Schema(description = "Informacion de la moneda de la cuenta")
    private List<AccountCurrency> accountCurrency;
    @Schema(description = "Informacion complementaria de la cuenta")
    private List<AccountInvolvement> accountInvolvement;
    @Schema(description = "Informacion relacional de la cuenta con otras o consigo misma")
    private List<AccountRelationship> accountRelationship;
    @Schema(description = "Informacion del acuerdo de la cuenta")
    private List<Agreement> agreement;
}