// CRUD Operations // Create Queries // User QUERY createUser (phone: String, email: String, bio: String, age: I32, location: String, profilePic: String, color: String, elo: F64, sender: String) => user <- AddN({phone: phone, email: email, bio: bio, age: age, location: location, profilePic: profilePic, color: color, elo: elo, sender: sender}) RETURN user QUERY createMetadata (user_id: ID, created_ts: Date, last_updated_ts: Date, archetype: Boolean, referredBy: String) => metadata <- AddN({created_ts: created_ts, last_updated_ts: last_updated_ts, archetype: archetype, referredBy: referredBy}) user <- N(user_id) user_metadata <- AddE({created_ts: created_ts, last_updated_ts: last_updated_ts})::From(user)::To(metadata) RETURN metadata QUERY createName (user_id: ID, first: String, last: String) => name <- AddN({first: first, last: last}) user <- N(user_id) user_name <- AddE({first: first})::From(user)::To(name) RETURN name QUERY createMetadataNotes (user_id: ID, aiScore: I64, userScore: I64, text: String, flagged: Boolean) => user_metadata_notes <- AddN({aiScore: aiScore, userScore: userScore, text: text, flagged: flagged}) user <- N(user_id) metadata <- user::Out metadata_metadata_notes <- AddE()::From(metadata)::To(user_metadata_notes) RETURN user_metadata_notes // Linkedin QUERY createLinkedinInfo (user_id: ID, url: String) => linkedin_info <- AddN({url: url}) user <- N(user_id) metadata <- user::Out metadata_linkedin_info <- AddE({url: url})::From(metadata)::To(linkedin_info) RETURN linkedin_info QUERY createLinkedinContent (user_id: ID, name: String, email: String, linkedin_url: String, full_name: String, first_name: String, last_name: String, public_id: String, profile_picture: String, background_picture: String, current_position: String, summary: String, industry: String, region: String, country: String, country_code: String, connection_count: I64, follower_count: I64, languages: [String], skills: [String], certifications: [String], position_start_date: String, position_end_date: String, extracted_at: Date, data_source: String) => linkedin_content <- AddN({name: name, email: email, linkedin_url: linkedin_url, full_name: full_name, first_name: first_name, last_name: last_name, public_id: public_id, profile_picture: profile_picture, background_picture: background_picture, current_position: current_position, summary: summary, industry: industry, region: region, country: country, country_code: country_code, connection_count: connection_count, follower_count: follower_count, languages: languages, skills: skills, certifications: certifications, position_start_date: position_start_date, position_end_date: position_end_date, extracted_at: extracted_at, data_source: data_source}) user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content_linkedin_info <- AddE()::From(linkedin_info)::To(linkedin_content) RETURN linkedin_content QUERY createLinkedinWebsite (user_id: ID, url: String, category: String) => linkedin_website <- AddN({url: url, category: category}) user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_content_linkedin_website <- AddE()::From(linkedin_content)::To(linkedin_website) RETURN linkedin_website QUERY createLinkedinExperience (user_id: ID, company: String, title: String, field: String, date_start: String, date_end: String, location: String, description: String) => linkedin_experience <- AddN({company: company, title: title, field: field, date_start: date_start, date_end: date_end, location: location, description: description}) user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_content_linkedin_experience <- AddE()::From(linkedin_content)::To(linkedin_experience) RETURN linkedin_experience QUERY createLinkedinCompany (user_id: ID, name: String, domain: String, industry: String, staff_count: I64, founded: I64, website: String, headquarters: String, description: String, specialties: [String]) => linkedin_company <- AddN({name: name, domain: domain, industry: industry, staff_count: staff_count, founded: founded, website: website, headquarters: headquarters, description: description, specialties: specialties}) user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_content_linkedin_company <- AddE()::From(linkedin_content)::To(linkedin_company) RETURN linkedin_company QUERY addLinkedinCompany (user_id: ID, linkedin_company_id: ID) => user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_company <- N(linkedin_company_id) linkedin_content_linkedin_company <- AddE()::From(linkedin_content)::To(linkedin_company) RETURN linkedin_content_linkedin_company QUERY createLinkedinEducation (user_id: ID, school: String, field: String, title: String, date_start: String, date_end: String, location: String, description: String) => linkedin_education <- AddN({school: school, field: field, title: title, date_start: date_start, date_end: date_end, location: location, description: description}) user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_content_linkedin_education <- AddE()::From(linkedin_content)::To(linkedin_education) RETURN linkedin_education // Warm Connect QUERY createWarmConnect (user_id: ID, name: String, email: String) => warm_connect <- AddN({name: name, email: email}) user <- N(user_id) metadata <- user::Out metadata_to_warm_connect <- AddE()::From(metadata)::To(warm_connect) RETURN warm_connect QUERY addWarmConnect (user_id: ID, warm_connect_id: ID) => user <- N(user_id) metadata <- user::Out warm_connect <- N(warm_connect_id) metadata_to_warm_connect <- AddE()::From(metadata)::To(warm_connect) RETURN warm_connect QUERY createUserBio (user_id: ID, bio: [F64]) => user_bio <- AddV(bio) user <- N(user_id) user_user_bio <- AddE()::From(user)::To(user_bio) RETURN user_bio QUERY addCurrentCompany (user_id: ID, linkedin_company_id: ID) => user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_company <- N(linkedin_company_id) linkedin_content_current_company <- AddE()::From(linkedin_content)::To(linkedin_company) RETURN linkedin_content_current_company // Read Queries // User #[mcp] QUERY getUser (user_id: ID) => user <- N(user_id) RETURN user #[mcp] QUERY getUserName (user_id: ID) => user <- N(user_id) name <- user::Out RETURN name #[mcp] QUERY getAllUsers() => users <- N RETURN users #[mcp] QUERY getEmbedUserBio (user_id: ID) => user <- N(user_id) user_bio <- user::Out RETURN user_bio #[mcp] QUERY getUsersByReferrer(referrer: String) => metadata <- N::WHERE(_::{referredBy}::EQ(referrer)) users <- metadata::In RETURN users #[mcp] QUERY searchUsersByBio(bio_vector: [F64], k: I64) => similar_bios <- SearchV(bio_vector, k) users <- similar_bios::In RETURN users // Metadata #[mcp] QUERY getUserMetadata (user_id: ID) => user <- N(user_id) metadata <- user::Out RETURN metadata #[mcp] QUERY getUserMetadataNotes (user_id: ID) => user <- N(user_id) metadata <- user::Out metadata_notes <- metadata::Out RETURN metadata_notes // Linkedin #[mcp] QUERY getUserLinkedinInfo (user_id: ID) => user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out RETURN linkedin_info #[mcp] QUERY getUserLinkedinContent (user_id: ID) => user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out RETURN linkedin_content #[mcp] QUERY getUserLinkedinWebsites (user_id: ID) => user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_websites <- linkedin_content::Out RETURN linkedin_websites #[mcp] QUERY getUserLinkedinExperiences (user_id: ID) => user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_experiences <- linkedin_content::Out RETURN linkedin_experiences #[mcp] QUERY getUserLinkedinCompanies (user_id: ID) => user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_companies <- linkedin_content::Out RETURN linkedin_companies #[mcp] QUERY getUserLinkedinEducations (user_id: ID) => user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out linkedin_educations <- linkedin_content::Out RETURN linkedin_educations #[mcp] QUERY getUserLinkedinCurrentCompany (user_id: ID) => user <- N(user_id) metadata <- user::Out linkedin_info <- metadata::Out linkedin_content <- linkedin_info::Out current_company <- linkedin_content::Out RETURN current_company #[mcp] QUERY findLinkedinCompany (name: String, industry: String, founded: I64) => linkedin_company <- N::WHERE( AND( _::{name}::EQ(name), _::{industry}::EQ(industry), _::{founded}::EQ(founded) ) ) RETURN linkedin_company // Warm Connect #[mcp] QUERY getUserWarmConnects (user_id: ID) => user <- N(user_id) metadata <- user::Out warm_connects <- metadata::Out RETURN warm_connects #[mcp] QUERY findWarmConnect (name: String, email: String) => warm_connect <- N::WHERE( AND( _::{name}::EQ(name), _::{email}::EQ(email) ) ) RETURN warm_connect // Update Queries // User QUERY updateUser (user_id: ID, phone: String, email: String, bio: String, age: I32, location: String, profilePic: String, color: String, elo: F64, sender: String) => user <- N(user_id)::UPDATE( {phone: phone, email: email, bio: bio, age: age, location: location, profilePic: profilePic, color: color, elo: elo, sender: sender} ) RETURN user QUERY updateUserName (name_id: ID, first: String, last: String) => name <- N(name_id)::UPDATE( {first: first, last: last} ) RETURN name // Metadata QUERY updateMetadata (metadata_id: ID, created_ts: Date, last_updated_ts: Date, archetype: Boolean, referredBy: String) => metadata <- N(metadata_id)::UPDATE( {created_ts: created_ts, last_updated_ts: last_updated_ts, archetype: archetype, referredBy: referredBy} ) RETURN metadata QUERY updateMetadataNotes (metadata_notes_id: ID, aiScore: I64, userScore: I64, text: String, flagged: Boolean) => metadata_notes <- N(metadata_notes_id)::UPDATE( {aiScore: aiScore, userScore: userScore, text: text, flagged: flagged} ) RETURN metadata_notes // Linkedin QUERY updateLinkedinInfo (linkedin_info_id: ID, url: String) => linkedin_info <- N(linkedin_info_id)::UPDATE( {url: url} ) RETURN linkedin_info QUERY updateLinkedinContent (linkedin_content_id: ID, name: String, email: String, linkedin_url: String, full_name: String, first_name: String, last_name: String, public_id: String, profile_picture: String, background_picture: String, current_position: String, summary: String, industry: String, region: String, country: String, country_code: String, connection_count: I64, follower_count: I64, languages: [String], skills: [String], certifications: [String], position_start_date: String, position_end_date: String, extracted_at: Date, data_source: String) => linkedin_content <- N(linkedin_content_id)::UPDATE( {name: name, email: email, linkedin_url: linkedin_url, full_name: full_name, first_name: first_name, last_name: last_name, public_id: public_id, profile_picture: profile_picture, background_picture: background_picture, current_position: current_position, summary: summary, industry: industry, region: region, country: country, country_code: country_code, connection_count: connection_count, follower_count: follower_count, languages: languages, skills: skills, certifications: certifications, position_start_date: position_start_date, position_end_date: position_end_date, extracted_at: extracted_at, data_source: data_source} ) RETURN linkedin_content QUERY updateLinkedinWebsite (website_id: ID, url: String, category: String) => linkedin_website <- N(website_id)::UPDATE( {url: url, category: category} ) RETURN linkedin_website QUERY updateLinkedinExperience (experience_id: ID, company: String, title: String, field: String, date_start: String, date_end: String, location: String, description: String) => linkedin_experience <- N(experience_id)::UPDATE( {company: company, title: title, field: field, date_start: date_start, date_end: date_end, location: location, description: description} ) RETURN linkedin_experience QUERY updateLinkedinCompany (company_id: ID, name: String, domain: String, industry: String, staff_count: I64, founded: I64, website: String, headquarters: String, description: String, specialties: [String]) => linkedin_company <- N(company_id)::UPDATE( {name: name, domain: domain, industry: industry, staff_count: staff_count, founded: founded, website: website, headquarters: headquarters, description: description, specialties: specialties} ) RETURN linkedin_company QUERY updateLinkedinEducation (education_id: ID, school: String, field: String, title: String, date_start: String, date_end: String, location: String, description: String) => linkedin_education <- N(education_id)::UPDATE( {school: school, field: field, title: title, date_start: date_start, date_end: date_end, location: location, description: description} ) RETURN linkedin_education QUERY updateCurrentCompany (linkedin_company_id: ID, name: String, domain: String, industry: String, staff_count: I64, founded: I64, website: String, headquarters: String, description: String, specialties: [String]) => linkedin_company <- N(linkedin_company_id)::UPDATE( {name: name, domain: domain, industry: industry, staff_count: staff_count, founded: founded, website: website, headquarters: headquarters, description: description, specialties: specialties} ) RETURN linkedin_company // Warm Connect QUERY updateWarmConnect (warm_connect_id: ID, name: String, email: String) => warm_connect <- N(warm_connect_id)::UPDATE( {name: name, email: email} ) RETURN warm_connect // Delete Queries QUERY deleteLinkedinEducation (education_id: ID) => DROP N(education_id) RETURN "success" QUERY deleteLinkedinCompany (company_id: ID) => DROP N(company_id) RETURN "success" QUERY deleteLinkedinExperience (experience_id: ID) => DROP N(experience_id) RETURN "success" QUERY deleteLinkedinWebsite (website_id: ID) => DROP N(website_id) RETURN "success" QUERY deleteLinkedinContent (linkedin_content_id: ID) => DROP N(linkedin_content_id)::Out DROP N(linkedin_content_id)::Out DROP N(linkedin_content_id)::OutE DROP N(linkedin_content_id)::Out DROP N(linkedin_content_id)::OutE DROP N(linkedin_content_id) RETURN "success" QUERY deleteLinkedinInfo (linkedin_info_id: ID) => DROP N(linkedin_info_id)::Out DROP N(linkedin_info_id) RETURN "success" QUERY deleteWarmConnect (warm_connect_id: ID) => DROP N(warm_connect_id) RETURN "success" QUERY deleteMetadataNotes (metadata_notes_id: ID) => DROP N(metadata_notes_id) RETURN "success" QUERY deleteMetadata (metadata_id: ID) => DROP N(metadata_id)::Out DROP N(metadata_id)::Out DROP N(metadata_id)::Out DROP N(metadata_id) RETURN "success" QUERY deleteEmbeddedBio (user_id: ID) => DROP N(user_id)::OutE RETURN "success" QUERY deleteName (name_id: ID) => DROP N(name_id) RETURN "success" QUERY deleteUser (user_id: ID) => DROP N(user_id)::Out DROP N(user_id)::Out DROP N(user_id)::OutE DROP N(user_id) RETURN "success"