fix(students): renombrar LevelName/GradeName a Level/Grade

parent 3bef96db
...@@ -19,9 +19,9 @@ type Student struct { ...@@ -19,9 +19,9 @@ type Student struct {
BranchID *int `bson:"branch_id"` BranchID *int `bson:"branch_id"`
BranchName *string `bson:"branch"` BranchName *string `bson:"branch"`
LevelID *int `bson:"level_id"` LevelID *int `bson:"level_id"`
LevelName *string `bson:"level"` Level *string `bson:"level"`
GradeID *int `bson:"grade_id"` GradeID *int `bson:"grade_id"`
GradeName *string `bson:"grade"` Grade *string `bson:"grade"`
ClassroomAttendanceID *int `bson:"classroom_attendance_id"` ClassroomAttendanceID *int `bson:"classroom_attendance_id"`
UpdatedAt time.Time `bson:"updated_at"` UpdatedAt time.Time `bson:"updated_at"`
RowHash string `bson:"row_hash,omitempty" json:"-"` RowHash string `bson:"row_hash,omitempty" json:"-"`
......
package students
import (
"context"
"fmt"
"time"
"intranet-sycronizacion/internal/db"
appsync "intranet-sycronizacion/internal/sync"
)
// QueryReader ejecuta Query directamente y arma una SyncRow por fila del resultado.
type QueryReader struct {
pool *db.Pool
query string
}
// NewQueryReader construye el reader de estudiantes sobre el pool dado.
func NewQueryReader(pool *db.Pool, query string) *QueryReader {
return &QueryReader{pool: pool, query: query}
}
// FetchAll corre la consulta y lee fila por fila.
func (f *QueryReader) FetchAll(ctx context.Context) ([]appsync.SyncRow, error) {
rows, err := f.pool.Pool.Query(ctx, f.query)
if err != nil {
return nil, fmt.Errorf("query students: %w", err)
}
defer rows.Close()
var result []appsync.SyncRow
for rows.Next() {
var (
studentID int
studentCode *string
studentInternalCode *string
paternalLastName *string
maternalLastName *string
name *string
dni *string
birthday *time.Time
email *string
genreID *int
genre *string
branchID *int
branchName *string
levelID *int
levelName *string
gradeID *int
gradeName *string
classroomAttendanceID *int
)
if err := rows.Scan(&studentID, &studentCode, &studentInternalCode, &paternalLastName, &maternalLastName,
&name, &dni, &birthday, &email, &genreID, &genre, &branchID, &branchName, &levelID, &levelName,
&gradeID, &gradeName, &classroomAttendanceID); err != nil {
return nil, fmt.Errorf("scan student row: %w", err)
}
doc := &Student{
StudentID: studentID,
StudentCode: studentCode,
StudentInternalCode: studentInternalCode,
PaternalLastName: paternalLastName,
MaternalLastName: maternalLastName,
Name: name,
DNI: dni,
Birthday: birthday,
Email: email,
GenreID: genreID,
Genre: genre,
BranchID: branchID,
BranchName: branchName,
LevelID: levelID,
Level: levelName,
GradeID: gradeID,
Grade: gradeName,
ClassroomAttendanceID: classroomAttendanceID,
}
result = append(result, appsync.SyncRow{ID: studentID, Doc: doc})
}
if err := rows.Err(); err != nil {
return nil, fmt.Errorf("iterate student rows: %w", err)
}
return result, nil
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment