package br.gov.sigefp.common.domain;

import jakarta.persistence.*;
import lombok.*;

/**
 * Entidade que representa um banco.
 * Será usada por:
 * - rh.agent_bank_account (ligação de agentes a contas bancárias)
 * - treasury/payment (para identificar bancos em ordens de pagamento)
 */
@Entity
@Table(name = "bank", indexes = {
    @Index(name = "idx_bank_code", columnList = "code"),
    @Index(name = "idx_bank_swift", columnList = "swift_code")
})
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Bank extends BaseEntity {

    @Column(nullable = false, unique = true, length = 20)
    private String code; // Código do banco (ex: 001, 237, etc.)

    @Column(nullable = false, length = 200)
    private String name; // Nome do banco

    @Column(length = 20, name = "swift_code")
    private String swiftCode; // Código SWIFT/BIC (opcional)
}

