-- Local testing data for the most recently active organization. -- All seeded accounts use the password: TestAccount123! -- Safe to rerun: stable IDs and upserts prevent duplicate seed records. INSERT INTO `user` ( `id`, `name`, `email`, `email_verified`, `image`, `created_at`, `updated_at`, `username`, `display_username`, `two_factor_enabled`, `first_name`, `last_name`, `job_title`, `phone` ) VALUES ('seed-user-priya', 'Priya Sharma', 'priya.sharma@attendance.test', 1, NULL, CAST(unixepoch('subsecond') * 1000 AS integer) - 7776000000, CAST(unixepoch('subsecond') * 1000 AS integer), 'priya.sharma.seed', 'priya.sharma', 0, 'Priya', 'Sharma', 'Operations manager', '+91 98765 41001'), ('seed-user-arjun', 'Arjun Mehta', 'arjun.mehta@attendance.test', 1, NULL, CAST(unixepoch('subsecond') * 1000 AS integer) - 6912000000, CAST(unixepoch('subsecond') * 1000 AS integer), 'arjun.mehta.seed', 'arjun.mehta', 0, 'Arjun', 'Mehta', 'Frontend engineer', '+91 98765 41002'), ('seed-user-neha', 'Neha Kapoor', 'neha.kapoor@attendance.test', 1, NULL, CAST(unixepoch('subsecond') * 1000 AS integer) - 6048000000, CAST(unixepoch('subsecond') * 1000 AS integer), 'neha.kapoor.seed', 'neha.kapoor', 0, 'Neha', 'Kapoor', 'Backend engineer', '+91 98765 41003'), ('seed-user-rohan', 'Rohan Verma', 'rohan.verma@attendance.test', 1, NULL, CAST(unixepoch('subsecond') * 1000 AS integer) - 5184000000, CAST(unixepoch('subsecond') * 1000 AS integer), 'rohan.verma.seed', 'rohan.verma', 0, 'Rohan', 'Verma', 'Field technician', '+91 98765 41004'), ('seed-user-isha', 'Isha Patel', 'isha.patel@attendance.test', 1, NULL, CAST(unixepoch('subsecond') * 1000 AS integer) - 4320000000, CAST(unixepoch('subsecond') * 1000 AS integer), 'isha.patel.seed', 'isha.patel', 0, 'Isha', 'Patel', 'People operations specialist', '+91 98765 41005'), ('seed-user-kabir', 'Kabir Singh', 'kabir.singh@attendance.test', 1, NULL, CAST(unixepoch('subsecond') * 1000 AS integer) - 3456000000, CAST(unixepoch('subsecond') * 1000 AS integer), 'kabir.singh.seed', 'kabir.singh', 0, 'Kabir', 'Singh', 'Support lead', '+91 98765 41006'), ('seed-user-meera', 'Meera Nair', 'meera.nair@attendance.test', 1, NULL, CAST(unixepoch('subsecond') * 1000 AS integer) - 2592000000, CAST(unixepoch('subsecond') * 1000 AS integer), 'meera.nair.seed', 'meera.nair', 0, 'Meera', 'Nair', 'Product designer', '+91 98765 41007'), ('seed-user-vikram', 'Vikram Rao', 'vikram.rao@attendance.test', 1, NULL, CAST(unixepoch('subsecond') * 1000 AS integer) - 1728000000, CAST(unixepoch('subsecond') * 1000 AS integer), 'vikram.rao.seed', 'vikram.rao', 0, 'Vikram', 'Rao', 'QA engineer', '+91 98765 41008') ON CONFLICT(`id`) DO UPDATE SET `name` = excluded.`name`, `email` = excluded.`email`, `email_verified` = excluded.`email_verified`, `username` = excluded.`username`, `display_username` = excluded.`display_username`, `first_name` = excluded.`first_name`, `last_name` = excluded.`last_name`, `job_title` = excluded.`job_title`, `phone` = excluded.`phone`, `updated_at` = excluded.`updated_at`; INSERT INTO `account` ( `id`, `account_id`, `provider_id`, `user_id`, `password`, `created_at`, `updated_at` ) VALUES ('seed-account-priya', 'seed-user-priya', 'credential', 'seed-user-priya', '0357ceae4118d3288653dbcc7155261d:3aeac712b52a1bfe63b2f485cf93b139bfdc8aa5aa51c804ebc22981648c249dda55375b61b9e71214e5b86d138fd1e94ce29c9ac84cec403b093b0eb233757a', CAST(unixepoch('subsecond') * 1000 AS integer) - 7776000000, CAST(unixepoch('subsecond') * 1000 AS integer)), ('seed-account-arjun', 'seed-user-arjun', 'credential', 'seed-user-arjun', '0357ceae4118d3288653dbcc7155261d:3aeac712b52a1bfe63b2f485cf93b139bfdc8aa5aa51c804ebc22981648c249dda55375b61b9e71214e5b86d138fd1e94ce29c9ac84cec403b093b0eb233757a', CAST(unixepoch('subsecond') * 1000 AS integer) - 6912000000, CAST(unixepoch('subsecond') * 1000 AS integer)), ('seed-account-neha', 'seed-user-neha', 'credential', 'seed-user-neha', '0357ceae4118d3288653dbcc7155261d:3aeac712b52a1bfe63b2f485cf93b139bfdc8aa5aa51c804ebc22981648c249dda55375b61b9e71214e5b86d138fd1e94ce29c9ac84cec403b093b0eb233757a', CAST(unixepoch('subsecond') * 1000 AS integer) - 6048000000, CAST(unixepoch('subsecond') * 1000 AS integer)), ('seed-account-rohan', 'seed-user-rohan', 'credential', 'seed-user-rohan', '0357ceae4118d3288653dbcc7155261d:3aeac712b52a1bfe63b2f485cf93b139bfdc8aa5aa51c804ebc22981648c249dda55375b61b9e71214e5b86d138fd1e94ce29c9ac84cec403b093b0eb233757a', CAST(unixepoch('subsecond') * 1000 AS integer) - 5184000000, CAST(unixepoch('subsecond') * 1000 AS integer)), ('seed-account-isha', 'seed-user-isha', 'credential', 'seed-user-isha', '0357ceae4118d3288653dbcc7155261d:3aeac712b52a1bfe63b2f485cf93b139bfdc8aa5aa51c804ebc22981648c249dda55375b61b9e71214e5b86d138fd1e94ce29c9ac84cec403b093b0eb233757a', CAST(unixepoch('subsecond') * 1000 AS integer) - 4320000000, CAST(unixepoch('subsecond') * 1000 AS integer)), ('seed-account-kabir', 'seed-user-kabir', 'credential', 'seed-user-kabir', '0357ceae4118d3288653dbcc7155261d:3aeac712b52a1bfe63b2f485cf93b139bfdc8aa5aa51c804ebc22981648c249dda55375b61b9e71214e5b86d138fd1e94ce29c9ac84cec403b093b0eb233757a', CAST(unixepoch('subsecond') * 1000 AS integer) - 3456000000, CAST(unixepoch('subsecond') * 1000 AS integer)), ('seed-account-meera', 'seed-user-meera', 'credential', 'seed-user-meera', '0357ceae4118d3288653dbcc7155261d:3aeac712b52a1bfe63b2f485cf93b139bfdc8aa5aa51c804ebc22981648c249dda55375b61b9e71214e5b86d138fd1e94ce29c9ac84cec403b093b0eb233757a', CAST(unixepoch('subsecond') * 1000 AS integer) - 2592000000, CAST(unixepoch('subsecond') * 1000 AS integer)), ('seed-account-vikram', 'seed-user-vikram', 'credential', 'seed-user-vikram', '0357ceae4118d3288653dbcc7155261d:3aeac712b52a1bfe63b2f485cf93b139bfdc8aa5aa51c804ebc22981648c249dda55375b61b9e71214e5b86d138fd1e94ce29c9ac84cec403b093b0eb233757a', CAST(unixepoch('subsecond') * 1000 AS integer) - 1728000000, CAST(unixepoch('subsecond') * 1000 AS integer)) ON CONFLICT(`id`) DO UPDATE SET `password` = excluded.`password`, `updated_at` = excluded.`updated_at`; WITH `target_organization` AS ( SELECT COALESCE( (SELECT `active_organization_id` FROM `session` WHERE `active_organization_id` IS NOT NULL ORDER BY `updated_at` DESC LIMIT 1), (SELECT `id` FROM `organization` ORDER BY `created_at` LIMIT 1) ) AS `id` ), `seed_members` (`member_id`, `user_id`, `role`, `created_at`) AS ( VALUES ('seed-member-priya', 'seed-user-priya', 'admin', CAST(unixepoch('subsecond') * 1000 AS integer) - 7776000000), ('seed-member-arjun', 'seed-user-arjun', 'member', CAST(unixepoch('subsecond') * 1000 AS integer) - 6912000000), ('seed-member-neha', 'seed-user-neha', 'member', CAST(unixepoch('subsecond') * 1000 AS integer) - 6048000000), ('seed-member-rohan', 'seed-user-rohan', 'member', CAST(unixepoch('subsecond') * 1000 AS integer) - 5184000000), ('seed-member-isha', 'seed-user-isha', 'member', CAST(unixepoch('subsecond') * 1000 AS integer) - 4320000000), ('seed-member-kabir', 'seed-user-kabir', 'member', CAST(unixepoch('subsecond') * 1000 AS integer) - 3456000000), ('seed-member-meera', 'seed-user-meera', 'member', CAST(unixepoch('subsecond') * 1000 AS integer) - 2592000000), ('seed-member-vikram', 'seed-user-vikram', 'member', CAST(unixepoch('subsecond') * 1000 AS integer) - 1728000000) ) INSERT INTO `member` (`id`, `organization_id`, `user_id`, `role`, `created_at`) SELECT `seed_members`.`member_id`, `target_organization`.`id`, `seed_members`.`user_id`, `seed_members`.`role`, `seed_members`.`created_at` FROM `seed_members` CROSS JOIN `target_organization` WHERE `target_organization`.`id` IS NOT NULL ON CONFLICT(`id`) DO UPDATE SET `organization_id` = excluded.`organization_id`, `user_id` = excluded.`user_id`, `role` = excluded.`role`; WITH `target_organization` AS ( SELECT COALESCE( (SELECT `active_organization_id` FROM `session` WHERE `active_organization_id` IS NOT NULL ORDER BY `updated_at` DESC LIMIT 1), (SELECT `id` FROM `organization` ORDER BY `created_at` LIMIT 1) ) AS `id` ), `seed_teams` (`team_id`, `name`, `created_at`, `description`) AS ( VALUES ('seed-team-operations', 'Operations', CAST(unixepoch('subsecond') * 1000 AS integer) - 1209600000, 'Coordinates daily attendance operations and reporting.'), ('seed-team-engineering', 'Engineering', CAST(unixepoch('subsecond') * 1000 AS integer) - 1036800000, 'Builds and maintains the attendance platform.'), ('seed-team-field-support', 'Field support', CAST(unixepoch('subsecond') * 1000 AS integer) - 864000000, 'Installs and supports cameras and on-site devices.'), ('seed-team-people', 'People & culture', CAST(unixepoch('subsecond') * 1000 AS integer) - 691200000, 'Supports onboarding, policy, and employee experience.') ) INSERT INTO `team` (`id`, `name`, `organization_id`, `created_at`, `updated_at`, `description`) SELECT `seed_teams`.`team_id`, `seed_teams`.`name`, `target_organization`.`id`, `seed_teams`.`created_at`, CAST(unixepoch('subsecond') * 1000 AS integer), `seed_teams`.`description` FROM `seed_teams` CROSS JOIN `target_organization` WHERE `target_organization`.`id` IS NOT NULL ON CONFLICT(`id`) DO UPDATE SET `name` = excluded.`name`, `organization_id` = excluded.`organization_id`, `updated_at` = excluded.`updated_at`, `description` = excluded.`description`; INSERT INTO `team_member` (`id`, `team_id`, `user_id`, `created_at`) VALUES ('seed-team-member-operations-priya', 'seed-team-operations', 'seed-user-priya', CAST(unixepoch('subsecond') * 1000 AS integer) - 1209600000), ('seed-team-member-operations-kabir', 'seed-team-operations', 'seed-user-kabir', CAST(unixepoch('subsecond') * 1000 AS integer) - 1123200000), ('seed-team-member-engineering-arjun', 'seed-team-engineering', 'seed-user-arjun', CAST(unixepoch('subsecond') * 1000 AS integer) - 1036800000), ('seed-team-member-engineering-neha', 'seed-team-engineering', 'seed-user-neha', CAST(unixepoch('subsecond') * 1000 AS integer) - 950400000), ('seed-team-member-engineering-meera', 'seed-team-engineering', 'seed-user-meera', CAST(unixepoch('subsecond') * 1000 AS integer) - 864000000), ('seed-team-member-engineering-vikram', 'seed-team-engineering', 'seed-user-vikram', CAST(unixepoch('subsecond') * 1000 AS integer) - 777600000), ('seed-team-member-field-rohan', 'seed-team-field-support', 'seed-user-rohan', CAST(unixepoch('subsecond') * 1000 AS integer) - 864000000), ('seed-team-member-field-kabir', 'seed-team-field-support', 'seed-user-kabir', CAST(unixepoch('subsecond') * 1000 AS integer) - 777600000), ('seed-team-member-people-isha', 'seed-team-people', 'seed-user-isha', CAST(unixepoch('subsecond') * 1000 AS integer) - 691200000), ('seed-team-member-people-priya', 'seed-team-people', 'seed-user-priya', CAST(unixepoch('subsecond') * 1000 AS integer) - 604800000) ON CONFLICT(`id`) DO UPDATE SET `team_id` = excluded.`team_id`, `user_id` = excluded.`user_id`, `created_at` = excluded.`created_at`;