basePath: /api definitions: dto.ActivityCreateDto: properties: billingRate: type: number name: type: string type: object dto.ActivityDto: properties: billingRate: type: number createdAt: type: string id: type: string lastEditorID: type: string name: type: string updatedAt: type: string type: object dto.ActivityUpdateDto: properties: billingRate: type: number createdAt: type: string id: type: string lastEditorID: type: string name: type: string updatedAt: type: string type: object dto.CompanyCreateDto: properties: name: type: string type: object dto.CompanyDto: properties: createdAt: type: string id: type: string lastEditorID: type: string name: type: string updatedAt: type: string type: object dto.CompanyUpdateDto: properties: createdAt: type: string id: type: string lastEditorID: type: string name: type: string updatedAt: type: string type: object dto.CustomerCreateDto: properties: companyId: type: integer name: type: string type: object dto.CustomerDto: properties: companyId: type: integer createdAt: type: string id: type: string lastEditorID: type: string name: type: string updatedAt: type: string type: object dto.CustomerUpdateDto: properties: companyId: type: integer createdAt: type: string id: type: string lastEditorID: type: string name: type: string updatedAt: type: string type: object dto.LoginDto: properties: email: type: string password: type: string type: object dto.ProjectCreateDto: properties: customerId: type: integer name: type: string type: object dto.ProjectDto: properties: createdAt: type: string customerId: type: integer id: type: string lastEditorID: type: string name: type: string updatedAt: type: string type: object dto.ProjectUpdateDto: properties: createdAt: type: string customerId: type: integer id: type: string lastEditorID: type: string name: type: string updatedAt: type: string type: object dto.TimeEntryCreateDto: properties: activityId: type: integer billable: description: Percentage (0-100) type: integer description: type: string end: type: string projectId: type: integer start: type: string userId: type: integer type: object dto.TimeEntryDto: properties: activityId: type: integer billable: description: Percentage (0-100) type: integer createdAt: type: string description: type: string end: type: string id: type: string lastEditorID: type: string projectId: type: integer start: type: string updatedAt: type: string userId: type: integer type: object dto.TimeEntryUpdateDto: properties: activityId: type: integer billable: description: Percentage (0-100) type: integer createdAt: type: string description: type: string end: type: string id: type: string lastEditorID: type: string projectId: type: integer start: type: string updatedAt: type: string userId: type: integer type: object dto.TokenDto: properties: token: type: string user: $ref: '#/definitions/dto.UserDto' type: object dto.UserCreateDto: properties: companyId: type: integer email: type: string hourlyRate: type: number password: type: string role: type: string type: object dto.UserDto: properties: companyId: type: integer createdAt: type: string email: type: string hourlyRate: type: number id: type: string lastEditorID: type: string role: type: string updatedAt: type: string type: object dto.UserUpdateDto: properties: companyId: type: integer createdAt: type: string email: type: string hourlyRate: type: number id: type: string lastEditorID: type: string password: type: string role: type: string updatedAt: type: string type: object utils.ErrorInfo: properties: code: type: string message: type: string type: object utils.Response: properties: data: {} error: $ref: '#/definitions/utils.ErrorInfo' success: type: boolean type: object host: localhost:8080 info: contact: {} description: This is a simple time tracker API. title: Time Tracker API version: "1.0" paths: /: get: description: Get a hello message operationId: hello produces: - text/plain responses: "200": description: Hello from the Time Tracker Backend! schema: type: string summary: Say hello /activities: get: consumes: - application/json description: Get a list of all activities produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.ActivityDto' type: array type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get all activities tags: - activities post: consumes: - application/json description: Create a new activity parameters: - description: Activity data in: body name: activity required: true schema: $ref: '#/definitions/dto.ActivityCreateDto' produces: - application/json responses: "201": description: Created schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.ActivityDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Create a new activity tags: - activities /activities/{id}: delete: consumes: - application/json description: Delete an activity by its ID parameters: - description: Activity ID in: path name: id required: true type: string produces: - application/json responses: "204": description: No Content schema: $ref: '#/definitions/utils.Response' "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Delete an activity tags: - activities get: consumes: - application/json description: Get an activity by its ID parameters: - description: Activity ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.ActivityDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get activity by ID tags: - activities put: consumes: - application/json description: Update an existing activity parameters: - description: Activity ID in: path name: id required: true type: string - description: Activity data in: body name: activity required: true schema: $ref: '#/definitions/dto.ActivityUpdateDto' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.ActivityDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Update an activity tags: - activities /auth/login: post: consumes: - application/json description: Authenticate a user and get a JWT token parameters: - description: Login credentials in: body name: credentials required: true schema: $ref: '#/definitions/dto.LoginDto' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.TokenDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object summary: Login tags: - auth /auth/me: get: consumes: - application/json description: Get the currently authenticated user produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.UserDto' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get current user tags: - auth /auth/register: post: consumes: - application/json description: Register a new user and get a JWT token parameters: - description: User data in: body name: user required: true schema: $ref: '#/definitions/dto.UserCreateDto' produces: - application/json responses: "201": description: Created schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.TokenDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object summary: Register tags: - auth /companies: get: consumes: - application/json description: Get a list of all companies produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.CompanyDto' type: array type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get all companies tags: - companies post: consumes: - application/json description: Create a new company parameters: - description: Company data in: body name: company required: true schema: $ref: '#/definitions/dto.CompanyCreateDto' produces: - application/json responses: "201": description: Created schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.CompanyDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Create a new company tags: - companies /companies/{id}: delete: consumes: - application/json description: Delete a company by its ID parameters: - description: Company ID in: path name: id required: true type: string produces: - application/json responses: "204": description: No Content schema: $ref: '#/definitions/utils.Response' "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Delete a company tags: - companies get: consumes: - application/json description: Get a company by its ID parameters: - description: Company ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.CompanyDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get company by ID tags: - companies put: consumes: - application/json description: Update an existing company parameters: - description: Company ID in: path name: id required: true type: string - description: Company data in: body name: company required: true schema: $ref: '#/definitions/dto.CompanyUpdateDto' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.CompanyDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Update a company tags: - companies /customers: get: consumes: - application/json description: Get a list of all customers produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.CustomerDto' type: array type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get all customers tags: - customers post: consumes: - application/json description: Create a new customer parameters: - description: Customer data in: body name: customer required: true schema: $ref: '#/definitions/dto.CustomerCreateDto' produces: - application/json responses: "201": description: Created schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.CustomerDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Create a new customer tags: - customers /customers/{id}: delete: consumes: - application/json description: Delete a customer by its ID parameters: - description: Customer ID in: path name: id required: true type: string produces: - application/json responses: "204": description: No Content schema: $ref: '#/definitions/utils.Response' "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Delete a customer tags: - customers get: consumes: - application/json description: Get a customer by its ID parameters: - description: Customer ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.CustomerDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get customer by ID tags: - customers put: consumes: - application/json description: Update an existing customer parameters: - description: Customer ID in: path name: id required: true type: string - description: Customer data in: body name: customer required: true schema: $ref: '#/definitions/dto.CustomerUpdateDto' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.CustomerDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Update a customer tags: - customers /customers/company/{companyId}: get: consumes: - application/json description: Get a list of customers for a specific company parameters: - description: Company ID in: path name: companyId required: true type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.CustomerDto' type: array type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get customers by company ID tags: - customers /projects: get: consumes: - application/json description: Get a list of all projects produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.ProjectDto' type: array type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get all projects tags: - projects post: consumes: - application/json description: Create a new project parameters: - description: Project data in: body name: project required: true schema: $ref: '#/definitions/dto.ProjectCreateDto' produces: - application/json responses: "201": description: Created schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.ProjectDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Create a new project tags: - projects /projects/{id}: delete: consumes: - application/json description: Delete a project by its ID parameters: - description: Project ID in: path name: id required: true type: string produces: - application/json responses: "204": description: No Content schema: $ref: '#/definitions/utils.Response' "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Delete a project tags: - projects get: consumes: - application/json description: Get a project by its ID parameters: - description: Project ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.ProjectDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get project by ID tags: - projects put: consumes: - application/json description: Update an existing project parameters: - description: Project ID in: path name: id required: true type: string - description: Project data in: body name: project required: true schema: $ref: '#/definitions/dto.ProjectUpdateDto' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.ProjectDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Update a project tags: - projects /projects/customer/{customerId}: get: consumes: - application/json description: Get a list of projects for a specific customer parameters: - description: Customer ID in: path name: customerId required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.ProjectDto' type: array type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get projects by customer ID tags: - projects /projects/with-customers: get: consumes: - application/json description: Get a list of all projects with their associated customer information produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.ProjectDto' type: array type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get all projects with customer information tags: - projects /time-entries: get: consumes: - application/json description: Get a list of all time entries produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.TimeEntryDto' type: array type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get all time entries tags: - time-entries post: consumes: - application/json description: Create a new time entry parameters: - description: Time Entry data in: body name: timeEntry required: true schema: $ref: '#/definitions/dto.TimeEntryCreateDto' produces: - application/json responses: "201": description: Created schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.TimeEntryDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Create a new time entry tags: - time-entries /time-entries/{id}: delete: consumes: - application/json description: Delete a time entry by its ID parameters: - description: Time Entry ID in: path name: id required: true type: string produces: - application/json responses: "204": description: No Content schema: $ref: '#/definitions/utils.Response' "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Delete a time entry tags: - time-entries get: consumes: - application/json description: Get a time entry by its ID parameters: - description: Time Entry ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.TimeEntryDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get time entry by ID tags: - time-entries put: consumes: - application/json description: Update an existing time entry parameters: - description: Time Entry ID in: path name: id required: true type: string - description: Time Entry data in: body name: timeEntry required: true schema: $ref: '#/definitions/dto.TimeEntryUpdateDto' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.TimeEntryDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Update a time entry tags: - time-entries /time-entries/me: get: consumes: - application/json description: Get a list of time entries for the currently authenticated user produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.TimeEntryDto' type: array type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get current user's time entries tags: - time-entries /time-entries/project/{projectId}: get: consumes: - application/json description: Get a list of time entries for a specific project parameters: - description: Project ID in: path name: projectId required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.TimeEntryDto' type: array type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get time entries by project ID tags: - time-entries /time-entries/range: get: consumes: - application/json description: Get a list of time entries within a specific date range parameters: - description: Start date (ISO 8601 format) in: query name: start required: true type: string - description: End date (ISO 8601 format) in: query name: end required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.TimeEntryDto' type: array type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get time entries by date range tags: - time-entries /time-entries/user/{userId}: get: consumes: - application/json description: Get a list of time entries for a specific user parameters: - description: User ID in: path name: userId required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.TimeEntryDto' type: array type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get time entries by user ID tags: - time-entries /users: get: consumes: - application/json description: Get a list of all users produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: items: $ref: '#/definitions/dto.UserDto' type: array type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get all users tags: - users post: consumes: - application/json description: Create a new user parameters: - description: User data in: body name: user required: true schema: $ref: '#/definitions/dto.UserCreateDto' produces: - application/json responses: "201": description: Created schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.UserDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Create a new user tags: - users /users/{id}: delete: consumes: - application/json description: Delete a user by their ID parameters: - description: User ID in: path name: id required: true type: string produces: - application/json responses: "204": description: No Content schema: $ref: '#/definitions/utils.Response' "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Delete a user tags: - users get: consumes: - application/json description: Get a user by their ID parameters: - description: User ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.UserDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Get user by ID tags: - users put: consumes: - application/json description: Update an existing user parameters: - description: User ID in: path name: id required: true type: string - description: User data in: body name: user required: true schema: $ref: '#/definitions/dto.UserUpdateDto' produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/utils.Response' - properties: data: $ref: '#/definitions/dto.UserDto' type: object "400": description: Bad Request schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "401": description: Unauthorized schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "404": description: Not Found schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object "500": description: Internal Server Error schema: allOf: - $ref: '#/definitions/utils.Response' - properties: error: $ref: '#/definitions/utils.ErrorInfo' type: object security: - BearerAuth: [] summary: Update a user tags: - users securityDefinitions: BearerAuth: in: header name: Authorization type: apiKey swagger: "2.0"