diff --git a/backend/internal/user/repository.go b/backend/internal/user/repository.go index 65baa9f..fffbe9e 100644 --- a/backend/internal/user/repository.go +++ b/backend/internal/user/repository.go @@ -23,7 +23,7 @@ func NewPGRepository(db *pgxpool.Pool) *PGRepository { func (r *PGRepository) List(ctx context.Context) ([]User, error) { rows, err := r.db.Query(ctx, ` - select u.id, r.id, r.name, u.username, u.display_name, coalesce(u.email, ''), u.is_active + select u.id, r.id, r.name, u.username::text, u.display_name, coalesce(u.email::text, ''), u.is_active from users u join roles r on r.id = u.role_id where u.deleted_at is null @@ -49,12 +49,19 @@ func (r *PGRepository) Create(ctx context.Context, input CreateRequest, password const query = ` insert into users (id, role_id, username, display_name, email, password_hash) values ($1, (select id from roles where name = $2), $3, $4, nullif($5, ''), $6) - returning id, username, display_name, coalesce(email, ''), is_active + returning + id, + (select id from roles where name = $2), + $2, + username::text, + display_name, + coalesce(email::text, ''), + is_active ` item := User{RoleName: input.Role} err := r.db.QueryRow(ctx, query, uuid.New(), input.Role, input.Username, input.DisplayName, input.Email, passwordHash). - Scan(&item.ID, &item.Username, &item.DisplayName, &item.Email, &item.IsActive) + Scan(&item.ID, &item.RoleID, &item.RoleName, &item.Username, &item.DisplayName, &item.Email, &item.IsActive) return item, err }