SELECT
c.ClientGuid,
c.IdNumber,
c.Cellphone,
c.FirstName,
c.LastName,
c.Package
FROM data_sales_client c
WHERE c.Package IN ('{package}', '{archetype}')
AND ({where_clause})
ORDER BY c.CreatedAt DESC
LIMIT 1
CREATE TABLE IF NOT EXISTS `{cache_table}` (
`CacheGuid` char(36) NOT NULL,
`Package` varchar(100) NOT NULL,
`ApiName` varchar(100) NOT NULL,
`CacheKey` varchar(255) NOT NULL,
`HttpStatus` int NOT NULL DEFAULT 0,
`PayloadJson` longtext DEFAULT NULL,
`SourceUrl` varchar(1024) DEFAULT NULL,
`ErrorMessage` varchar(255) DEFAULT NULL,
`FetchedAt` datetime NOT NULL DEFAULT current_timestamp(),
`ExpiresAt` datetime NOT NULL DEFAULT current_timestamp(),
`UpdatedAt` datetime DEFAULT NULL,
PRIMARY KEY (`CacheGuid`),
UNIQUE KEY `uq_sales_janee_api_cache` (`Package`, `ApiName`, `CacheKey`),
KEY `idx_sales_janee_api_cache_expiry` (`Package`, `ApiName`, `ExpiresAt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
SELECT
CacheGuid,
HttpStatus,
PayloadJson,
SourceUrl,
ErrorMessage,
FetchedAt,
ExpiresAt,
CASE WHEN ExpiresAt > NOW() THEN 'Y' ELSE 'N' END AS IsFresh
FROM {cache_table}
WHERE Package = '{package}'
AND ApiName = '{api_name}'
AND CacheKey = '{cache_key}'
LIMIT 1
INSERT INTO {cache_table}
(
CacheGuid, Package, ApiName, CacheKey, HttpStatus,
PayloadJson, SourceUrl, ErrorMessage, FetchedAt, ExpiresAt, UpdatedAt
)
VALUES
(
'{cache_guid}', '{package}', '{api_name}', '{cache_key}', {http_status},
'{payload_json}', '{source_url}', '{error_message}',
NOW(), DATE_ADD(NOW(), INTERVAL {ttl_seconds} SECOND), NOW()
)
ON DUPLICATE KEY UPDATE
HttpStatus = VALUES(HttpStatus),
PayloadJson = VALUES(PayloadJson),
SourceUrl = VALUES(SourceUrl),
ErrorMessage = VALUES(ErrorMessage),
FetchedAt = VALUES(FetchedAt),
ExpiresAt = VALUES(ExpiresAt),
UpdatedAt = VALUES(UpdatedAt)