627645056b
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>
81 lines
3.8 KiB
Dart
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,
|
|
);
|
|
}
|