<cfsetting showdebugoutput="false">
<cfinclude template='__Security-Block.cfm' />

<cfquery name="GetAllAgencies" datasource="#Application.DataSrc#">
    SELECT DISTINCT Agency_ID
    FROM   #Request.prefix_db_lookup#.Agency
    WHERE  Status = 'active'
    ORDER  BY Agency_ID
</cfquery>

<cfloop query="GetAllAgencies">

    <cfset agency_db = 'agency_' & GetAllAgencies.Agency_ID />

    <cfquery name="CreateAgencyDatabaseIfMissing" datasource="#Application.DataSrc#">
        CREATE DATABASE IF NOT EXISTS #agency_db#
        CHARACTER SET utf8mb4
        COLLATE utf8mb4_unicode_ci
    </cfquery>

    <cfquery name="DropWhipserJobsTable" datasource="#Application.DataSrc#">
        DROP TABLE IF EXISTS #agency_db#.whipser_jobs
    </cfquery>

    <cfquery name="CreateWhipserJobsTable" datasource="#Application.DataSrc#">
        CREATE TABLE #agency_db#.whipser_jobs (
            ID               BIGINT       NOT NULL AUTO_INCREMENT PRIMARY KEY,
            Status           TINYINT      NOT NULL DEFAULT 0,
            Patient_ID       INT          NOT NULL,
            Assmt_ID         INT          NOT NULL,
            whisper_files_id BIGINT       NULL,
            job_id           VARCHAR(100) NULL,
            request_id       VARCHAR(100) NULL,
            job_status       VARCHAR(100) NULL,
            raw_response     LONGTEXT     NULL,
            status_response  LONGTEXT     NULL,
            Last_Checked     DATETIME     NULL,
            Created          DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
            CreatedBy        VARCHAR(50)  NOT NULL DEFAULT '',

            INDEX idx_whipser_patient    (Patient_ID),
            INDEX idx_whipser_assmt      (Assmt_ID),
            INDEX idx_whipser_file       (whisper_files_id),
            INDEX idx_whipser_job        (job_id),
            INDEX idx_whipser_request    (request_id),
            INDEX idx_whipser_job_status (job_status),
            INDEX idx_whipser_status     (Status),
            INDEX idx_whipser_created    (Created)
        )
    </cfquery>

</cfloop>
