base structure for monitoring hashtags

This commit is contained in:
Dylan Knutson
2025-08-14 20:35:15 +00:00
parent c1310c6dcc
commit 5646e388be
9 changed files with 395 additions and 230 deletions

View File

@@ -12,11 +12,16 @@ module Tasks::Bluesky
@pg_notify = pg_notify
@resolver = T.let(DIDKit::Resolver.new, DIDKit::Resolver)
@dids = T.let(Concurrent::Set.new, Concurrent::Set)
@dids.merge(Bluesky::MonitoredDid.pluck(:did))
logger.info(
"loaded #{@dids.size} #{"did".pluralize(@dids.size)} from database",
@hashtags = T.let(Concurrent::Set.new, Concurrent::Set)
@dids.merge(
Domain::Bluesky::MonitoredObject.where(kind: :user_did).pluck(:value),
)
@hashtags.merge(
Domain::Bluesky::MonitoredObject.where(kind: :hashtag).pluck(:value),
)
logger.info("dids: #{@dids.to_a.join(", ")}")
logger.info("hashtags: #{@hashtags.to_a.join(", ")}")
@bluesky_client =
T.let(
@@ -144,18 +149,26 @@ module Tasks::Bluesky
logger.info("listening to postgres NOTIFYs")
ActiveRecord::Base.connection_pool.with_connection do |conn|
conn = T.cast(conn, ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
conn.exec_query("LISTEN #{Bluesky::MonitoredDid::ADDED_NOTIFY_CHANNEL}")
conn.exec_query(
"LISTEN #{Bluesky::MonitoredDid::REMOVED_NOTIFY_CHANNEL}",
"LISTEN #{Domain::Bluesky::MonitoredObject::ADDED_NOTIFY_CHANNEL}",
)
conn.exec_query(
"LISTEN #{Domain::Bluesky::MonitoredObject::REMOVED_NOTIFY_CHANNEL}",
)
loop do
conn.raw_connection.wait_for_notify do |event, pid, payload|
logger.info("NOTIFY: #{event} / pid: #{pid} / payload: #{payload}")
kind, value = payload.split("/", 2)
logger.info(
"NOTIFY: #{event} / pid: #{pid} / payload: #{payload} / kind: #{kind} / value: #{value}",
)
next unless kind && value
case event
when Bluesky::MonitoredDid::ADDED_NOTIFY_CHANNEL
@dids.add(payload)
when Bluesky::MonitoredDid::REMOVED_NOTIFY_CHANNEL
@dids.delete(payload)
when Domain::Bluesky::MonitoredObject::ADDED_NOTIFY_CHANNEL
@dids.add(value) if kind == "user_did"
@hashtags.add(value) if kind == "hashtag"
when Domain::Bluesky::MonitoredObject::REMOVED_NOTIFY_CHANNEL
@dids.delete(value) if kind == "user_did"
@hashtags.delete(value) if kind == "hashtag"
end
end
end
@@ -164,10 +177,10 @@ module Tasks::Bluesky
ensure
logger.info("unlistening to postgres NOTIFYs")
conn.exec_query(
"UNLISTEN #{Bluesky::MonitoredDid::ADDED_NOTIFY_CHANNEL}",
"UNLISTEN #{Domain::Bluesky::MonitoredObject::ADDED_NOTIFY_CHANNEL}",
)
conn.exec_query(
"UNLISTEN #{Bluesky::MonitoredDid::REMOVED_NOTIFY_CHANNEL}",
"UNLISTEN #{Domain::Bluesky::MonitoredObject::REMOVED_NOTIFY_CHANNEL}",
)
end
end

View File

@@ -1,25 +0,0 @@
# typed: strict
class Bluesky::MonitoredDid < ReduxApplicationRecord
self.table_name = "bluesky_monitored_dids"
validates :did, presence: true, uniqueness: true
ADDED_NOTIFY_CHANNEL = "bluesky_did_added"
REMOVED_NOTIFY_CHANNEL = "bluesky_did_removed"
after_create_commit :notify_monitor_added
after_destroy_commit :notify_monitor_removed
sig { void }
def notify_monitor_added
self.class.connection.execute(
"NOTIFY #{ADDED_NOTIFY_CHANNEL}, '#{self.did}'",
)
end
sig { void }
def notify_monitor_removed
self.class.connection.execute(
"NOTIFY #{REMOVED_NOTIFY_CHANNEL}, '#{self.did}'",
)
end
end

View File

@@ -0,0 +1,27 @@
# typed: strict
class Domain::Bluesky::MonitoredObject < ReduxApplicationRecord
self.table_name = "domain_bluesky_monitored_objects"
validates :value, presence: true, uniqueness: true
enum :kind, { user_did: 0, hashtag: 1 }
ADDED_NOTIFY_CHANNEL = "bluesky_object_added"
REMOVED_NOTIFY_CHANNEL = "bluesky_object_removed"
after_create_commit :notify_monitor_added
after_destroy_commit :notify_monitor_removed
sig { void }
def notify_monitor_added
self.class.connection.execute(
"NOTIFY #{ADDED_NOTIFY_CHANNEL}, '#{self.kind}/#{self.value}'",
)
end
sig { void }
def notify_monitor_removed
self.class.connection.execute(
"NOTIFY #{REMOVED_NOTIFY_CHANNEL}, '#{self.kind}/#{self.value}'",
)
end
end

View File

@@ -0,0 +1,7 @@
class RenameBlueskyMonitoredDidsToMonitoredObjects < ActiveRecord::Migration[
7.2
]
def change
rename_table :bluesky_monitored_dids, :domain_bluesky_monitored_objects
end
end

View File

@@ -0,0 +1,9 @@
class AddKindToMonitoredObjects < ActiveRecord::Migration[7.2]
def change
add_column :domain_bluesky_monitored_objects,
:kind,
:integer,
null: false,
default: 0
end
end

View File

@@ -0,0 +1,5 @@
class RenameDidToValueInMonitoredObjects < ActiveRecord::Migration[7.2]
def change
rename_column :domain_bluesky_monitored_objects, :did, :value
end
end

View File

@@ -1,3 +1,8 @@
\restrict hG9IVhLiJ0tTQ8hFax2hE5oLFPomcQBg6jeYoIb6z2WeKbSlZe2pScwXbprT2Bv
-- Dumped from database version 17.5 (Debian 17.5-1.pgdg130+1)
-- Dumped by pg_dump version 17.6 (Debian 17.6-1.pgdg12+1)
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
@@ -1104,22 +1109,23 @@ CREATE TABLE public.blob_files_63 (
--
-- Name: bluesky_monitored_dids; Type: TABLE; Schema: public; Owner: -
-- Name: domain_bluesky_monitored_objects; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.bluesky_monitored_dids (
CREATE TABLE public.domain_bluesky_monitored_objects (
id bigint NOT NULL,
did character varying NOT NULL,
value character varying NOT NULL,
created_at timestamp(6) without time zone NOT NULL,
updated_at timestamp(6) without time zone NOT NULL
updated_at timestamp(6) without time zone NOT NULL,
kind integer DEFAULT 0 NOT NULL
);
--
-- Name: bluesky_monitored_dids_id_seq; Type: SEQUENCE; Schema: public; Owner: -
-- Name: domain_bluesky_monitored_objects_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE public.bluesky_monitored_dids_id_seq
CREATE SEQUENCE public.domain_bluesky_monitored_objects_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
@@ -1128,10 +1134,10 @@ CREATE SEQUENCE public.bluesky_monitored_dids_id_seq
--
-- Name: bluesky_monitored_dids_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
-- Name: domain_bluesky_monitored_objects_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE public.bluesky_monitored_dids_id_seq OWNED BY public.bluesky_monitored_dids.id;
ALTER SEQUENCE public.domain_bluesky_monitored_objects_id_seq OWNED BY public.domain_bluesky_monitored_objects.id;
--
@@ -3170,10 +3176,10 @@ ALTER TABLE ONLY public.blob_files ATTACH PARTITION public.blob_files_63 FOR VAL
--
-- Name: bluesky_monitored_dids id; Type: DEFAULT; Schema: public; Owner: -
-- Name: domain_bluesky_monitored_objects id; Type: DEFAULT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.bluesky_monitored_dids ALTER COLUMN id SET DEFAULT nextval('public.bluesky_monitored_dids_id_seq'::regclass);
ALTER TABLE ONLY public.domain_bluesky_monitored_objects ALTER COLUMN id SET DEFAULT nextval('public.domain_bluesky_monitored_objects_id_seq'::regclass);
--
@@ -3437,11 +3443,11 @@ ALTER TABLE ONLY public.ar_internal_metadata
--
-- Name: bluesky_monitored_dids bluesky_monitored_dids_pkey; Type: CONSTRAINT; Schema: public; Owner: -
-- Name: domain_bluesky_monitored_objects domain_bluesky_monitored_objects_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.bluesky_monitored_dids
ADD CONSTRAINT bluesky_monitored_dids_pkey PRIMARY KEY (id);
ALTER TABLE ONLY public.domain_bluesky_monitored_objects
ADD CONSTRAINT domain_bluesky_monitored_objects_pkey PRIMARY KEY (id);
--
@@ -4432,10 +4438,10 @@ CREATE UNIQUE INDEX index_blob_files_63_on_sha256 ON public.blob_files_63 USING
--
-- Name: index_bluesky_monitored_dids_on_did; Type: INDEX; Schema: public; Owner: -
-- Name: index_domain_bluesky_monitored_objects_on_value; Type: INDEX; Schema: public; Owner: -
--
CREATE UNIQUE INDEX index_bluesky_monitored_dids_on_did ON public.bluesky_monitored_dids USING btree (did);
CREATE UNIQUE INDEX index_domain_bluesky_monitored_objects_on_value ON public.domain_bluesky_monitored_objects USING btree (value);
--
@@ -6111,9 +6117,14 @@ ALTER TABLE ONLY public.domain_twitter_tweets
-- PostgreSQL database dump complete
--
\unrestrict hG9IVhLiJ0tTQ8hFax2hE5oLFPomcQBg6jeYoIb6z2WeKbSlZe2pScwXbprT2Bv
SET search_path TO "$user", public;
INSERT INTO "schema_migrations" (version) VALUES
('20250814202838'),
('20250814202723'),
('20250814202516'),
('20250814170820'),
('20250814165718'),
('20250814152837'),

View File

@@ -22,7 +22,7 @@ namespace :bluesky do
end
raise "did is required" if did.blank?
Bluesky::MonitoredDid.create!(did: did)
Domain::Bluesky::MonitoredObject.create!(value: did, kind: :user_did)
user =
Domain::User::BlueskyUser.find_or_create_by!(did:) do |user|
user.handle = handle
@@ -40,7 +40,7 @@ namespace :bluesky do
end
raise "did is required" if did.blank?
Bluesky::MonitoredDid.find_by(did: did)&.destroy!
Domain::Bluesky::MonitoredObject.find_by(value: did)&.destroy!
end
desc "Delete all bluesky posts/files"

View File

@@ -1,12 +1,13 @@
# typed: true
# DO NOT EDIT MANUALLY
# This is an autogenerated file for dynamic methods in `Bluesky::MonitoredDid`.
# Please instead update this file by running `bin/tapioca dsl Bluesky::MonitoredDid`.
# This is an autogenerated file for dynamic methods in `Domain::Bluesky::MonitoredObject`.
# Please instead update this file by running `bin/tapioca dsl Domain::Bluesky::MonitoredObject`.
class Bluesky::MonitoredDid
class Domain::Bluesky::MonitoredObject
include GeneratedAttributeMethods
include EnumMethodsModule
extend CommonRelationMethods
extend GeneratedRelationMethods
@@ -19,14 +20,17 @@ class Bluesky::MonitoredDid
def to_ary; end
class << self
sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
def kinds; end
sig { returns(ColorLogger) }
def logger; end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def new(attributes = nil, &block); end
end
@@ -34,7 +38,7 @@ class Bluesky::MonitoredDid
module CommonRelationMethods
sig do
params(
block: T.nilable(T.proc.params(record: ::Bluesky::MonitoredDid).returns(T.untyped))
block: T.nilable(T.proc.params(record: ::Domain::Bluesky::MonitoredObject).returns(T.untyped))
).returns(T::Boolean)
end
def any?(&block); end
@@ -44,20 +48,20 @@ class Bluesky::MonitoredDid
sig do
params(
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
sig do
params(
attributes: T::Array[T.untyped],
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(T::Array[::Bluesky::MonitoredDid])
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def build(attributes = nil, &block); end
@@ -65,109 +69,114 @@ class Bluesky::MonitoredDid
def calculate(operation, column_name); end
sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) }
sig { params(column_name: NilClass, block: T.proc.params(object: ::Bluesky::MonitoredDid).void).returns(Integer) }
sig do
params(
column_name: NilClass,
block: T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void
).returns(Integer)
end
def count(column_name = nil, &block); end
sig do
params(
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
sig do
params(
attributes: T::Array[T.untyped],
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(T::Array[::Bluesky::MonitoredDid])
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def create(attributes = nil, &block); end
sig do
params(
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
sig do
params(
attributes: T::Array[T.untyped],
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(T::Array[::Bluesky::MonitoredDid])
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def create!(attributes = nil, &block); end
sig do
params(
attributes: T::Array[T.untyped],
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(T::Array[::Bluesky::MonitoredDid])
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def create_or_find_by(attributes, &block); end
sig do
params(
attributes: T::Array[T.untyped],
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(T::Array[::Bluesky::MonitoredDid])
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def create_or_find_by!(attributes, &block); end
sig { returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def destroy_all; end
sig { params(conditions: T.untyped).returns(T::Boolean) }
def exists?(conditions = :none); end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
def fifth; end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def fifth!; end
sig do
params(
args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])
).returns(::Bluesky::MonitoredDid)
).returns(::Domain::Bluesky::MonitoredObject)
end
sig do
params(
args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]
).returns(T::Enumerable[::Bluesky::MonitoredDid])
).returns(T::Enumerable[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
args: NilClass,
block: T.proc.params(object: ::Bluesky::MonitoredDid).void
).returns(T.nilable(::Bluesky::MonitoredDid))
block: T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void
).returns(T.nilable(::Domain::Bluesky::MonitoredObject))
end
def find(args = nil, &block); end
sig { params(args: T.untyped).returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { params(args: T.untyped).returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
def find_by(*args); end
sig { params(args: T.untyped).returns(::Bluesky::MonitoredDid) }
sig { params(args: T.untyped).returns(::Domain::Bluesky::MonitoredObject) }
def find_by!(*args); end
sig do
@@ -177,7 +186,7 @@ class Bluesky::MonitoredDid
batch_size: Integer,
error_on_ignore: T.untyped,
order: Symbol,
block: T.proc.params(object: ::Bluesky::MonitoredDid).void
block: T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void
).void
end
sig do
@@ -187,7 +196,7 @@ class Bluesky::MonitoredDid
batch_size: Integer,
error_on_ignore: T.untyped,
order: Symbol
).returns(T::Enumerator[::Bluesky::MonitoredDid])
).returns(T::Enumerator[::Domain::Bluesky::MonitoredObject])
end
def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, order: :asc, &block); end
@@ -198,7 +207,7 @@ class Bluesky::MonitoredDid
batch_size: Integer,
error_on_ignore: T.untyped,
order: Symbol,
block: T.proc.params(object: T::Array[::Bluesky::MonitoredDid]).void
block: T.proc.params(object: T::Array[::Domain::Bluesky::MonitoredObject]).void
).void
end
sig do
@@ -208,78 +217,78 @@ class Bluesky::MonitoredDid
batch_size: Integer,
error_on_ignore: T.untyped,
order: Symbol
).returns(T::Enumerator[T::Enumerator[::Bluesky::MonitoredDid]])
).returns(T::Enumerator[T::Enumerator[::Domain::Bluesky::MonitoredObject]])
end
def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, order: :asc, &block); end
sig do
params(
attributes: T::Array[T.untyped],
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(T::Array[::Bluesky::MonitoredDid])
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def find_or_create_by(attributes, &block); end
sig do
params(
attributes: T::Array[T.untyped],
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(T::Array[::Bluesky::MonitoredDid])
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def find_or_create_by!(attributes, &block); end
sig do
params(
attributes: T::Array[T.untyped],
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(T::Array[::Bluesky::MonitoredDid])
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def find_or_initialize_by(attributes, &block); end
sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
def find_signed(signed_id, purpose: nil); end
sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::Bluesky::MonitoredDid) }
sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::Domain::Bluesky::MonitoredObject) }
def find_signed!(signed_id, purpose: nil); end
sig { params(arg: T.untyped, args: T.untyped).returns(::Bluesky::MonitoredDid) }
sig { params(arg: T.untyped, args: T.untyped).returns(::Domain::Bluesky::MonitoredObject) }
def find_sole_by(arg, *args); end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { params(limit: Integer).returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
sig { params(limit: Integer).returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def first(limit = nil); end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def first!; end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
def forty_two; end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def forty_two!; end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
def fourth; end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def fourth!; end
sig { returns(Array) }
@@ -313,16 +322,16 @@ class Bluesky::MonitoredDid
sig { params(record: T.untyped).returns(T::Boolean) }
def include?(record); end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { params(limit: Integer).returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
sig { params(limit: Integer).returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def last(limit = nil); end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def last!; end
sig do
params(
block: T.nilable(T.proc.params(record: ::Bluesky::MonitoredDid).returns(T.untyped))
block: T.nilable(T.proc.params(record: ::Domain::Bluesky::MonitoredObject).returns(T.untyped))
).returns(T::Boolean)
end
def many?(&block); end
@@ -338,33 +347,33 @@ class Bluesky::MonitoredDid
sig do
params(
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
sig do
params(
attributes: T::Array[T.untyped],
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(T::Array[::Bluesky::MonitoredDid])
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
sig do
params(
attributes: T.untyped,
block: T.nilable(T.proc.params(object: ::Bluesky::MonitoredDid).void)
).returns(::Bluesky::MonitoredDid)
block: T.nilable(T.proc.params(object: ::Domain::Bluesky::MonitoredObject).void)
).returns(::Domain::Bluesky::MonitoredObject)
end
def new(attributes = nil, &block); end
sig do
params(
block: T.nilable(T.proc.params(record: ::Bluesky::MonitoredDid).returns(T.untyped))
block: T.nilable(T.proc.params(record: ::Domain::Bluesky::MonitoredObject).returns(T.untyped))
).returns(T::Boolean)
end
def none?(&block); end
sig do
params(
block: T.nilable(T.proc.params(record: ::Bluesky::MonitoredDid).returns(T.untyped))
block: T.nilable(T.proc.params(record: ::Domain::Bluesky::MonitoredObject).returns(T.untyped))
).returns(T::Boolean)
end
def one?(&block); end
@@ -375,19 +384,19 @@ class Bluesky::MonitoredDid
sig { params(column_names: T.untyped).returns(T.untyped) }
def pluck(*column_names); end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
def second; end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def second!; end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
def second_to_last; end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def second_to_last!; end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def sole; end
sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) }
@@ -395,31 +404,45 @@ class Bluesky::MonitoredDid
type_parameters(:U)
.params(
initial_value_or_column: T.nilable(T.type_parameter(:U)),
block: T.proc.params(object: ::Bluesky::MonitoredDid).returns(T.type_parameter(:U))
block: T.proc.params(object: ::Domain::Bluesky::MonitoredObject).returns(T.type_parameter(:U))
).returns(T.type_parameter(:U))
end
def sum(initial_value_or_column = nil, &block); end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { params(limit: Integer).returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
sig { params(limit: Integer).returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def take(limit = nil); end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def take!; end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
def third; end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def third!; end
sig { returns(T.nilable(::Bluesky::MonitoredDid)) }
sig { returns(T.nilable(::Domain::Bluesky::MonitoredObject)) }
def third_to_last; end
sig { returns(::Bluesky::MonitoredDid) }
sig { returns(::Domain::Bluesky::MonitoredObject) }
def third_to_last!; end
end
module EnumMethodsModule
sig { void }
def hashtag!; end
sig { returns(T::Boolean) }
def hashtag?; end
sig { void }
def user_did!; end
sig { returns(T::Boolean) }
def user_did?; end
end
module GeneratedAssociationRelationMethods
sig { returns(PrivateAssociationRelation) }
def all; end
@@ -460,6 +483,9 @@ class Bluesky::MonitoredDid
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) }
def group(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def hashtag(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def having(*args, &blk); end
@@ -493,6 +519,12 @@ class Bluesky::MonitoredDid
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def none(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def not_hashtag(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def not_user_did(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def null_relation?(*args, &blk); end
@@ -552,8 +584,8 @@ class Bluesky::MonitoredDid
sig { params(args: T.untyped).returns(PrivateAssociationRelation) }
sig do
params(
blk: T.proc.params(record: ::Bluesky::MonitoredDid).returns(T::Boolean)
).returns(T::Array[::Bluesky::MonitoredDid])
blk: T.proc.params(record: ::Domain::Bluesky::MonitoredObject).returns(T::Boolean)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
def select(*args, &blk); end
@@ -569,6 +601,9 @@ class Bluesky::MonitoredDid
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def unscope(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def user_did(*args, &blk); end
sig { returns(PrivateAssociationRelationWhereChain) }
sig { params(args: T.untyped).returns(PrivateAssociationRelation) }
def where(*args); end
@@ -644,51 +679,6 @@ class Bluesky::MonitoredDid
sig { void }
def created_at_will_change!; end
sig { returns(T.nilable(::String)) }
def did; end
sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) }
def did=(value); end
sig { returns(T::Boolean) }
def did?; end
sig { returns(T.nilable(::String)) }
def did_before_last_save; end
sig { returns(T.untyped) }
def did_before_type_cast; end
sig { returns(T::Boolean) }
def did_came_from_user?; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def did_change; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def did_change_to_be_saved; end
sig { params(from: T.nilable(::String), to: T.nilable(::String)).returns(T::Boolean) }
def did_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::String)) }
def did_in_database; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def did_previous_change; end
sig { params(from: T.nilable(::String), to: T.nilable(::String)).returns(T::Boolean) }
def did_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::String)) }
def did_previously_was; end
sig { returns(T.nilable(::String)) }
def did_was; end
sig { void }
def did_will_change!; end
sig { returns(T.nilable(::Integer)) }
def id; end
@@ -779,11 +769,67 @@ class Bluesky::MonitoredDid
sig { void }
def id_will_change!; end
sig { void }
def restore_created_at!; end
sig { returns(T.nilable(::String)) }
def kind; end
sig do
params(
value: T.nilable(T.any(::String, ::Symbol, ::Integer))
).returns(T.nilable(T.any(::String, ::Symbol, ::Integer)))
end
def kind=(value); end
sig { returns(T::Boolean) }
def kind?; end
sig { returns(T.nilable(::String)) }
def kind_before_last_save; end
sig { returns(T.untyped) }
def kind_before_type_cast; end
sig { returns(T::Boolean) }
def kind_came_from_user?; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def kind_change; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def kind_change_to_be_saved; end
sig do
params(
from: T.nilable(T.any(::String, ::Symbol, ::Integer)),
to: T.nilable(T.any(::String, ::Symbol, ::Integer))
).returns(T::Boolean)
end
def kind_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::String)) }
def kind_in_database; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def kind_previous_change; end
sig do
params(
from: T.nilable(T.any(::String, ::Symbol, ::Integer)),
to: T.nilable(T.any(::String, ::Symbol, ::Integer))
).returns(T::Boolean)
end
def kind_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::String)) }
def kind_previously_was; end
sig { returns(T.nilable(::String)) }
def kind_was; end
sig { void }
def restore_did!; end
def kind_will_change!; end
sig { void }
def restore_created_at!; end
sig { void }
def restore_id!; end
@@ -791,21 +837,21 @@ class Bluesky::MonitoredDid
sig { void }
def restore_id_value!; end
sig { void }
def restore_kind!; end
sig { void }
def restore_updated_at!; end
sig { void }
def restore_value!; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def saved_change_to_created_at; end
sig { returns(T::Boolean) }
def saved_change_to_created_at?; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def saved_change_to_did; end
sig { returns(T::Boolean) }
def saved_change_to_did?; end
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def saved_change_to_id; end
@@ -818,12 +864,24 @@ class Bluesky::MonitoredDid
sig { returns(T::Boolean) }
def saved_change_to_id_value?; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def saved_change_to_kind; end
sig { returns(T::Boolean) }
def saved_change_to_kind?; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def saved_change_to_updated_at; end
sig { returns(T::Boolean) }
def saved_change_to_updated_at?; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def saved_change_to_value; end
sig { returns(T::Boolean) }
def saved_change_to_value?; end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def updated_at; end
@@ -879,11 +937,53 @@ class Bluesky::MonitoredDid
sig { void }
def updated_at_will_change!; end
sig { returns(T::Boolean) }
def will_save_change_to_created_at?; end
sig { returns(T.nilable(::String)) }
def value; end
sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) }
def value=(value); end
sig { returns(T::Boolean) }
def will_save_change_to_did?; end
def value?; end
sig { returns(T.nilable(::String)) }
def value_before_last_save; end
sig { returns(T.untyped) }
def value_before_type_cast; end
sig { returns(T::Boolean) }
def value_came_from_user?; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def value_change; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def value_change_to_be_saved; end
sig { params(from: T.nilable(::String), to: T.nilable(::String)).returns(T::Boolean) }
def value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::String)) }
def value_in_database; end
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def value_previous_change; end
sig { params(from: T.nilable(::String), to: T.nilable(::String)).returns(T::Boolean) }
def value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::String)) }
def value_previously_was; end
sig { returns(T.nilable(::String)) }
def value_was; end
sig { void }
def value_will_change!; end
sig { returns(T::Boolean) }
def will_save_change_to_created_at?; end
sig { returns(T::Boolean) }
def will_save_change_to_id?; end
@@ -891,8 +991,14 @@ class Bluesky::MonitoredDid
sig { returns(T::Boolean) }
def will_save_change_to_id_value?; end
sig { returns(T::Boolean) }
def will_save_change_to_kind?; end
sig { returns(T::Boolean) }
def will_save_change_to_updated_at?; end
sig { returns(T::Boolean) }
def will_save_change_to_value?; end
end
module GeneratedRelationMethods
@@ -935,6 +1041,9 @@ class Bluesky::MonitoredDid
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) }
def group(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def hashtag(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def having(*args, &blk); end
@@ -968,6 +1077,12 @@ class Bluesky::MonitoredDid
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def none(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def not_hashtag(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def not_user_did(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def null_relation?(*args, &blk); end
@@ -1027,8 +1142,8 @@ class Bluesky::MonitoredDid
sig { params(args: T.untyped).returns(PrivateRelation) }
sig do
params(
blk: T.proc.params(record: ::Bluesky::MonitoredDid).returns(T::Boolean)
).returns(T::Array[::Bluesky::MonitoredDid])
blk: T.proc.params(record: ::Domain::Bluesky::MonitoredObject).returns(T::Boolean)
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
def select(*args, &blk); end
@@ -1044,6 +1159,9 @@ class Bluesky::MonitoredDid
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def unscope(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def user_did(*args, &blk); end
sig { returns(PrivateRelationWhereChain) }
sig { params(args: T.untyped).returns(PrivateRelation) }
def where(*args); end
@@ -1065,17 +1183,17 @@ class Bluesky::MonitoredDid
include CommonRelationMethods
include GeneratedAssociationRelationMethods
Elem = type_member { { fixed: ::Bluesky::MonitoredDid } }
Elem = type_member { { fixed: ::Domain::Bluesky::MonitoredObject } }
sig { returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def to_a; end
sig { returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def to_ary; end
end
class PrivateAssociationRelationGroupChain < PrivateAssociationRelation
Elem = type_member { { fixed: ::Bluesky::MonitoredDid } }
Elem = type_member { { fixed: ::Domain::Bluesky::MonitoredObject } }
sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
def average(column_name); end
@@ -1118,7 +1236,7 @@ class Bluesky::MonitoredDid
end
class PrivateAssociationRelationWhereChain
Elem = type_member { { fixed: ::Bluesky::MonitoredDid } }
Elem = type_member { { fixed: ::Domain::Bluesky::MonitoredObject } }
sig { params(args: T.untyped).returns(PrivateAssociationRelation) }
def associated(*args); end
@@ -1134,18 +1252,18 @@ class Bluesky::MonitoredDid
include CommonRelationMethods
include GeneratedAssociationRelationMethods
Elem = type_member { { fixed: ::Bluesky::MonitoredDid } }
Elem = type_member { { fixed: ::Domain::Bluesky::MonitoredObject } }
sig do
params(
records: T.any(::Bluesky::MonitoredDid, T::Enumerable[T.any(::Bluesky::MonitoredDid, T::Enumerable[::Bluesky::MonitoredDid])])
records: T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[::Domain::Bluesky::MonitoredObject])])
).returns(PrivateCollectionProxy)
end
def <<(*records); end
sig do
params(
records: T.any(::Bluesky::MonitoredDid, T::Enumerable[T.any(::Bluesky::MonitoredDid, T::Enumerable[::Bluesky::MonitoredDid])])
records: T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[::Domain::Bluesky::MonitoredObject])])
).returns(PrivateCollectionProxy)
end
def append(*records); end
@@ -1155,45 +1273,45 @@ class Bluesky::MonitoredDid
sig do
params(
records: T.any(::Bluesky::MonitoredDid, T::Enumerable[T.any(::Bluesky::MonitoredDid, T::Enumerable[::Bluesky::MonitoredDid])])
records: T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[::Domain::Bluesky::MonitoredObject])])
).returns(PrivateCollectionProxy)
end
def concat(*records); end
sig { returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def load_target; end
sig do
params(
records: T.any(::Bluesky::MonitoredDid, T::Enumerable[T.any(::Bluesky::MonitoredDid, T::Enumerable[::Bluesky::MonitoredDid])])
records: T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[::Domain::Bluesky::MonitoredObject])])
).returns(PrivateCollectionProxy)
end
def prepend(*records); end
sig do
params(
records: T.any(::Bluesky::MonitoredDid, T::Enumerable[T.any(::Bluesky::MonitoredDid, T::Enumerable[::Bluesky::MonitoredDid])])
records: T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[::Domain::Bluesky::MonitoredObject])])
).returns(PrivateCollectionProxy)
end
def push(*records); end
sig do
params(
other_array: T.any(::Bluesky::MonitoredDid, T::Enumerable[T.any(::Bluesky::MonitoredDid, T::Enumerable[::Bluesky::MonitoredDid])])
).returns(T::Array[::Bluesky::MonitoredDid])
other_array: T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[T.any(::Domain::Bluesky::MonitoredObject, T::Enumerable[::Domain::Bluesky::MonitoredObject])])
).returns(T::Array[::Domain::Bluesky::MonitoredObject])
end
def replace(other_array); end
sig { returns(PrivateAssociationRelation) }
def scope; end
sig { returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def target; end
sig { returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def to_a; end
sig { returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def to_ary; end
end
@@ -1201,17 +1319,17 @@ class Bluesky::MonitoredDid
include CommonRelationMethods
include GeneratedRelationMethods
Elem = type_member { { fixed: ::Bluesky::MonitoredDid } }
Elem = type_member { { fixed: ::Domain::Bluesky::MonitoredObject } }
sig { returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def to_a; end
sig { returns(T::Array[::Bluesky::MonitoredDid]) }
sig { returns(T::Array[::Domain::Bluesky::MonitoredObject]) }
def to_ary; end
end
class PrivateRelationGroupChain < PrivateRelation
Elem = type_member { { fixed: ::Bluesky::MonitoredDid } }
Elem = type_member { { fixed: ::Domain::Bluesky::MonitoredObject } }
sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) }
def average(column_name); end
@@ -1254,7 +1372,7 @@ class Bluesky::MonitoredDid
end
class PrivateRelationWhereChain
Elem = type_member { { fixed: ::Bluesky::MonitoredDid } }
Elem = type_member { { fixed: ::Domain::Bluesky::MonitoredObject } }
sig { params(args: T.untyped).returns(PrivateRelation) }
def associated(*args); end