Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/missionmatch / internal/platform/database/dbgen/evaluations.sql.go |
| Date | Not specified in source |
| Repository | Janady13/missionmatch |
| Revision | 09015496d565a172bcaa15cfe9a8e4b072b13df0 |
| Branch | workstream-b-screenmatch |
| Path or archive member | internal/platform/database/dbgen/evaluations.sql.go |
| Original SHA-256 | 000167fa5469316f425969efe2e297cff18c7faf77370ff6437becbcbdfa59c2 |
| Git blob SHA | fa40f8c6bb896995586eea4897333837d7d7de23 |
| Reading-copy SHA-256 | 000167fa5469316f425969efe2e297cff18c7faf77370ff6437becbcbdfa59c2 |
Every recorded occurrence
These 3 records contain identical original source bytes. Their paths and revisions remain part of the archive.
| Original record | Branch or archive | Revision / identifier | Original location |
|---|---|---|---|
| Janady13/missionmatch / internal/platform/database/dbgen/evaluations.sql.go | workstream-b-screenmatch | 09015496d565a172bcaa15cfe9a8e4b072b13df0 | Open original |
| Janady13/missionmatch / internal/platform/database/dbgen/evaluations.sql.go | workstream-c-slatematch | 5cd60c918301b46ecd6ed3e03e20c395da0062e2 | Open original |
| Janady13/missionmatch / internal/platform/database/dbgen/evaluations.sql.go | workstream-b-screenmatch | 09015496d565a172bcaa15cfe9a8e4b072b13df0 | Open original |
Recovered source transcript
Download complete source text ↓213 lines · 7.0 KB
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.31.1
// source: evaluations.sql
package dbgen
import (
"context"
"github.com/google/uuid"
"github.com/shopspring/decimal"
)
const getCandidateEvaluation = `-- name: GetCandidateEvaluation :one
SELECT organization_id, candidate_id, requirement_id, total_score, band, clearance_score, skills_score, certs_score, customer_score, experience_score, location_score, explanation, matched_skills, gap_summary, model_version, evaluated_by, evaluated_at, updated_at FROM candidate_evaluations
WHERE candidate_id = $1 AND requirement_id = $2
`
type GetCandidateEvaluationParams struct {
CandidateID uuid.UUID `json:"candidate_id"`
RequirementID uuid.UUID `json:"requirement_id"`
}
func (q *Queries) GetCandidateEvaluation(ctx context.Context, arg GetCandidateEvaluationParams) (CandidateEvaluation, error) {
row := q.db.QueryRow(ctx, getCandidateEvaluation, arg.CandidateID, arg.RequirementID)
var i CandidateEvaluation
err := row.Scan(
&i.OrganizationID,
&i.CandidateID,
&i.RequirementID,
&i.TotalScore,
&i.Band,
&i.ClearanceScore,
&i.SkillsScore,
&i.CertsScore,
&i.CustomerScore,
&i.ExperienceScore,
&i.LocationScore,
&i.Explanation,
&i.MatchedSkills,
&i.GapSummary,
&i.ModelVersion,
&i.EvaluatedBy,
&i.EvaluatedAt,
&i.UpdatedAt,
)
return i, err
}
const listEvaluationsForRequirement = `-- name: ListEvaluationsForRequirement :many
SELECT organization_id, candidate_id, requirement_id, total_score, band, clearance_score, skills_score, certs_score, customer_score, experience_score, location_score, explanation, matched_skills, gap_summary, model_version, evaluated_by, evaluated_at, updated_at FROM candidate_evaluations
WHERE requirement_id = $1
ORDER BY total_score DESC, candidate_id
`
// The persisted screenMATCH qualifications for one requirement, best first. missionMATCH coverage and
// the persisted ranked view read this rather than rescore the pool.
func (q *Queries) ListEvaluationsForRequirement(ctx context.Context, requirementID uuid.UUID) ([]CandidateEvaluation, error) {
rows, err := q.db.Query(ctx, listEvaluationsForRequirement, requirementID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []CandidateEvaluation{}
for rows.Next() {
var i CandidateEvaluation
if err := rows.Scan(
&i.OrganizationID,
&i.CandidateID,
&i.RequirementID,
&i.TotalScore,
&i.Band,
&i.ClearanceScore,
&i.SkillsScore,
&i.CertsScore,
&i.CustomerScore,
&i.ExperienceScore,
&i.LocationScore,
&i.Explanation,
&i.MatchedSkills,
&i.GapSummary,
&i.ModelVersion,
&i.EvaluatedBy,
&i.EvaluatedAt,
&i.UpdatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listLatestEvaluationsByCandidate = `-- name: ListLatestEvaluationsByCandidate :many
SELECT organization_id, candidate_id, requirement_id, total_score, band, clearance_score, skills_score, certs_score, customer_score, experience_score, location_score, explanation, matched_skills, gap_summary, model_version, evaluated_by, evaluated_at, updated_at FROM candidate_evaluations
WHERE candidate_id = $1
ORDER BY total_score DESC, requirement_id
`
// The persisted qualifications for one candidate across requirements, best first (who can support
// which mission today, read from the stored artifact).
func (q *Queries) ListLatestEvaluationsByCandidate(ctx context.Context, candidateID uuid.UUID) ([]CandidateEvaluation, error) {
rows, err := q.db.Query(ctx, listLatestEvaluationsByCandidate, candidateID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []CandidateEvaluation{}
for rows.Next() {
var i CandidateEvaluation
if err := rows.Scan(
&i.OrganizationID,
&i.CandidateID,
&i.RequirementID,
&i.TotalScore,
&i.Band,
&i.ClearanceScore,
&i.SkillsScore,
&i.CertsScore,
&i.CustomerScore,
&i.ExperienceScore,
&i.LocationScore,
&i.Explanation,
&i.MatchedSkills,
&i.GapSummary,
&i.ModelVersion,
&i.EvaluatedBy,
&i.EvaluatedAt,
&i.UpdatedAt,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const upsertCandidateEvaluation = `-- name: UpsertCandidateEvaluation :exec
INSERT INTO candidate_evaluations (
organization_id, candidate_id, requirement_id,
total_score, band,
clearance_score, skills_score, certs_score, customer_score, experience_score, location_score,
explanation, matched_skills, gap_summary, model_version, evaluated_by
) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16)
ON CONFLICT (organization_id, candidate_id, requirement_id) DO UPDATE SET
total_score = EXCLUDED.total_score,
band = EXCLUDED.band,
clearance_score = EXCLUDED.clearance_score,
skills_score = EXCLUDED.skills_score,
certs_score = EXCLUDED.certs_score,
customer_score = EXCLUDED.customer_score,
experience_score = EXCLUDED.experience_score,
location_score = EXCLUDED.location_score,
explanation = EXCLUDED.explanation,
matched_skills = EXCLUDED.matched_skills,
gap_summary = EXCLUDED.gap_summary,
model_version = EXCLUDED.model_version,
evaluated_by = EXCLUDED.evaluated_by,
updated_at = now()
`
type UpsertCandidateEvaluationParams struct {
OrganizationID uuid.UUID `json:"organization_id"`
CandidateID uuid.UUID `json:"candidate_id"`
RequirementID uuid.UUID `json:"requirement_id"`
TotalScore decimal.Decimal `json:"total_score"`
Band string `json:"band"`
ClearanceScore decimal.Decimal `json:"clearance_score"`
SkillsScore decimal.Decimal `json:"skills_score"`
CertsScore decimal.Decimal `json:"certs_score"`
CustomerScore decimal.Decimal `json:"customer_score"`
ExperienceScore decimal.Decimal `json:"experience_score"`
LocationScore decimal.Decimal `json:"location_score"`
Explanation string `json:"explanation"`
MatchedSkills []byte `json:"matched_skills"`
GapSummary []byte `json:"gap_summary"`
ModelVersion string `json:"model_version"`
EvaluatedBy *uuid.UUID `json:"evaluated_by"`
}
// Upsert the latest screenMATCH qualification for one (candidate, requirement) pair. A fresh screen
// overwrites the prior row so there is exactly one current evaluation per pair, which missionMATCH
// reads instead of recomputing. evaluated_at is preserved as the first time the pair was screened;
// updated_at moves to now() on every rescreen.
func (q *Queries) UpsertCandidateEvaluation(ctx context.Context, arg UpsertCandidateEvaluationParams) error {
_, err := q.db.Exec(ctx, upsertCandidateEvaluation,
arg.OrganizationID,
arg.CandidateID,
arg.RequirementID,
arg.TotalScore,
arg.Band,
arg.ClearanceScore,
arg.SkillsScore,
arg.CertsScore,
arg.CustomerScore,
arg.ExperienceScore,
arg.LocationScore,
arg.Explanation,
arg.MatchedSkills,
arg.GapSummary,
arg.ModelVersion,
arg.EvaluatedBy,
)
return err
}