package models

import "time"

type AstrologerBankAccount struct {
	ID                 uint       `gorm:"primaryKey" json:"id"`
	UserId             uint       `gorm:"column:user_id;not null;index" json:"user_id"`
	AstrologerID       uint       `gorm:"column:astrologer_id;not null;index" json:"astrologer_id"`
	AccountHolderName  string     `gorm:"column:account_holder_name;type:varchar(255);not null" json:"account_holder_name"`
	BankName           string     `gorm:"column:bank_name;type:varchar(255);not null" json:"bank_name"`
	BranchName         string     `gorm:"column:branch_name;type:varchar(255)" json:"branch_name"`
	AccountNumber      string     `gorm:"column:account_number;type:varchar(100);not null" json:"account_number"`
	IFSCCode           string     `gorm:"column:ifsc_code;type:varchar(50);not null" json:"ifsc_code"`
	UPIID              string     `gorm:"column:upi_id;type:varchar(150)" json:"upi_id"`
	CancelledCheque    string     `gorm:"column:cancelled_cheque;type:varchar(255)" json:"cancelled_cheque"`
	Passbook           string     `gorm:"column:passbook;type:varchar(255)" json:"passbook"`
	VerificationStatus string     `gorm:"column:verification_status;type:enum('PENDING','VERIFIED','REJECTED');default:'PENDING'" json:"verification_status"`
	Remarks            string     `gorm:"column:remarks;type:text" json:"remarks"`
	CreatedAt          *time.Time `gorm:"column:created_at;autoCreateTime" json:"created_at,omitempty"`
	UpdatedAt          *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updated_at,omitempty"`
	// Relationship
	Astrologer Astrologer `gorm:"foreignKey:AstrologerID;references:ID" json:"-"`
}

func (AstrologerBankAccount) TableName() string {
	return "astrologer_bank_accounts"
}
