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

package db

type Account struct {
	UserID      string `json:"user_id"`
	MatchKey    string `json:"match_key"`
	DisplayName string `json:"display_name"`
	AvatarUrl   string `json:"avatar_url"`
	Roles       string `json:"roles"`
	Provider    string `json:"provider"`
	CreatedAt   int64  `json:"created_at"`
	LastLoginAt int64  `json:"last_login_at"`
}

type ClipboardState struct {
	UserID       string  `json:"user_id"`
	ContentType  string  `json:"content_type"`
	Content      *string `json:"content"`
	SourceDevice *string `json:"source_device"`
	UpdatedAt    int64   `json:"updated_at"`
	Version      int64   `json:"version"`
	OriginTs     int64   `json:"origin_ts"`
}

type Device struct {
	UserID   string `json:"user_id"`
	Name     string `json:"name"`
	Type     string `json:"type"`
	LastSeen int64  `json:"last_seen"`
}

type LoginRequest struct {
	ID             string `json:"id"`
	PollSecret     string `json:"poll_secret"`
	ApprovalCode   string `json:"approval_code"`
	Status         string `json:"status"`
	NewDeviceName  string `json:"new_device_name"`
	NewDeviceType  string `json:"new_device_type"`
	UserAgent      string `json:"user_agent"`
	RequestIp      string `json:"request_ip"`
	ApproverUserID string `json:"approver_user_id"`
	GrantScope     string `json:"grant_scope"`
	GrantPersist   string `json:"grant_persist"`
	CreatedAt      int64  `json:"created_at"`
	ExpiresAt      int64  `json:"expires_at"`
	ApprovedAt     *int64 `json:"approved_at"`
}

type PushSubscription struct {
	ID         string `json:"id"`
	UserID     string `json:"user_id"`
	DeviceName string `json:"device_name"`
	Endpoint   string `json:"endpoint"`
	P256dh     string `json:"p256dh"`
	Auth       string `json:"auth"`
	UserAgent  string `json:"user_agent"`
	Locale     string `json:"locale"`
	CreatedAt  int64  `json:"created_at"`
	LastUsedAt int64  `json:"last_used_at"`
}

type ShortcutToken struct {
	Jti        string `json:"jti"`
	UserID     string `json:"user_id"`
	Label      string `json:"label"`
	Scopes     string `json:"scopes"`
	CreatedAt  int64  `json:"created_at"`
	ExpiresAt  int64  `json:"expires_at"`
	LastUsedAt *int64 `json:"last_used_at"`
	Revoked    int64  `json:"revoked"`
}

type TransferSession struct {
	ID               string  `json:"id"`
	UserID           string  `json:"user_id"`
	SenderName       string  `json:"sender_name"`
	ReceiverName     string  `json:"receiver_name"`
	State            string  `json:"state"`
	Mode             *string `json:"mode"`
	FileName         string  `json:"file_name"`
	FileSize         int64   `json:"file_size"`
	FileSha256       *string `json:"file_sha256"`
	BytesTransferred int64   `json:"bytes_transferred"`
	CreatedAt        int64   `json:"created_at"`
	FinishedAt       *int64  `json:"finished_at"`
	FailReason       *string `json:"fail_reason"`
}

type WebSession struct {
	ID           string `json:"id"`
	UserID       string `json:"user_id"`
	RefreshToken string `json:"refresh_token"`
	DeviceName   string `json:"device_name"`
	UserAgent    string `json:"user_agent"`
	CreatedAt    int64  `json:"created_at"`
	LastUsedAt   int64  `json:"last_used_at"`
	ExpiresAt    int64  `json:"expires_at"`
	Kind         string `json:"kind"`
	Scope        string `json:"scope"`
	GrantedBy    string `json:"granted_by"`
	SteppedUpAt  int64  `json:"stepped_up_at"`
}
