export function desktopNativeEvidence() { const tasks = 'desktop_creation_tasks' const fields = { id:'text',project_id:'text',owner_id:'text',payload:'jsonb',status:'text',dispatched:'boolean',revision:'integer',lease_session_id:'text',lease_hash:'text',lease_mode:'text',lease_until:'timestamp with time zone',created_at:'timestamp with time zone',updated_at:'timestamp with time zone' } const columns = Object.entries(fields).map(([column,type])=>({table_name:tasks,column_name:column,data_type:type,is_nullable:column.startsWith('lease_')?'YES':'NO',column_default:column==='dispatched'?'false':column==='revision'?'1':['created_at','updated_at'].includes(column)?'now()':null})) for (const table_name of ['desktop_workspace_projects','detail_generator_projects']) columns.push({table_name,column_name:'deleted_at',data_type:'timestamp with time zone',is_nullable:'YES',column_default:null}) const indexes = [ [tasks,'desktop_creation_tasks_owner_status_idx',['owner_id','status']], [tasks,'desktop_creation_tasks_project_idx',['owner_id','project_id','created_at']], ['desktop_workspace_projects','desktop_workspace_projects_deleted_idx',['owner_id','deleted_at']], ].map(([tablename,indexname,columns])=>({tablename,indexname,columns,indisunique:false,indisprimary:false,indisvalid:true,indisready:true,access_method:'btree',predicate:'',indexdef:`CREATE INDEX ${indexname} ON public.${tablename} USING btree (${columns.join(', ')})`})) const constraints = [['project_id','desktop_workspace_projects','c'],['owner_id','users','c'],['lease_session_id','desktop_client_sessions','n']].map(([column,referenced_table,delete_action])=>({tablename:tasks,constraint_name:`${tasks}_${column}_fkey`,contype:'f',convalidated:true,columns:[column],referenced_table,referenced_columns:['id'],delete_action})) constraints.push({tablename:tasks,constraint_name:`${tasks}_pkey`,contype:'p',convalidated:true,columns:['id']}) constraints.push({tablename:tasks,constraint_name:`${tasks}_status_check`,contype:'c',convalidated:true,columns:['status'],expression:"status = ANY (ARRAY['queued'::text, 'running'::text, 'received'::text, 'succeeded'::text, 'failed'::text, 'unknown'::text, 'cancelled'::text])"}) constraints.push({tablename:tasks,constraint_name:`${tasks}_lease_mode_check`,contype:'c',convalidated:true,columns:['lease_mode'],expression:"lease_mode = ANY (ARRAY['execute'::text, 'recover'::text])"}) return {columns,indexes,constraints} }