using GraphQL.Types;

namespace Books.Api.GraphQL.InputTypes;

public class UpdateCompanyBankDetailsInputType : InputObjectGraphType<UpdateCompanyBankDetailsInput>
{
    public UpdateCompanyBankDetailsInputType()
    {
        Name = "UpdateCompanyBankDetailsInput";
        Description = "Input for updating company bank/payment details for invoices";

        Field(x => x.BankName, nullable: true).Description("Bank name");
        Field(x => x.BankRegNo, nullable: true).Description("Danish bank registration number (4 digits)");
        Field(x => x.BankAccountNo, nullable: true).Description("Danish bank account number (7-10 digits)");
        Field(x => x.BankIban, nullable: true).Description("IBAN - International Bank Account Number");
        Field(x => x.BankBic, nullable: true).Description("BIC/SWIFT code");
    }
}

public class UpdateCompanyBankDetailsInput
{
    public string? BankName { get; set; }
    public string? BankRegNo { get; set; }
    public string? BankAccountNo { get; set; }
    public string? BankIban { get; set; }
    public string? BankBic { get; set; }
}
