db

package
v0.0.0-...-8d76f9d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2024 License: GPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateNurseAccountParams

type CreateNurseAccountParams struct {
	Email             string `json:"email"`
	FirstName         string `json:"first_name"`
	LastName          string `json:"last_name"`
	PhoneNumber       string `json:"phone_number"`
	LicenseNumber     string `json:"license_number"`
	Specialization    string `json:"specialization"`
	YearsOfExperience int32  `json:"years_of_experience"`
	ZipCode           string `json:"zip_code"`
}

type CreateNurseAccountResult

type CreateNurseAccountResult struct {
	User  User
	Nurse Nurse
}

type CreateNurseParams

type CreateNurseParams struct {
	NurseID           uuid.UUID `json:"nurse_id"`
	UserID            uuid.UUID `json:"user_id"`
	LicenseNumber     string    `json:"license_number"`
	Specialization    string    `json:"specialization"`
	YearsOfExperience int32     `json:"years_of_experience"`
	ZipCode           string    `json:"zip_code"`
}

type CreatePatientParams

type CreatePatientParams struct {
	PatientID             uuid.UUID `json:"patient_id"`
	UserID                uuid.UUID `json:"user_id"`
	DateOfBirth           time.Time `json:"date_of_birth"`
	EmergencyContactName  string    `json:"emergency_contact_name"`
	EmergencyContactPhone string    `json:"emergency_contact_phone"`
	MedicalHistory        string    `json:"medical_history"`
	Allergies             string    `json:"allergies"`
}

type CreateSessionParams

type CreateSessionParams struct {
	SessionID    uuid.UUID `json:"session_id"`
	Email        string    `json:"email"`
	RefreshToken string    `json:"refresh_token"`
	UserAgent    string    `json:"user_agent"`
	ClientIp     string    `json:"client_ip"`
	IsBlocked    bool      `json:"is_blocked"`
	ExpiresAt    time.Time `json:"expires_at"`
}

type CreateUserParams

type CreateUserParams struct {
	UserID      uuid.UUID `json:"user_id"`
	Email       string    `json:"email"`
	FirstName   string    `json:"first_name"`
	LastName    string    `json:"last_name"`
	PhoneNumber string    `json:"phone_number"`
}

type CreateVerifyRecordParams

type CreateVerifyRecordParams struct {
	VerificationID uuid.UUID `json:"verification_id"`
	Email          string    `json:"email"`
	Token          string    `json:"token"`
	HashedOtp      string    `json:"hashed_otp"`
	Purpose        string    `json:"purpose"`
	Attempts       int32     `json:"attempts"`
	ExpiresAt      time.Time `json:"expires_at"`
	Valid          bool      `json:"valid"`
}

type CreateVisitParams

type CreateVisitParams struct {
	VisitID     uuid.UUID     `json:"visit_id"`
	NurseID     uuid.NullUUID `json:"nurse_id"`
	PatientID   uuid.UUID     `json:"patient_id"`
	ScheduledAt time.Time     `json:"scheduled_at"`
	CompletedAt time.Time     `json:"completed_at"`
	Status      string        `json:"status"`
	Notes       string        `json:"notes"`
}

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type EmailVerification

type EmailVerification struct {
	VerificationID uuid.UUID `json:"verification_id"`
	Email          string    `json:"email"`
	Token          string    `json:"token"`
	HashedOtp      string    `json:"hashed_otp"`
	Purpose        string    `json:"purpose"`
	Attempts       int32     `json:"attempts"`
	ExpiresAt      time.Time `json:"expires_at"`
	Valid          bool      `json:"valid"`
	CreatedAt      time.Time `json:"created_at"`
}

type GetVerifyRecordParams

type GetVerifyRecordParams struct {
	Email   string `json:"email"`
	Purpose string `json:"purpose"`
}

type Nurse

type Nurse struct {
	NurseID           uuid.UUID `json:"nurse_id"`
	UserID            uuid.UUID `json:"user_id"`
	LicenseNumber     string    `json:"license_number"`
	Specialization    string    `json:"specialization"`
	YearsOfExperience int32     `json:"years_of_experience"`
	ZipCode           string    `json:"zip_code"`
	CreatedAt         time.Time `json:"created_at"`
}

type NurseAvailability

type NurseAvailability struct {
	AvailabilityID uuid.UUID `json:"availability_id"`
	NurseID        uuid.UUID `json:"nurse_id"`
	DayOfWeek      string    `json:"day_of_week"`
	StartTime      time.Time `json:"start_time"`
	EndTime        time.Time `json:"end_time"`
	CreatedAt      time.Time `json:"created_at"`
}

type Patient

type Patient struct {
	PatientID             uuid.UUID `json:"patient_id"`
	UserID                uuid.UUID `json:"user_id"`
	DateOfBirth           time.Time `json:"date_of_birth"`
	EmergencyContactName  string    `json:"emergency_contact_name"`
	EmergencyContactPhone string    `json:"emergency_contact_phone"`
	MedicalHistory        string    `json:"medical_history"`
	Allergies             string    `json:"allergies"`
	CreatedAt             time.Time `json:"created_at"`
}

