This commit is contained in:
seb
2026-10-31 21:02:50 +01:00
parent f612c87b6e
commit 76ea6642f4
18 changed files with 666 additions and 0 deletions

View File

@@ -0,0 +1,115 @@
export const PRINTERJOB_COLUMNS = `
pj.id,
pj.agentprinter_id AS agentprinterId,
pj.type,
pj.state,
pj.data,
pj.created_at AS createdAt,
pj.completed_at AS completedAt
`;
export const CREATE = `
INSERT INTO printerjob (agentprinter_id, type, state, data, created_at)
OUTPUT
INSERTED.id,
INSERTED.agentprinter_id AS agentprinterId,
INSERTED.type,
INSERTED.state,
INSERTED.data,
INSERTED.created_at AS createdAt,
INSERTED.completed_at AS completedAt
VALUES (@agentprinterId, @type, @state, @data, SYSUTCDATETIME())
`;
export const GET_BY_ID_FOR_COMPANY = `
SELECT
${PRINTERJOB_COLUMNS},
ap.printeragent_id AS printeragentId
FROM printerjob pj
JOIN agentprinter ap ON ap.id = pj.agentprinter_id
JOIN printeragent pa ON pa.id = ap.printeragent_id
WHERE pj.id = @id AND pa.company_id = @companyId
`;
export const GET_BY_ID_FOR_AGENT = `
SELECT
${PRINTERJOB_COLUMNS},
ap.printeragent_id AS printeragentId
FROM printerjob pj
JOIN agentprinter ap ON ap.id = pj.agentprinter_id
WHERE pj.id = @id AND ap.printeragent_id = @agentId
`;
export const LIST_BY_COMPANY = `
SELECT
${PRINTERJOB_COLUMNS},
ap.printeragent_id AS printeragentId
FROM printerjob pj
JOIN agentprinter ap ON ap.id = pj.agentprinter_id
JOIN printeragent pa ON pa.id = ap.printeragent_id
WHERE pa.company_id = @companyId
ORDER BY pj.id DESC
`;
export const LIST_BY_COMPANY_AND_AGENTPRINTER = `
SELECT
${PRINTERJOB_COLUMNS},
ap.printeragent_id AS printeragentId
FROM printerjob pj
JOIN agentprinter ap ON ap.id = pj.agentprinter_id
JOIN printeragent pa ON pa.id = ap.printeragent_id
WHERE pa.company_id = @companyId AND pj.agentprinter_id = @agentprinterId
ORDER BY pj.id DESC
`;
export const LIST_BY_AGENT = `
SELECT
${PRINTERJOB_COLUMNS},
ap.printeragent_id AS printeragentId
FROM printerjob pj
JOIN agentprinter ap ON ap.id = pj.agentprinter_id
WHERE ap.printeragent_id = @agentId
ORDER BY pj.id ASC
`;
export const LIST_BY_AGENT_AND_STATE = `
SELECT
${PRINTERJOB_COLUMNS},
ap.printeragent_id AS printeragentId
FROM printerjob pj
JOIN agentprinter ap ON ap.id = pj.agentprinter_id
WHERE ap.printeragent_id = @agentId AND pj.state = @state
ORDER BY pj.id ASC
`;
export const UPDATE_STATE_FOR_AGENT = `
UPDATE printerjob
SET
state = @state,
completed_at = CASE WHEN @state IN ('completed', 'cancelled') THEN SYSUTCDATETIME() ELSE completed_at END
WHERE id = @id AND agentprinter_id IN (
SELECT ap.id FROM agentprinter ap WHERE ap.printeragent_id = @agentId
)
`;
export const UPDATE_STATE_FOR_COMPANY = `
UPDATE printerjob
SET
state = @state,
completed_at = CASE WHEN @state IN ('completed', 'cancelled') THEN SYSUTCDATETIME() ELSE completed_at END
WHERE id = @id AND agentprinter_id IN (
SELECT ap.id FROM agentprinter ap
JOIN printeragent pa ON pa.id = ap.printeragent_id
WHERE pa.company_id = @companyId
)
`;
export const DELETE_BY_COMPANY_AND_ID = `
DELETE FROM printerjob
WHERE id = @id AND agentprinter_id IN (
SELECT ap.id FROM agentprinter ap
JOIN printeragent pa ON pa.id = ap.printeragent_id
WHERE pa.company_id = @companyId
)
`;