@atproto/ozone
Version:
Backend service for moderating the Bluesky network.
78 lines • 2.79 kB
TypeScript
import { type Selectable } from 'kysely';
import { ModerationEvent } from '../db/schema/moderation_event';
import { ModerationSubjectStatus } from '../db/schema/moderation_subject_status';
import { ModEventView } from '../lexicon/types/tools/ozone/moderation/defs';
import { ModSubject } from './subject';
export type ModerationEventRow = Selectable<ModerationEvent>;
export type ReversibleModerationEvent = Pick<ModerationEventRow, 'createdBy' | 'comment' | 'action'> & {
createdAt?: Date;
subject: ModSubject;
};
export type ModerationEventRowWithHandle = ModerationEventRow & {
subjectHandle?: string | null;
creatorHandle?: string | null;
};
export type ModerationSubjectStatusRow = Selectable<ModerationSubjectStatus>;
export type ModerationSubjectStatusRowWithStats = ModerationSubjectStatusRow & {
takedownCount: number | null;
suspendCount: number | null;
escalateCount: number | null;
reportCount: number | null;
appealCount: number | null;
totalReports: number | null;
reportedCount: number | null;
escalatedCount: number | null;
appealedCount: number | null;
subjectCount: number | null;
pendingCount: number | null;
processedCount: number | null;
takendownCount: number | null;
strikeCount: number | null;
totalStrikeCount: number | null;
firstStrikeAt: string | null;
lastStrikeAt: string | null;
};
export type ModerationSubjectStatusRowWithHandle = ModerationSubjectStatusRowWithStats & {
handle: string | null;
};
export type ModEventType = ModEventView['event'];
type AccountHostingView = {
$type: 'tools.ozone.moderation.defs#accountHosting';
status: 'active' | 'takendown' | 'suspended' | 'deleted' | 'deactivated';
createdAt?: Date;
updatedAt?: Date;
deletedAt?: Date;
deactivatedAt?: Date;
reactivatedAt?: Date;
};
type RecordHostingView = {
$type: 'tools.ozone.moderation.defs#recordHosting';
status: 'active' | 'deleted';
createdAt?: Date;
updatedAt?: Date;
deletedAt?: Date;
};
export type ModerationSubjectHostingView = AccountHostingView | RecordHostingView;
export type ReporterStats = {
did: string;
accountReportCount: number;
recordReportCount: number;
reportedAccountCount: number;
reportedRecordCount: number;
takendownAccountCount: number;
takendownRecordCount: number;
labeledAccountCount: number;
labeledRecordCount: number;
};
export type ReporterStatsResult = {
accountReportCount?: number;
recordReportCount?: number;
reportedAccountCount?: number;
reportedRecordCount?: number;
takendownAccountCount?: number;
takendownRecordCount?: number;
labeledAccountCount?: number;
labeledRecordCount?: number;
};
export {};
//# sourceMappingURL=types.d.ts.map