/* Options: Date: 2026-08-01 08:40:38 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SafetyComplianceRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class SafetyComplianceKpis implements IConvertible { int? ParticipationPct; int? OpenIncidents; int? OverdueCAs; int? Recordables12mo; int? DaysWithoutRecordable; int? ProjectsWithTalkToday; int? ProjectsWithCrewToday; SafetyComplianceKpis({this.ParticipationPct,this.OpenIncidents,this.OverdueCAs,this.Recordables12mo,this.DaysWithoutRecordable,this.ProjectsWithTalkToday,this.ProjectsWithCrewToday}); SafetyComplianceKpis.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ParticipationPct = json['ParticipationPct']; OpenIncidents = json['OpenIncidents']; OverdueCAs = json['OverdueCAs']; Recordables12mo = json['Recordables12mo']; DaysWithoutRecordable = json['DaysWithoutRecordable']; ProjectsWithTalkToday = json['ProjectsWithTalkToday']; ProjectsWithCrewToday = json['ProjectsWithCrewToday']; return this; } Map toJson() => { 'ParticipationPct': ParticipationPct, 'OpenIncidents': OpenIncidents, 'OverdueCAs': OverdueCAs, 'Recordables12mo': Recordables12mo, 'DaysWithoutRecordable': DaysWithoutRecordable, 'ProjectsWithTalkToday': ProjectsWithTalkToday, 'ProjectsWithCrewToday': ProjectsWithCrewToday }; getTypeName() => "SafetyComplianceKpis"; TypeContext? context = _ctx; } class SafetyComplianceProject implements IConvertible { int? ProjectID; String? ProjectUID; String? ProjectName; String? Branch; int? CrewCount; bool? HasTalkToday; int? TalkAckPct; int? OpenIncidents; int? OverdueCAs; int? Recordables12mo; SafetyComplianceProject({this.ProjectID,this.ProjectUID,this.ProjectName,this.Branch,this.CrewCount,this.HasTalkToday,this.TalkAckPct,this.OpenIncidents,this.OverdueCAs,this.Recordables12mo}); SafetyComplianceProject.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; ProjectUID = json['ProjectUID']; ProjectName = json['ProjectName']; Branch = json['Branch']; CrewCount = json['CrewCount']; HasTalkToday = json['HasTalkToday']; TalkAckPct = json['TalkAckPct']; OpenIncidents = json['OpenIncidents']; OverdueCAs = json['OverdueCAs']; Recordables12mo = json['Recordables12mo']; return this; } Map toJson() => { 'ProjectID': ProjectID, 'ProjectUID': ProjectUID, 'ProjectName': ProjectName, 'Branch': Branch, 'CrewCount': CrewCount, 'HasTalkToday': HasTalkToday, 'TalkAckPct': TalkAckPct, 'OpenIncidents': OpenIncidents, 'OverdueCAs': OverdueCAs, 'Recordables12mo': Recordables12mo }; getTypeName() => "SafetyComplianceProject"; TypeContext? context = _ctx; } class SafetyTrendWeek implements IConvertible { String? WeekStart; int? Acks; int? Roster; SafetyTrendWeek({this.WeekStart,this.Acks,this.Roster}); SafetyTrendWeek.fromJson(Map json) { fromMap(json); } fromMap(Map json) { WeekStart = json['WeekStart']; Acks = json['Acks']; Roster = json['Roster']; return this; } Map toJson() => { 'WeekStart': WeekStart, 'Acks': Acks, 'Roster': Roster }; getTypeName() => "SafetyTrendWeek"; TypeContext? context = _ctx; } class SafetyIncidentMixRow implements IConvertible { String? Severity; int? Cnt; SafetyIncidentMixRow({this.Severity,this.Cnt}); SafetyIncidentMixRow.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Severity = json['Severity']; Cnt = json['Cnt']; return this; } Map toJson() => { 'Severity': Severity, 'Cnt': Cnt }; getTypeName() => "SafetyIncidentMixRow"; TypeContext? context = _ctx; } class SafetyMissingTalk implements IConvertible { int? ProjectID; String? ProjectUID; String? ProjectName; int? CrewCount; SafetyMissingTalk({this.ProjectID,this.ProjectUID,this.ProjectName,this.CrewCount}); SafetyMissingTalk.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ProjectID = json['ProjectID']; ProjectUID = json['ProjectUID']; ProjectName = json['ProjectName']; CrewCount = json['CrewCount']; return this; } Map toJson() => { 'ProjectID': ProjectID, 'ProjectUID': ProjectUID, 'ProjectName': ProjectName, 'CrewCount': CrewCount }; getTypeName() => "SafetyMissingTalk"; TypeContext? context = _ctx; } class SafetyComplianceResponse implements IConvertible { ResponseStatus? ResponseStatus; SafetyComplianceKpis? Kpis; List? Projects = []; List? Trend = []; List? IncidentMix = []; List? MissingTalks = []; SafetyComplianceResponse({this.ResponseStatus,this.Kpis,this.Projects,this.Trend,this.IncidentMix,this.MissingTalks}); SafetyComplianceResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Kpis = JsonConverters.fromJson(json['Kpis'],'SafetyComplianceKpis',context!); Projects = JsonConverters.fromJson(json['Projects'],'List',context!); Trend = JsonConverters.fromJson(json['Trend'],'List',context!); IncidentMix = JsonConverters.fromJson(json['IncidentMix'],'List',context!); MissingTalks = JsonConverters.fromJson(json['MissingTalks'],'List',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Kpis': JsonConverters.toJson(Kpis,'SafetyComplianceKpis',context!), 'Projects': JsonConverters.toJson(Projects,'List',context!), 'Trend': JsonConverters.toJson(Trend,'List',context!), 'IncidentMix': JsonConverters.toJson(IncidentMix,'List',context!), 'MissingTalks': JsonConverters.toJson(MissingTalks,'List',context!) }; getTypeName() => "SafetyComplianceResponse"; TypeContext? context = _ctx; } // @Route("/v1/safety/compliance", "GET,OPTIONS") class SafetyComplianceRequest implements IReturn, IConvertible, IGet { int? Days; SafetyComplianceRequest({this.Days}); SafetyComplianceRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Days = json['Days']; return this; } Map toJson() => { 'Days': Days }; createResponse() => SafetyComplianceResponse(); getResponseTypeName() => "SafetyComplianceResponse"; getTypeName() => "SafetyComplianceRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'SafetyComplianceKpis': TypeInfo(TypeOf.Class, create:() => SafetyComplianceKpis()), 'SafetyComplianceProject': TypeInfo(TypeOf.Class, create:() => SafetyComplianceProject()), 'SafetyTrendWeek': TypeInfo(TypeOf.Class, create:() => SafetyTrendWeek()), 'SafetyIncidentMixRow': TypeInfo(TypeOf.Class, create:() => SafetyIncidentMixRow()), 'SafetyMissingTalk': TypeInfo(TypeOf.Class, create:() => SafetyMissingTalk()), 'SafetyComplianceResponse': TypeInfo(TypeOf.Class, create:() => SafetyComplianceResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SafetyComplianceRequest': TypeInfo(TypeOf.Class, create:() => SafetyComplianceRequest()), });