// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 package repository import ( "database/sql/driver" "fmt" "time" "github.com/google/uuid" "github.com/jackc/pgx/v5/pgtype" ) type Role string const ( RoleAdmin Role = "admin" RoleUser Role = "user" ) func (e *Role) Scan(src interface{}) error { switch s := src.(type) { case []byte: *e = Role(s) case string: *e = Role(s) default: return fmt.Errorf("unsupported scan type for Role: %T", src) } return nil } type NullRole struct { Role Role Valid bool // Valid is true if Role is not NULL } // Scan implements the Scanner interface. func (ns *NullRole) Scan(value interface{}) error { if value == nil { ns.Role, ns.Valid = "", false return nil } ns.Valid = true return ns.Role.Scan(value) } // Value implements the driver Valuer interface. func (ns NullRole) Value() (driver.Value, error) { if !ns.Valid { return nil, nil } return string(ns.Role), nil } type ApiKey struct { ID int32 Key string UserID int32 CreatedAt pgtype.Timestamp Label string } type Artist struct { ID int32 MusicBrainzID *uuid.UUID Image *uuid.UUID ImageSource pgtype.Text } type ArtistAlias struct { ArtistID int32 Alias string Source string IsPrimary bool } type ArtistRelease struct { ArtistID int32 ReleaseID int32 IsPrimary bool } type ArtistTrack struct { ArtistID int32 TrackID int32 IsPrimary bool } type ArtistsWithName struct { ID int32 MusicBrainzID *uuid.UUID Image *uuid.UUID ImageSource pgtype.Text Name string } type Listen struct { TrackID int32 ListenedAt time.Time Client *string UserID int32 } type Release struct { ID int32 MusicBrainzID *uuid.UUID Image *uuid.UUID VariousArtists bool ImageSource pgtype.Text } type ReleaseAlias struct { ReleaseID int32 Alias string Source string IsPrimary bool } type ReleasesWithTitle struct { ID int32 MusicBrainzID *uuid.UUID Image *uuid.UUID VariousArtists bool ImageSource pgtype.Text Title string } type Session struct { ID uuid.UUID UserID int32 CreatedAt time.Time ExpiresAt time.Time Persistent bool } type Track struct { ID int32 MusicBrainzID *uuid.UUID Duration int32 ReleaseID int32 } type TrackAlias struct { TrackID int32 Alias string IsPrimary bool Source string } type TracksWithTitle struct { ID int32 MusicBrainzID *uuid.UUID Duration int32 ReleaseID int32 Title string } type User struct { ID int32 Username string Role Role Password []byte }