added member-time-tracking route

This commit is contained in:
2026-01-28 17:23:20 +00:00
parent 1aabc463d4
commit c2f5a9abdb
6 changed files with 132 additions and 0 deletions

View File

@@ -227,6 +227,13 @@ export const OrgMembersQuerySchema = z.object({
export type OrgMembersQuery = z.infer<typeof OrgMembersQuerySchema>;
export const OrgMemberTimeTrackingQuerySchema = z.object({
organisationId: z.coerce.number().int().positive("organisationId must be a positive integer"),
fromDate: z.coerce.date().optional(),
});
export type OrgMemberTimeTrackingQuery = z.infer<typeof OrgMemberTimeTrackingQuerySchema>;
export const OrgAddMemberRequestSchema = z.object({
organisationId: z.number().int().positive("organisationId must be a positive integer"),
userId: z.number().int().positive("userId must be a positive integer"),

View File

@@ -29,6 +29,7 @@ import {
OrgCreateRequestSchema,
OrgDeleteRequestSchema,
OrgMembersQuerySchema,
OrgMemberTimeTrackingQuerySchema,
OrgRemoveMemberRequestSchema,
OrgUpdateMemberRoleRequestSchema,
OrgUpdateRequestSchema,
@@ -379,6 +380,30 @@ export const apiContract = c.router({
200: z.array(OrganisationMemberResponseSchema),
},
},
organisationMemberTimeTracking: {
method: "GET",
path: "/organisation/member-time-tracking",
query: OrgMemberTimeTrackingQuerySchema,
responses: {
200: z.array(
z.object({
id: z.number(),
userId: z.number(),
issueId: z.number(),
issueNumber: z.number(),
projectKey: z.string(),
timestamps: z.array(z.string()),
endedAt: z.string().nullable(),
createdAt: z.string().nullable(),
workTimeMs: z.number(),
breakTimeMs: z.number(),
isRunning: z.boolean(),
}),
),
403: ApiErrorSchema,
404: ApiErrorSchema,
},
},
organisationRemoveMember: {
method: "POST",
path: "/organisation/remove-member",

View File

@@ -25,6 +25,7 @@ export type {
OrgCreateRequest,
OrgDeleteRequest,
OrgMembersQuery,
OrgMemberTimeTrackingQuery,
OrgRemoveMemberRequest,
OrgUpdateMemberRoleRequest,
OrgUpdateRequest,
@@ -87,6 +88,7 @@ export {
OrgCreateRequestSchema,
OrgDeleteRequestSchema,
OrgMembersQuerySchema,
OrgMemberTimeTrackingQuerySchema,
OrgRemoveMemberRequestSchema,
OrgUpdateMemberRoleRequestSchema,
OrgUpdateRequestSchema,
@@ -153,6 +155,8 @@ export type {
OrganisationMemberResponse as OrganisationMemberResponseRecord,
OrganisationRecord,
OrganisationResponse as OrganisationResponseRecord,
PaymentInsert,
PaymentRecord,
ProjectInsert,
ProjectRecord,
ProjectResponse as ProjectResponseRecord,
@@ -160,6 +164,8 @@ export type {
SessionRecord,
SprintInsert,
SprintRecord,
SubscriptionInsert,
SubscriptionRecord,
TimedSessionInsert,
TimedSessionRecord,
TimerState,
@@ -188,6 +194,9 @@ export {
OrganisationMemberInsertSchema,
OrganisationMemberSelectSchema,
OrganisationSelectSchema,
Payment,
PaymentInsertSchema,
PaymentSelectSchema,
Project,
ProjectInsertSchema,
ProjectSelectSchema,
@@ -197,6 +206,9 @@ export {
Sprint,
SprintInsertSchema,
SprintSelectSchema,
Subscription,
SubscriptionInsertSchema,
SubscriptionSelectSchema,
TimedSession,
TimedSessionInsertSchema,
TimedSessionSelectSchema,