Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 7x 2x 2x 3x 3x 1x 1x | /**
* @deprecated Marketplace-only legacy DAL — all pro/admin inquiry management
* now lives in the CRM module (leads.dal.ts). Only marketplace submission
* (create + findById + existsByPhone) still uses this file.
* Remove once marketplace inquiry flow migrates to CRM.
*/
import { eq, sql } from "drizzle-orm";
import type { DrizzleD1Database } from "drizzle-orm/d1";
import * as schema from "../db/schema";
import type { Inquiry, NewInquiry } from "../db/schema";
export class InquiriesDal {
constructor(private db: DrizzleD1Database<typeof schema>) {}
async findById(id: number): Promise<Inquiry | undefined> {
const result = await this.db
.select()
.from(schema.inquiries)
.where(eq(schema.inquiries.id, id))
.limit(1);
return result[0];
}
async existsByPhone(phone: string): Promise<boolean> {
const result = await this.db
.select({ count: sql<number>`count(*)` })
.from(schema.inquiries)
.where(eq(schema.inquiries.customerPhone, phone))
.limit(1);
return (result[0]?.count ?? 0) > 0;
}
async create(data: NewInquiry): Promise<Inquiry> {
const result = await this.db
.insert(schema.inquiries)
.values(data)
.returning();
return result[0];
}
}
|