Korjaa ticket_fetch ja sähköpostien duplikaattiongelma
- Korjaa implode()-bugi: $email['to'] on string, ei array - Lisää fetched_message_ids-taulu joka estää poistettujen tikettien uudelleenluonnin seuraavassa haussa - Viestit haetaan postilaatikosta vain kertaalleen Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
26
db.php
26
db.php
@@ -358,6 +358,16 @@ function initDatabase(): void {
|
||||
INDEX idx_company (company_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
|
||||
|
||||
"CREATE TABLE IF NOT EXISTS fetched_message_ids (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
company_id VARCHAR(50) NOT NULL,
|
||||
message_id VARCHAR(512) NOT NULL,
|
||||
fetched_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_company_msgid (company_id, message_id),
|
||||
FOREIGN KEY (company_id) REFERENCES companies(id) ON DELETE CASCADE,
|
||||
INDEX idx_company (company_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
|
||||
|
||||
"CREATE TABLE IF NOT EXISTS customer_priority_emails (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
company_id VARCHAR(50) NOT NULL,
|
||||
@@ -1640,6 +1650,22 @@ function dbDeleteTicketType(string $companyId, string $value): void {
|
||||
_dbExecute("DELETE FROM ticket_types WHERE company_id = ? AND value = ?", [$companyId, $value]);
|
||||
}
|
||||
|
||||
// ==================== HAETUT MESSAGE-ID:T (duplikaattien esto) ====================
|
||||
|
||||
function dbGetFetchedMessageIds(string $companyId): array {
|
||||
$rows = _dbFetchAll("SELECT message_id FROM fetched_message_ids WHERE company_id = ?", [$companyId]);
|
||||
$ids = [];
|
||||
foreach ($rows as $r) { $ids[$r['message_id']] = true; }
|
||||
return $ids;
|
||||
}
|
||||
|
||||
function dbMarkMessageIdFetched(string $companyId, string $messageId): void {
|
||||
if (empty($messageId)) return;
|
||||
try {
|
||||
_dbExecute("INSERT IGNORE INTO fetched_message_ids (company_id, message_id) VALUES (?, ?)", [$companyId, $messageId]);
|
||||
} catch (\Throwable $e) { /* duplicate, ok */ }
|
||||
}
|
||||
|
||||
// ==================== YRITYKSEN API-ASETUKSET ====================
|
||||
|
||||
function dbGetCompanyConfig(string $companyId): array {
|
||||
|
||||
Reference in New Issue
Block a user