Files
member-console/internal/organization/members.sql.go
T
cgalo5758 b0072d8971 Consolidate domain tables into core schema
Squash the pre-production migration history into fresh core, fedwiki,
and stripe baselines and reduce the canonical source list to those
three streams.

Update sqlc configs, generated queries, raw SQL, tests, and docs while
keeping provider tables schema-qualified.

BREAKING: existing local database volumes must be wiped because goose
version history restarts from the new baselines.
2026-07-05 20:10:23 -05:00

255 lines
6.8 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.29.0
// source: members.sql
package organization
import (
"context"
"database/sql"
"time"
)
const createOrgMember = `-- name: CreateOrgMember :one
INSERT INTO core.org_members (org_id, person_id, role_id)
VALUES ($1, $2, $3)
RETURNING org_member_id, org_id, person_id, role_id, status, joined_at, removed_at, created_at, updated_at
`
type CreateOrgMemberParams struct {
OrgID string `json:"org_id"`
PersonID string `json:"person_id"`
RoleID string `json:"role_id"`
}
func (q *Queries) CreateOrgMember(ctx context.Context, arg CreateOrgMemberParams) (OrgMember, error) {
row := q.db.QueryRowContext(ctx, createOrgMember, arg.OrgID, arg.PersonID, arg.RoleID)
var i OrgMember
err := row.Scan(
&i.OrgMemberID,
&i.OrgID,
&i.PersonID,
&i.RoleID,
&i.Status,
&i.JoinedAt,
&i.RemovedAt,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const getOrgMemberByPersonAndOrg = `-- name: GetOrgMemberByPersonAndOrg :one
SELECT org_member_id, org_id, person_id, role_id, status, joined_at, removed_at, created_at, updated_at FROM core.org_members
WHERE person_id = $1 AND org_id = $2
`
type GetOrgMemberByPersonAndOrgParams struct {
PersonID string `json:"person_id"`
OrgID string `json:"org_id"`
}
func (q *Queries) GetOrgMemberByPersonAndOrg(ctx context.Context, arg GetOrgMemberByPersonAndOrgParams) (OrgMember, error) {
row := q.db.QueryRowContext(ctx, getOrgMemberByPersonAndOrg, arg.PersonID, arg.OrgID)
var i OrgMember
err := row.Scan(
&i.OrgMemberID,
&i.OrgID,
&i.PersonID,
&i.RoleID,
&i.Status,
&i.JoinedAt,
&i.RemovedAt,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const getOrgMembersByOrgID = `-- name: GetOrgMembersByOrgID :many
SELECT om.org_member_id, om.org_id, om.person_id, om.role_id, om.status, om.joined_at, om.removed_at, om.created_at, om.updated_at, p.display_name, p.primary_email, r.role_name
FROM core.org_members om
JOIN core.persons p ON p.person_id = om.person_id
JOIN core.roles r ON r.role_id = om.role_id
WHERE om.org_id = $1
ORDER BY p.display_name
`
type GetOrgMembersByOrgIDRow struct {
OrgMemberID string `json:"org_member_id"`
OrgID string `json:"org_id"`
PersonID string `json:"person_id"`
RoleID string `json:"role_id"`
Status string `json:"status"`
JoinedAt time.Time `json:"joined_at"`
RemovedAt sql.NullTime `json:"removed_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DisplayName string `json:"display_name"`
PrimaryEmail string `json:"primary_email"`
RoleName string `json:"role_name"`
}
func (q *Queries) GetOrgMembersByOrgID(ctx context.Context, orgID string) ([]GetOrgMembersByOrgIDRow, error) {
rows, err := q.db.QueryContext(ctx, getOrgMembersByOrgID, orgID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []GetOrgMembersByOrgIDRow{}
for rows.Next() {
var i GetOrgMembersByOrgIDRow
if err := rows.Scan(
&i.OrgMemberID,
&i.OrgID,
&i.PersonID,
&i.RoleID,
&i.Status,
&i.JoinedAt,
&i.RemovedAt,
&i.CreatedAt,
&i.UpdatedAt,
&i.DisplayName,
&i.PrimaryEmail,
&i.RoleName,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listActiveMembersByOrgID = `-- name: ListActiveMembersByOrgID :many
SELECT
om.org_member_id,
om.person_id,
om.role_id,
om.joined_at,
p.display_name,
p.primary_email,
r.role_name
FROM core.org_members om
JOIN core.persons p ON p.person_id = om.person_id
JOIN core.roles r ON r.role_id = om.role_id
WHERE om.org_id = $1
AND om.status = 'active'
ORDER BY p.display_name ASC
LIMIT 200
`
type ListActiveMembersByOrgIDRow struct {
OrgMemberID string `json:"org_member_id"`
PersonID string `json:"person_id"`
RoleID string `json:"role_id"`
JoinedAt time.Time `json:"joined_at"`
DisplayName string `json:"display_name"`
PrimaryEmail string `json:"primary_email"`
RoleName string `json:"role_name"`
}
// Operator composite's Members section. Active members only (status='active',
// excluding removed/historical rows). Defensive LIMIT 200 per design D5;
// pagination is YAGNI until a real org pushes 50+ members.
func (q *Queries) ListActiveMembersByOrgID(ctx context.Context, orgID string) ([]ListActiveMembersByOrgIDRow, error) {
rows, err := q.db.QueryContext(ctx, listActiveMembersByOrgID, orgID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []ListActiveMembersByOrgIDRow{}
for rows.Next() {
var i ListActiveMembersByOrgIDRow
if err := rows.Scan(
&i.OrgMemberID,
&i.PersonID,
&i.RoleID,
&i.JoinedAt,
&i.DisplayName,
&i.PrimaryEmail,
&i.RoleName,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const listActiveMembershipsByPersonID = `-- name: ListActiveMembershipsByPersonID :many
SELECT
om.org_member_id,
om.org_id,
om.role_id,
om.joined_at,
o.name AS org_name,
o.slug AS org_slug,
r.role_name
FROM core.org_members om
JOIN core.organizations o ON o.org_id = om.org_id
JOIN core.roles r ON r.role_id = om.role_id
WHERE om.person_id = $1
AND om.status = 'active'
ORDER BY om.joined_at DESC
LIMIT 200
`
type ListActiveMembershipsByPersonIDRow struct {
OrgMemberID string `json:"org_member_id"`
OrgID string `json:"org_id"`
RoleID string `json:"role_id"`
JoinedAt time.Time `json:"joined_at"`
OrgName string `json:"org_name"`
OrgSlug string `json:"org_slug"`
RoleName string `json:"role_name"`
}
// Person-detail "Org memberships" section. Returns each org the person
// belongs to (active memberships only) with the org's display fields and
// the person's role at that org. Sorted by joined_at DESC so the most
// recent membership appears first — operators usually want "what's the
// person doing now" rather than "where did they start."
func (q *Queries) ListActiveMembershipsByPersonID(ctx context.Context, personID string) ([]ListActiveMembershipsByPersonIDRow, error) {
rows, err := q.db.QueryContext(ctx, listActiveMembershipsByPersonID, personID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []ListActiveMembershipsByPersonIDRow{}
for rows.Next() {
var i ListActiveMembershipsByPersonIDRow
if err := rows.Scan(
&i.OrgMemberID,
&i.OrgID,
&i.RoleID,
&i.JoinedAt,
&i.OrgName,
&i.OrgSlug,
&i.RoleName,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}