refactor: improve transcript list performance (#480)

* refactor: improve transcript list performance

* fix: sync openapi

* fix: frontend types

* fix: remove drop table _alembic_tmp_meeting

* fix: remove create table too

* fix: remove uq_recording_object_key
This commit is contained in:
2025-07-15 15:10:05 -06:00
committed by GitHub
parent 3d370336cc
commit 9deb717e5b
21 changed files with 470 additions and 126 deletions

View File

@@ -239,6 +239,57 @@ export const $GetTranscript = {
],
title: "Target Language",
},
reviewed: {
type: "boolean",
title: "Reviewed",
},
meeting_id: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Meeting Id",
},
source_kind: {
$ref: "#/components/schemas/SourceKind",
},
room_id: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Room Id",
},
room_name: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Room Name",
},
audio_deleted: {
anyOf: [
{
type: "boolean",
},
{
type: "null",
},
],
title: "Audio Deleted",
},
participants: {
anyOf: [
{
@@ -253,6 +304,127 @@ export const $GetTranscript = {
],
title: "Participants",
},
},
type: "object",
required: [
"id",
"user_id",
"name",
"status",
"locked",
"duration",
"title",
"short_summary",
"long_summary",
"created_at",
"source_language",
"target_language",
"reviewed",
"meeting_id",
"source_kind",
"participants",
],
title: "GetTranscript",
} as const;
export const $GetTranscriptMinimal = {
properties: {
id: {
type: "string",
title: "Id",
},
user_id: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "User Id",
},
name: {
type: "string",
title: "Name",
},
status: {
type: "string",
title: "Status",
},
locked: {
type: "boolean",
title: "Locked",
},
duration: {
type: "number",
title: "Duration",
},
title: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Title",
},
short_summary: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Short Summary",
},
long_summary: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Long Summary",
},
created_at: {
type: "string",
format: "date-time",
title: "Created At",
},
share_mode: {
type: "string",
title: "Share Mode",
default: "private",
},
source_language: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Source Language",
},
target_language: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Target Language",
},
reviewed: {
type: "boolean",
title: "Reviewed",
@@ -319,12 +491,11 @@ export const $GetTranscript = {
"created_at",
"source_language",
"target_language",
"participants",
"reviewed",
"meeting_id",
"source_kind",
],
title: "GetTranscript",
title: "GetTranscriptMinimal",
} as const;
export const $GetTranscriptSegmentTopic = {
@@ -577,11 +748,11 @@ export const $MeetingConsentRequest = {
title: "MeetingConsentRequest",
} as const;
export const $Page_GetTranscript_ = {
export const $Page_GetTranscriptMinimal_ = {
properties: {
items: {
items: {
$ref: "#/components/schemas/GetTranscript",
$ref: "#/components/schemas/GetTranscriptMinimal",
},
type: "array",
title: "Items",
@@ -630,7 +801,7 @@ export const $Page_GetTranscript_ = {
},
type: "object",
required: ["items", "total", "page", "size"],
title: "Page[GetTranscript]",
title: "Page[GetTranscriptMinimal]",
} as const;
export const $Page_Room_ = {

View File

@@ -233,7 +233,7 @@ export class DefaultService {
* @param data.searchTerm
* @param data.page Page number
* @param data.size Page size
* @returns Page_GetTranscript_ Successful Response
* @returns Page_GetTranscriptMinimal_ Successful Response
* @throws ApiError
*/
public v1TranscriptsList(

View File

@@ -50,7 +50,29 @@ export type GetTranscript = {
share_mode?: string;
source_language: string | null;
target_language: string | null;
reviewed: boolean;
meeting_id: string | null;
source_kind: SourceKind;
room_id?: string | null;
room_name?: string | null;
audio_deleted?: boolean | null;
participants: Array<TranscriptParticipant> | null;
};
export type GetTranscriptMinimal = {
id: string;
user_id: string | null;
name: string;
status: string;
locked: boolean;
duration: number;
title: string | null;
short_summary: string | null;
long_summary: string | null;
created_at: string;
share_mode?: string;
source_language: string | null;
target_language: string | null;
reviewed: boolean;
meeting_id: string | null;
source_kind: SourceKind;
@@ -117,8 +139,8 @@ export type MeetingConsentRequest = {
consent_given: boolean;
};
export type Page_GetTranscript_ = {
items: Array<GetTranscript>;
export type Page_GetTranscriptMinimal_ = {
items: Array<GetTranscriptMinimal>;
total: number;
page: number | null;
size: number | null;
@@ -316,7 +338,7 @@ export type V1TranscriptsListData = {
sourceKind?: SourceKind | null;
};
export type V1TranscriptsListResponse = Page_GetTranscript_;
export type V1TranscriptsListResponse = Page_GetTranscriptMinimal_;
export type V1TranscriptsCreateData = {
requestBody: CreateTranscript;
@@ -590,7 +612,7 @@ export type $OpenApiTs = {
/**
* Successful Response
*/
200: Page_GetTranscript_;
200: Page_GetTranscriptMinimal_;
/**
* Validation Error
*/