Files
tasq/lib/brick/db/20260926162926.migration.dart
T
redz1029 627645056b Add Programmer Tasks module (work-log + time tracking)
Separate feature for the `programmer` role to record dev work by category,
distinct from the IT help-desk `tasks` feature. Modeled on the IT Service
Requests pattern (Brick offline-first model -> Riverpod stream/controller ->
list/detail screens); seed of a future Project Management workflow.

- programmer_tasks + programmer_task_activity_logs (category enum, RLS,
  realtime) via supabase migration
- single assignee, self-logged or lead-assigned; assign/reassign logged
- pause-on-switch: starting a task while another runs prompts to pause the
  running one, keeping one active task per user for accurate time attribution
- worked-duration math shared with help-desk tasks via a generic core in
  task_duration.dart (existing callers unchanged)
- list distinguishes running vs paused with a per-task Resume shortcut
- accessible dialog labels; route /programmer-tasks + nav gated to admin/programmer
- unit/widget tests: controller lifecycle, duration math, pause-switch dialog

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-09-27 01:13:33 +08:00

81 lines
3.8 KiB
Dart

// GENERATED CODE EDIT WITH CAUTION
// THIS FILE **WILL NOT** BE REGENERATED
// This file should be version controlled and can be manually edited.
part of 'schema.g.dart';
// While migrations are intelligently created, the difference between some commands, such as
// DropTable vs. RenameTable, cannot be determined. For this reason, please review migrations after
// they are created to ensure the correct inference was made.
// The migration version must **always** mirror the file name
const List<MigrationCommand> _migration_20260926162926_up = [
InsertTable('ProgrammerTask'),
InsertTable('ProgrammerTaskActivityLog'),
InsertColumn('id', Column.varchar, onTable: 'ProgrammerTask'),
InsertColumn('title', Column.varchar, onTable: 'ProgrammerTask'),
InsertColumn('description', Column.varchar, onTable: 'ProgrammerTask'),
InsertColumn('category', Column.varchar, onTable: 'ProgrammerTask'),
InsertColumn('status', Column.varchar, onTable: 'ProgrammerTask'),
InsertColumn('priority', Column.integer, onTable: 'ProgrammerTask'),
InsertColumn('assignee_id', Column.varchar, onTable: 'ProgrammerTask'),
InsertColumn('creator_id', Column.varchar, onTable: 'ProgrammerTask'),
InsertColumn('created_at', Column.datetime, onTable: 'ProgrammerTask'),
InsertColumn('started_at', Column.datetime, onTable: 'ProgrammerTask'),
InsertColumn('completed_at', Column.datetime, onTable: 'ProgrammerTask'),
InsertColumn('cancelled_at', Column.datetime, onTable: 'ProgrammerTask'),
InsertColumn('cancellation_reason', Column.varchar, onTable: 'ProgrammerTask'),
InsertColumn('updated_at', Column.datetime, onTable: 'ProgrammerTask'),
InsertColumn('is_terminal', Column.boolean, onTable: 'ProgrammerTask'),
InsertColumn('id', Column.varchar, onTable: 'ProgrammerTaskActivityLog'),
InsertColumn('task_id', Column.varchar, onTable: 'ProgrammerTaskActivityLog'),
InsertColumn('actor_id', Column.varchar, onTable: 'ProgrammerTaskActivityLog'),
InsertColumn('action_type', Column.varchar, onTable: 'ProgrammerTaskActivityLog'),
InsertColumn('meta', Column.varchar, onTable: 'ProgrammerTaskActivityLog'),
InsertColumn('created_at', Column.datetime, onTable: 'ProgrammerTaskActivityLog')
];
const List<MigrationCommand> _migration_20260926162926_down = [
DropTable('ProgrammerTask'),
DropTable('ProgrammerTaskActivityLog'),
DropColumn('id', onTable: 'ProgrammerTask'),
DropColumn('title', onTable: 'ProgrammerTask'),
DropColumn('description', onTable: 'ProgrammerTask'),
DropColumn('category', onTable: 'ProgrammerTask'),
DropColumn('status', onTable: 'ProgrammerTask'),
DropColumn('priority', onTable: 'ProgrammerTask'),
DropColumn('assignee_id', onTable: 'ProgrammerTask'),
DropColumn('creator_id', onTable: 'ProgrammerTask'),
DropColumn('created_at', onTable: 'ProgrammerTask'),
DropColumn('started_at', onTable: 'ProgrammerTask'),
DropColumn('completed_at', onTable: 'ProgrammerTask'),
DropColumn('cancelled_at', onTable: 'ProgrammerTask'),
DropColumn('cancellation_reason', onTable: 'ProgrammerTask'),
DropColumn('updated_at', onTable: 'ProgrammerTask'),
DropColumn('is_terminal', onTable: 'ProgrammerTask'),
DropColumn('id', onTable: 'ProgrammerTaskActivityLog'),
DropColumn('task_id', onTable: 'ProgrammerTaskActivityLog'),
DropColumn('actor_id', onTable: 'ProgrammerTaskActivityLog'),
DropColumn('action_type', onTable: 'ProgrammerTaskActivityLog'),
DropColumn('meta', onTable: 'ProgrammerTaskActivityLog'),
DropColumn('created_at', onTable: 'ProgrammerTaskActivityLog')
];
//
// DO NOT EDIT BELOW THIS LINE
//
@Migratable(
version: '20260926162926',
up: _migration_20260926162926_up,
down: _migration_20260926162926_down,
)
class Migration20260926162926 extends Migration {
const Migration20260926162926()
: super(
version: 20260926162926,
up: _migration_20260926162926_up,
down: _migration_20260926162926_down,
);
}