type Querier

type Querier interface {
	CreateNurse(ctx context.Context, arg CreateNurseParams) (Nurse, error)
	CreatePatient(ctx context.Context, arg CreatePatientParams) (Patient, error)
	CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error)
	CreateUser(ctx context.Context, arg CreateUserParams) (User, error)
	CreateVerifyRecord(ctx context.Context, arg CreateVerifyRecordParams) (EmailVerification, error)
	CreateVisit(ctx context.Context, arg CreateVisitParams) (Visit, error)
	GetNurse(ctx context.Context, userID uuid.UUID) (Nurse, error)
	GetPatient(ctx context.Context, userID uuid.UUID) (Patient, error)
	GetSession(ctx context.Context, sessionID uuid.UUID) (Session, error)
	GetUser(ctx context.Context, email string) (User, error)
	GetVerifyRecord(ctx context.Context, arg GetVerifyRecordParams) (EmailVerification, error)
	GetVerifyRecordOnToken(ctx context.Context, token string) (EmailVerification, error)
	UpdateVerifyRecordAttempt(ctx context.Context, verificationID uuid.UUID) (EmailVerification, error)
	UpdateVerifyRecordInvalid(ctx context.Context, verificationID uuid.UUID) (EmailVerification, error)
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) CreateNurse

func (q *Queries) CreateNurse(ctx context.Context, arg CreateNurseParams) (Nurse, error)

func (*Queries) CreatePatient

func (q *Queries) CreatePatient(ctx context.Context, arg CreatePatientParams) (Patient, error)

func (*Queries) CreateSession

func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error)

func (*Queries) CreateUser

func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error)

func (*Queries) CreateVerifyRecord

func (q *Queries) CreateVerifyRecord(ctx context.Context, arg CreateVerifyRecordParams) (EmailVerification, error)

func (*Queries) CreateVisit

func (q *Queries) CreateVisit(ctx context.Context, arg CreateVisitParams) (Visit, error)

func (*Queries) GetNurse

func (q *Queries) GetNurse(ctx context.Context, userID uuid.UUID) (Nurse, error)

func (*Queries) GetPatient

func (q *Queries) GetPatient(ctx context.Context, userID uuid.UUID) (Patient, error)

func (*Queries) GetSession

func (q *Queries) GetSession(ctx context.Context, sessionID uuid.UUID) (Session, error)

func (*Queries) GetUser

func (q *Queries) GetUser(ctx context.Context, email string) (User, error)

func (*Queries) GetVerifyRecord

func (q *Queries) GetVerifyRecord(ctx context.Context, arg GetVerifyRecordParams) (EmailVerification, error)

func (*Queries) GetVerifyRecordOnToken

func (q *Queries) GetVerifyRecordOnToken(ctx context.Context, token string) (EmailVerification, error)

func (*Queries) UpdateVerifyRecordAttempt

func (q *Queries) UpdateVerifyRecordAttempt(ctx context.Context, verificationID uuid.UUID) (EmailVerification, error)

func (*Queries) UpdateVerifyRecordInvalid

func (q *Queries) UpdateVerifyRecordInvalid(ctx context.Context, verificationID uuid.UUID) (EmailVerification, error)

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

type Session

type Session struct {
	SessionID    uuid.UUID `json:"session_id"`
	Email        string    `json:"email"`
	RefreshToken string    `json:"refresh_token"`
	UserAgent    string    `json:"user_agent"`
	ClientIp     string    `json:"client_ip"`
	IsBlocked    bool      `json:"is_blocked"`
	ExpiresAt    time.Time `json:"expires_at"`
	CreatedAt    time.Time `json:"created_at"`
}

type Store

type Store struct {
	*Queries
	// contains filtered or unexported fields
}

func NewStore

func NewStore(db *sql.DB) *Store

func (*Store) CreateNurseAccountTx

func (s *Store) CreateNurseAccountTx(ctx context.Context, arg CreateNurseAccountParams) (CreateNurseAccountResult, error)

func (*Store) ManifestTokenTx

func (s *Store) ManifestTokenTx(ctx context.Context, verificationRecord EmailVerification) error

func (*Store) UpdateVerifyAttemptTx

func (s *Store) UpdateVerifyAttemptTx(ctx context.Context, verificationID uuid.UUID) (EmailVerification, error)

type User

type User struct {
	UserID      uuid.UUID `json:"user_id"`
	Email       string    `json:"email"`
	FirstName   string    `json:"first_name"`
	LastName    string    `json:"last_name"`
	PhoneNumber string    `json:"phone_number"`
	CreatedAt   time.Time `json:"created_at"`
}

type Visit

type Visit struct {
	VisitID     uuid.UUID     `json:"visit_id"`
	NurseID     uuid.NullUUID `json:"nurse_id"`
	PatientID   uuid.UUID     `json:"patient_id"`
	ScheduledAt time.Time     `json:"scheduled_at"`
	CompletedAt time.Time     `json:"completed_at"`
	Status      string        `json:"status"`
	Notes       string        `json:"notes"`
	CreatedAt   time.Time     `json:"created_at"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL