Implementa o MVP do Adaptador de Planilhas no Elo Pro.
O módulo usa a identidade Supabase, isola cada workspace e registra storage, TTL, runner e biblioteca XLSX como decisões ainda abertas. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
commit
6e23f1533b
144 files changed
+19060
No files matched your search
@@ -0,0 +1,43 @@
|
||||
import type { Db } from "@/infra/db/types";
|
||||
|
||||
export const FIXTURES = {
|
||||
alpha: "11111111-1111-4111-8111-111111111111",
|
||||
beta: "22222222-2222-4222-8222-222222222222",
|
||||
ana: "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
|
||||
bruno: "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb",
|
||||
carla: "cccccccc-cccc-4ccc-8ccc-cccccccccccc",
|
||||
diego: "dddddddd-dddd-4ddd-8ddd-dddddddddddd",
|
||||
eva: "eeeeeeee-eeee-4eee-8eee-eeeeeeeeeeee",
|
||||
};
|
||||
|
||||
export const DEV_IDENTITIES = [
|
||||
{ userId: FIXTURES.ana, workspaceId: FIXTURES.alpha, label: "Ana · owner · Alpha (módulo ligado)" },
|
||||
{ userId: FIXTURES.bruno, workspaceId: FIXTURES.alpha, label: "Bruno · agent · Alpha" },
|
||||
{ userId: FIXTURES.carla, workspaceId: FIXTURES.alpha, label: "Carla · gestor · Alpha" },
|
||||
{ userId: FIXTURES.diego, workspaceId: FIXTURES.beta, label: "Diego · admin · Beta (módulo desligado)" },
|
||||
{ userId: FIXTURES.eva, workspaceId: FIXTURES.beta, label: "Eva · agent · Beta (superadmin de plataforma, sem atalho)" },
|
||||
];
|
||||
|
||||
export async function ensureDevFixtures(db: Db): Promise<void> {
|
||||
const existing = await db.withService((query) => query.query(`select id from public.workspaces limit 1`));
|
||||
if (existing.length > 0) return;
|
||||
const { alpha, beta, ana, bruno, carla, diego, eva } = FIXTURES;
|
||||
await db.withService(async (query) => {
|
||||
await query.query(
|
||||
`insert into public.profiles (id, display_name, is_superadmin) values
|
||||
($1,'Ana Owner', false), ($2,'Bruno Agent', false), ($3,'Carla Gestor', false), ($4,'Diego Admin', false), ($5,'Eva Agent', true)`,
|
||||
[ana, bruno, carla, diego, eva],
|
||||
);
|
||||
await query.query(`insert into public.workspaces (id, name) values ($1,'Alpha'), ($2,'Beta')`, [alpha, beta]);
|
||||
await query.query(
|
||||
`insert into public.workspace_members (workspace_id, user_id, role) values
|
||||
($1,$2,'owner'), ($1,$3,'agent'), ($1,$4,'gestor'), ($5,$6,'admin'), ($5,$7,'agent')`,
|
||||
[alpha, ana, bruno, carla, beta, diego, eva],
|
||||
);
|
||||
await query.query(
|
||||
`insert into public.workspace_module_flags (workspace_id, module_key, enabled) values
|
||||
($1,'spreadsheet_adapter', true), ($2,'spreadsheet_adapter', false)`,
|
||||
[alpha, beta],
|
||||
);
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user