-- name: UpsertPriceInquiry :one INSERT INTO price_inquiries ( id, user_id, phone, province, city, district, project_name, status, last_submitted_at, created_at, updated_at ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, STRFTIME('%Y-%m-%d %H:%M:%f', 'now', '+8 hours'), STRFTIME('%Y-%m-%d %H:%M:%f', 'now', '+8 hours'), STRFTIME('%Y-%m-%d %H:%M:%f', 'now', '+8 hours') ) ON CONFLICT(phone) DO UPDATE SET last_submitted_at = STRFTIME('%Y-%m-%d %H:%M:%f', 'now', '+8 hours'), updated_at = STRFTIME('%Y-%m-%d %H:%M:%f', 'now', '+8 hours') RETURNING id, user_id, phone, province, city, district, project_name, status, remark, last_submitted_at, created_at, updated_at; -- name: ListPriceInquiries :many SELECT id, user_id, phone, province, city, district, project_name, status, remark, last_submitted_at, created_at, updated_at FROM price_inquiries WHERE ( sqlc.arg(area) = '' OR province LIKE '%' || sqlc.arg(area) || '%' OR city LIKE '%' || sqlc.arg(area) || '%' OR district LIKE '%' || sqlc.arg(area) || '%' ) AND (sqlc.arg(phone) = '' OR phone LIKE '%' || sqlc.arg(phone) || '%') AND (sqlc.arg(status) = '' OR status = sqlc.arg(status)) AND ( (sqlc.arg(time_from) = '' AND sqlc.arg(time_to) = '') OR ( (sqlc.arg(time_from) = '' OR created_at >= sqlc.arg(time_from) || ' 00:00:00') AND (sqlc.arg(time_to) = '' OR created_at <= sqlc.arg(time_to) || ' 23:59:59') ) OR ( (sqlc.arg(time_from) = '' OR updated_at >= sqlc.arg(time_from) || ' 00:00:00') AND (sqlc.arg(time_to) = '' OR updated_at <= sqlc.arg(time_to) || ' 23:59:59') ) OR ( (sqlc.arg(time_from) = '' OR last_submitted_at >= sqlc.arg(time_from) || ' 00:00:00') AND (sqlc.arg(time_to) = '' OR last_submitted_at <= sqlc.arg(time_to) || ' 23:59:59') ) ) ORDER BY last_submitted_at DESC, updated_at DESC, created_at DESC LIMIT sqlc.arg(limit) OFFSET sqlc.arg(offset); -- name: CountPriceInquiries :one SELECT COUNT(*) FROM price_inquiries WHERE ( sqlc.arg(area) = '' OR province LIKE '%' || sqlc.arg(area) || '%' OR city LIKE '%' || sqlc.arg(area) || '%' OR district LIKE '%' || sqlc.arg(area) || '%' ) AND (sqlc.arg(phone) = '' OR phone LIKE '%' || sqlc.arg(phone) || '%') AND (sqlc.arg(status) = '' OR status = sqlc.arg(status)) AND ( (sqlc.arg(time_from) = '' AND sqlc.arg(time_to) = '') OR ( (sqlc.arg(time_from) = '' OR created_at >= sqlc.arg(time_from) || ' 00:00:00') AND (sqlc.arg(time_to) = '' OR created_at <= sqlc.arg(time_to) || ' 23:59:59') ) OR ( (sqlc.arg(time_from) = '' OR updated_at >= sqlc.arg(time_from) || ' 00:00:00') AND (sqlc.arg(time_to) = '' OR updated_at <= sqlc.arg(time_to) || ' 23:59:59') ) OR ( (sqlc.arg(time_from) = '' OR last_submitted_at >= sqlc.arg(time_from) || ' 00:00:00') AND (sqlc.arg(time_to) = '' OR last_submitted_at <= sqlc.arg(time_to) || ' 23:59:59') ) ); -- name: UpdatePriceInquiry :one UPDATE price_inquiries SET status = ?, remark = ?, updated_at = STRFTIME('%Y-%m-%d %H:%M:%f', 'now', '+8 hours') WHERE id = ? RETURNING id, user_id, phone, province, city, district, project_name, status, remark, last_submitted_at, created_at, updated_at;