// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: space_user.sql package repo import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const countUsersInSpace = `-- name: CountUsersInSpace :one SELECT COUNT(id) FROM space_user WHERE space_id = $1 ` // 获取空间下的人数 func (q *Queries) CountUsersInSpace(ctx context.Context, spaceID int64) (int64, error) { row := q.db.QueryRow(ctx, countUsersInSpace, spaceID) var count int64 err := row.Scan(&count) return count, err } const deleteSpaceUser = `-- name: DeleteSpaceUser :exec DELETE FROM space_user WHERE user_id = $1 AND space_id = $2 ` type DeleteSpaceUserParams struct { UserID int64 SpaceID int64 } // 修改空间用户 func (q *Queries) DeleteSpaceUser(ctx context.Context, arg DeleteSpaceUserParams) error { _, err := q.db.Exec(ctx, deleteSpaceUser, arg.UserID, arg.SpaceID) return err } const getSpaceUser = `-- name: GetSpaceUser :one SELECT id, space_id, user_id, role, join_time FROM space_user WHERE user_id = $1 AND space_id = $2 ` type GetSpaceUserParams struct { UserID int64 SpaceID int64 } // 获取空间用户 func (q *Queries) GetSpaceUser(ctx context.Context, arg GetSpaceUserParams) (SpaceUser, error) { row := q.db.QueryRow(ctx, getSpaceUser, arg.UserID, arg.SpaceID) var i SpaceUser err := row.Scan( &i.ID, &i.SpaceID, &i.UserID, &i.Role, &i.JoinTime, ) return i, err } const hasUserInSpace = `-- name: HasUserInSpace :one SELECT EXISTS ( SELECT 1 FROM space_user WHERE user_id = $1 AND space_id = $2 ) ` type HasUserInSpaceParams struct { UserID int64 SpaceID int64 } func (q *Queries) HasUserInSpace(ctx context.Context, arg HasUserInSpaceParams) (bool, error) { row := q.db.QueryRow(ctx, hasUserInSpace, arg.UserID, arg.SpaceID) var exists bool err := row.Scan(&exists) return exists, err } const insertSpaceUser = `-- name: InsertSpaceUser :exec INSERT INTO space_user(id,space_id,user_id,role,join_time) VALUES ($1,$2,$3,$4,NOW()) ` type InsertSpaceUserParams struct { ID int64 SpaceID int64 UserID int64 Role int32 } // 插入空间用户 func (q *Queries) InsertSpaceUser(ctx context.Context, arg InsertSpaceUserParams) error { _, err := q.db.Exec(ctx, insertSpaceUser, arg.ID, arg.SpaceID, arg.UserID, arg.Role, ) return err } const listSpaceUsers = `-- name: ListSpaceUsers :many SELECT u.id AS user_id, u.username AS user_name, u.avatar AS user_avatar, su.role FROM space_user su INNER JOIN "user" u ON su.user_id = u.id WHERE su.space_id = $1 ORDER BY su.role DESC, u.username ASC ` type ListSpaceUsersRow struct { UserID int64 UserName string UserAvatar string Role int32 } func (q *Queries) ListSpaceUsers(ctx context.Context, spaceID int64) ([]ListSpaceUsersRow, error) { rows, err := q.db.Query(ctx, listSpaceUsers, spaceID) if err != nil { return nil, err } defer rows.Close() var items []ListSpaceUsersRow for rows.Next() { var i ListSpaceUsersRow if err := rows.Scan( &i.UserID, &i.UserName, &i.UserAvatar, &i.Role, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listUserSpaces = `-- name: ListUserSpaces :many SELECT s.id, s.name, s.invite_code, su.role FROM space s JOIN space_user su ON s.id = su.space_id WHERE su.user_id = $1 ` type ListUserSpacesRow struct { ID int64 Name pgtype.Text InviteCode string Role int32 } func (q *Queries) ListUserSpaces(ctx context.Context, userID int64) ([]ListUserSpacesRow, error) { rows, err := q.db.Query(ctx, listUserSpaces, userID) if err != nil { return nil, err } defer rows.Close() var items []ListUserSpacesRow for rows.Next() { var i ListUserSpacesRow if err := rows.Scan( &i.ID, &i.Name, &i.InviteCode, &i.Role, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const updateSpaceUserRole = `-- name: UpdateSpaceUserRole :exec UPDATE space_user SET role = $1 WHERE user_id = $2 AND space_id = $3 ` type UpdateSpaceUserRoleParams struct { Role int32 UserID int64 SpaceID int64 } // 修改角色 func (q *Queries) UpdateSpaceUserRole(ctx context.Context, arg UpdateSpaceUserRoleParams) error { _, err := q.db.Exec(ctx, updateSpaceUserRole, arg.Role, arg.UserID, arg.SpaceID) return err }