package queries import ( "bssapp-backend/db" "bssapp-backend/internal/authz" "bssapp-backend/models" "context" "fmt" "log" ) func GetAccounts(ctx context.Context) ([]models.Account, error) { piyasaFilter := authz.BuildMSSQLPiyasaFilter( ctx, "f.CustomerAtt01", // ✅ alias ile uyumlu ) query := fmt.Sprintf(` SELECT c.CurrAccCode AS AccountCode, ISNULL(d.CurrAccDescription, '') AS AccountName FROM cdCurrAcc c LEFT JOIN cdCurrAccDesc d ON c.CurrAccCode = d.CurrAccCode LEFT JOIN dbo.CustomerAttributesFilter f ON c.CurrAccCode = f.CurrAccCode WHERE c.CompanyCode = 1 AND c.IsBlocked = 0 AND %s ORDER BY d.CurrAccDescription `, piyasaFilter) log.Println("🔎 ACCOUNTS FILTER:", piyasaFilter) rows, err := db.MssqlDB.Query(query) if err != nil { return nil, fmt.Errorf("MSSQL error: %w", err) } defer rows.Close() var accounts []models.Account for rows.Next() { var acc models.Account if err := rows.Scan( &acc.AccountCode, &acc.AccountName, ); err != nil { return nil, err } if len(acc.AccountCode) >= 4 { acc.DisplayCode = acc.AccountCode[:3] + " " + acc.AccountCode[3:] } else { acc.DisplayCode = acc.AccountCode } accounts = append(accounts, acc) } return accounts, rows.Err() }