// Code generated by sqlc. DO NOT EDIT.
// versions:
//   sqlc v1.30.0

package sqlc

import (
	"github.com/jackc/pgx/v5/pgtype"
)

type Media struct {
	ID           pgtype.UUID        `json:"id"`
	UserID       pgtype.UUID        `json:"user_id"`
	StorageKey   string             `json:"storage_key"`
	OriginalName string             `json:"original_name"`
	MimeType     string             `json:"mime_type"`
	Size         int64              `json:"size"`
	FileMetadata []byte             `json:"file_metadata"`
	CreatedAt    pgtype.Timestamptz `json:"created_at"`
	UpdatedAt    pgtype.Timestamptz `json:"updated_at"`
}

type Role struct {
	ID        pgtype.UUID        `json:"id"`
	Name      string             `json:"name"`
	IsDeleted bool               `json:"is_deleted"`
	CreatedAt pgtype.Timestamptz `json:"created_at"`
	UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}

type User struct {
	ID           pgtype.UUID        `json:"id"`
	Email        string             `json:"email"`
	PasswordHash pgtype.Text        `json:"password_hash"`
	GoogleID     pgtype.Text        `json:"google_id"`
	AuthProvider string             `json:"auth_provider"`
	IsDeleted    bool               `json:"is_deleted"`
	TokenVersion int32              `json:"token_version"`
	RefreshToken pgtype.Text        `json:"refresh_token"`
	CreatedAt    pgtype.Timestamptz `json:"created_at"`
	UpdatedAt    pgtype.Timestamptz `json:"updated_at"`
}

type UserProfile struct {
	UserID      pgtype.UUID        `json:"user_id"`
	DisplayName pgtype.Text        `json:"display_name"`
	FullName    pgtype.Text        `json:"full_name"`
	AvatarUrl   pgtype.Text        `json:"avatar_url"`
	Bio         pgtype.Text        `json:"bio"`
	Location    pgtype.Text        `json:"location"`
	Website     pgtype.Text        `json:"website"`
	CountryCode pgtype.Text        `json:"country_code"`
	Phone       pgtype.Text        `json:"phone"`
	CreatedAt   pgtype.Timestamptz `json:"created_at"`
	UpdatedAt   pgtype.Timestamptz `json:"updated_at"`
}

type UserRole struct {
	UserID pgtype.UUID `json:"user_id"`
	RoleID pgtype.UUID `json:"role_id"`
}

type UserVerification struct {
	ID         pgtype.UUID        `json:"id"`
	UserID     pgtype.UUID        `json:"user_id"`
	VerifyType int16              `json:"verify_type"`
	IsDeleted  bool               `json:"is_deleted"`
	Status     int16              `json:"status"`
	ReviewedBy pgtype.UUID        `json:"reviewed_by"`
	ReviewedAt pgtype.Timestamptz `json:"reviewed_at"`
	CreatedAt  pgtype.Timestamptz `json:"created_at"`
}

type VerificationMedia struct {
	VerificationID pgtype.UUID `json:"verification_id"`
	MediaID        pgtype.UUID `json:"media_id"`
}
