Path: schema.sql (Cloudflare D1 Table Initialization)
-- Cloudflare D1 Database Schema for RK Tech
-- Run this in Cloudflare D1 Console or via Wrangler CLI
CREATE TABLE IF NOT EXISTS users (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
password TEXT NOT NULL,
role TEXT DEFAULT 'CONTRACTOR',
hourly_rate REAL DEFAULT 0.0,
status TEXT DEFAULT 'Active'
);
CREATE TABLE IF NOT EXISTS timecards (
id TEXT PRIMARY KEY,
user_email TEXT NOT NULL,
user_name TEXT NOT NULL,
date TEXT NOT NULL,
hours REAL NOT NULL,
rate REAL DEFAULT 0.0,
category TEXT,
notes TEXT,
contract_id TEXT,
status TEXT DEFAULT 'Pending'
);
CREATE TABLE IF NOT EXISTS contracts (
id TEXT PRIMARY KEY,
client_name TEXT NOT NULL,
title TEXT NOT NULL,
total_hours REAL NOT NULL,
hourly_rate REAL DEFAULT 0.0,
low_threshold REAL DEFAULT 10.0,
status TEXT DEFAULT 'Active'
);
-- Seed Default Admin & Contractor Accounts for rkpatech.com
INSERT OR IGNORE INTO users (id, name, email, password, role, hourly_rate, status) VALUES
('u_admin', 'RK Tech Manager', 'admin@rkpatech.com', 'rk_1041928091', 'ADMIN', 0.0, 'Active'),
('c1', 'Alex Rivers', 'alex@rkpatech.com', 'rk_128823194', 'CONTRACTOR', 50.0, 'Active'),
('c2', 'Sarah Jenkins', 'sarah@rkpatech.com', 'rk_128823194', 'CONTRACTOR', 65.0, 'Active');
-- Seed Sample Client Retainer Blocks
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard component for Vanguard patient intake portal', 'blk2', 'Approved'),
('e4', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-02', 5.0, 65.0, 'API Integration', 'Integrated OAuth2 authentication layer and endpoint validation', 'blk2', 'Pending');
-- Seed Sample Block Contracts
INSERT OR IGNORE INTO contracts (id, client_name, title, total_hours, hourly_rate, low_threshold, status) VALUES
('blk1', 'Apex Global Logistics', 'Q4 100-Hour Managed Infrastructure Retainer', 100.0, 125.0, 15.0, 'Active'),
('blk2', 'Vanguard Health Tech', 'Q4 50-Hour Custom Software Development Block', 50.0, 150.0, 8.0, 'Active'),
('blk3', 'Summit Capital Partners', 'Adhoc Systems Support Retainer', 25.0, 110.0, 5.0, 'Active');
-- Seed Sample Timecards
INSERT OR IGNORE INTO timecards (id, user_email, user_name, date, hours, rate, category, notes, contract_id, status) VALUES
('e1', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-01', 8.0, 50.0, 'Cloud Infrastructure', 'Configured AWS VPC security groups & VPN access rules for Apex Global', 'blk1', 'Approved'),
('e2', 'alex@rkpatech.com', 'Alex Rivers', '2026-10-02', 4.0, 50.0, 'Server Maintenance', 'Optimized PostgreSQL database indexes and automated nightly backup scripts', 'blk1', 'Approved'),
('e3', 'sarah@rkpatech.com', 'Sarah Jenkins', '2026-10-01', 7.5, 65.0, 'Frontend Development', 'Built React dashboard
};
contractors.push(targetContractor);
}
saveData();
if (isD1Connected && targetContractor) {
try {
await fetch('/api?action=saveUser', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
id: targetContractor.id,
name: targetContractor.name,
email: targetContractor.email,
password: targetContractor.passwordHash,
role: 'CONTRACTOR',
hourly_rate: targetContractor.defaultRate,
status: targetContractor.status
})
});
} catch(err) {}
}
resetContractorForm();
renderAllViews();
showNotification('Subcontractor profile saved!');
}
function editContractor(id) {
const item = contractors.find(c => c.id === id);
if (!item) return;
document.getElementById('manage-contractor-id').value = item.id;
document.getElementById('manage-contractor-name').value = item.name;
document.getElementById('manage-contractor-email').value = item.email || '';
document.getElementById('manage-contractor-password').value = '';
document.getElementById('manage-contractor-password').placeholder = 'Leave blank to keep existing';
document.getElementById('manage-contractor-password').required = false;
document.getElementById('manage-contractor-rate').value = item.defaultRate;
document.getElementById('manage-contractor-status').value = item.status;
document.getElementById('contractor-form-title').innerText = 'Edit Subcontractor';
document.getElementById('manage-contractor-btn-text').innerText = 'Update Profile';
document.getElementById('cancel-contractor-edit-btn').classList.remove('hidden');
}
function resetContractorForm() {
document.getElementById('contractor-management-form').reset();
document.getElementById('manage-contractor-id').value = '';
document.getElementById('manage-contractor-password').required = true;
document.getElementById('manage-contractor-password').placeholder = 'pass123';
document.getElementById('contractor-form-title').innerText = 'Add Subcontractor';
document.getElementById('manage-contractor-btn-text').innerText = 'Save Contractor';
document.getElementById('cancel-contractor-edit-btn').classList.add('hidden');
}
function renderContractorManagementList() {
const tbody = document.getElementById('contractors-list-table-body');
document.getElementById('active-contractors-count').textContent = `${contractors.length} active`;
if (contractors.length === 0) {
tbody.innerHTML = `| No subcontractors configured. |
`;
return;
}
tbody.innerHTML = contractors.map(c => `
| ${escapeHtml(c.email || 'N/A')} |
${c.status}
|
|
`).join('');
}
async function deleteContractor(id) {
const contractor = contractors.find(c => c.id === id);
if (!contractor) return;
if (confirm(`Are you sure you want to delete contractor "${contractor.name}"?\n\nThis will remove their user login account.`)) {
contractors = contractors.filter(c => c.id !== id);
saveData();
if (isD1Connected) {
try {
await fetch('/api?action=deleteUser', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id })
});
} catch(e) {}
}
renderAllViews();
showNotification(`Contractor "${contractor.name}" deleted.`);
}
}
function toggleChangePasswordModal(show) {
document.getElementById('change-password-modal').classList.toggle('hidden', !show);
}
function handleChangePasswordSubmit(e) {
e.preventDefault();
const newPass = document.getElementById('new-password-input').value;
const newHash = hashPassword(newPass);
if (currentUser.role === 'ADMIN') {
ADMIN_USER.passwordHash = newHash;
showNotification('Admin password updated!');
} else {
const idx = contractors.findIndex(c => c.id === currentUser.contractor.id);
if (idx !== -1) {
contractors[idx].passwordHash = newHash;
currentUser.contractor.passwordHash = newHash;
saveData();
localStorage.setItem(STORAGE_SESSION_KEY, JSON.stringify(currentUser));
showNotification('Password updated successfully!');
}
}
document.getElementById('new-password-input').value = '';
toggleChangePasswordModal(false);
}
function renderApprovalTable() {
const monthFilter = document.getElementById('approval-month-filter').value;
const contractorFilter = document.getElementById('approval-contractor-filter').value;
const statusFilter = document.getElementById('approval-status-filter').value;
let filtered = entries.filter(e => {
const mMatch = !monthFilter || e.date.startsWith(monthFilter);
const cMatch = contractorFilter === 'ALL' || e.contractorId === contractorFilter;
const sMatch = statusFilter === 'ALL' || e.status === statusFilter;
return mMatch && cMatch && sMatch;
}).sort((a,b) => new Date(b.date) - new Date(a.date));
const tbody = document.getElementById('approvals-table-body');
if (filtered.length === 0) {
tbody.innerHTML = `| No timecards match current filters. |
`;
return;
}
tbody.innerHTML = filtered.map(e => {
const totalPay = e.hours * (e.rate || 0);
const blockObj = blockContracts.find(b => b.id === e.blockContractId);
return `
| ${e.date} |
${blockObj ? escapeHtml(blockObj.clientName) : 'Unlinked'}
|
${escapeHtml(e.description)} |
${e.hours.toFixed(2)} hrs |
${e.status}
|
|
`;
}).join('');
}
async function updateEntryStatus(id, newStatus) {
const item = entries.find(e => e.id === id);
if (item) {
item.status = newStatus;
saveData();
if (isD1Connected) {
try {
const contractorObj = contractors.find(c => c.id === item.contractorId);
await fetch('/api?action=saveTimecard', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
id: item.id,
userEmail: contractorObj ? contractorObj.email : 'admin@rkpatech.com',
userName: item.contractorName,
date: item.date,
hours: item.hours,
rate: item.rate,
category: item.project,
notes: item.description,
contractId: item.blockContractId,
status: newStatus
})
});
} catch(e) {}
}
renderAllViews();
}
}
function bulkApprovePending() {
entries.forEach(e => {
if (e.status === 'Pending') e.status = 'Approved';
});
saveData();
renderAllViews();
showNotification('Pending shifts approved!');
}
function updatePendingAndAlertBadges() {
const pendingCount = entries.filter(e => e.status === 'Pending').length;
document.getElementById('pending-count-badge').textContent = pendingCount;
const lowBalanceCount = blockContracts.filter(b => {
const stats = calculateBlockContractStats(b.id);
return b.status === 'Active' && stats.isLowBalance;
}).length;
const alertBadge = document.getElementById('low-balance-alert-badge');
if (lowBalanceCount > 0) {
alertBadge.classList.remove('hidden');
} else {
alertBadge.classList.add('hidden');
}
}
function renderPayoutSummary() {
const payoutMonth = document.getElementById('payout-month-select').value;
const filtered = entries.filter(e => (!payoutMonth || e.date.startsWith(payoutMonth)) && (e.status === 'Approved' || e.status === 'Paid'));
const aggregated = {};
filtered.forEach(e => {
if (!aggregated[e.contractorName]) {
aggregated[e.contractorName] = { contractorName: e.contractorName, shiftsCount: 0, totalHours: 0, totalPayout: 0, rate: e.rate };
}
aggregated[e.contractorName].shiftsCount += 1;
aggregated[e.contractorName].totalHours += e.hours;
aggregated[e.contractorName].totalPayout += (e.hours * (e.rate || 0));
});
const tbody = document.getElementById('payout-table-body');
const list = Object.values(aggregated);
let totalHours = 0;
let totalPayout = 0;
if (list.length === 0) {
tbody.innerHTML = `| No approved work recorded for ${payoutMonth}. |
`;
} else {
tbody.innerHTML = list.map(item => {
totalHours += item.totalHours;
totalPayout += item.totalPayout;
return `
| ${payoutMonth} |
${item.shiftsCount} shift(s) |
$${item.rate.toFixed(2)}/hr |
$${item.totalPayout.toFixed(2)} |
`;
}).join('');
}
document.getElementById('payout-grand-hours').textContent = `${totalHours.toFixed(2)} hrs`;
document.getElementById('payout-grand-total').textContent = `$${totalPayout.toFixed(2)}`;
}
function exportToCSV() {
const payoutMonth = document.getElementById('payout-month-select').value;
const filtered = entries.filter(e => !payoutMonth || e.date.startsWith(payoutMonth));
if (filtered.length === 0) {
alert('No data available to export.');
return;
}
const headers = ['Subcontractor', 'Date', 'Project', 'Hours', 'Rate', 'Total Pay', 'Status', 'Description'];
const rows = filtered.map(e => [
`"${e.contractorName}"`,
`"${e.date}"`,
`"${e.project}"`,
e.hours.toFixed(2),
(e.rate || 0).toFixed(2),
(e.hours * (e.rate || 0)).toFixed(2),
`"${e.status}"`,
`"${e.description.replace(/"/g, '""')}"`
]);
const csvContent = 'data:text/csv;charset=utf-8,' + [headers.join(','), ...rows.map(r => r.join(','))].join('\n');
const encodedUri = encodeURI(csvContent);
const link = document.createElement('a');
link.setAttribute('href', encodedUri);
link.setAttribute('download', `RKTech_Payouts_${payoutMonth || 'All'}.csv`);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
// Dynamic Project Folder ZIP Exporter
function downloadProjectBundleZip() {
const zip = new JSZip();
// Root index.html (Clean app without studio bar for production)
const htmlClean = document.documentElement.outerHTML.replace(/