Compare commits
No commits in common. "0379ea4ae4e9b22ec86ae034e9c15b6fb5836e3f" and "c3162756ad9b0cea1253bd1864d84d2163abae7e" have entirely different histories.
0379ea4ae4
...
c3162756ad
@ -1,6 +1,6 @@
|
|||||||
# Time Tracker Backend Makefile
|
# Time Tracker Backend Makefile
|
||||||
|
|
||||||
.PHONY: db-start db-stop db-test model-test run build clean migrate seed swagger help
|
.PHONY: db-start db-stop db-test model-test run build clean migrate seed help
|
||||||
|
|
||||||
# Default target
|
# Default target
|
||||||
.DEFAULT_GOAL := help
|
.DEFAULT_GOAL := help
|
||||||
@ -25,9 +25,7 @@ help:
|
|||||||
@echo " make seed - Seed the database with initial data"
|
@echo " make seed - Seed the database with initial data"
|
||||||
@echo " make db-drop-users - Drop the users table"
|
@echo " make db-drop-users - Drop the users table"
|
||||||
@echo " make db-reinit - Re-initialize the database"
|
@echo " make db-reinit - Re-initialize the database"
|
||||||
@echo " make swagger - Generate swagger documentation"
|
|
||||||
@echo " make help - Show this help message"
|
@echo " make help - Show this help message"
|
||||||
@echo "" make generate-ts - Generate TypeScript types
|
|
||||||
|
|
||||||
# Start the database
|
# Start the database
|
||||||
db-start:
|
db-start:
|
||||||
@ -90,15 +88,21 @@ db-drop-users:
|
|||||||
db-reinit:
|
db-reinit:
|
||||||
@echo "Re-initializing the database..."
|
@echo "Re-initializing the database..."
|
||||||
@PG_HOST=$(DB_HOST) PG_PORT=$(DB_PORT) PG_USER=$(DB_USER) PG_PASSWORD=$(DB_PASSWORD) PG_DBNAME=$(DB_NAME) go run cmd/migrate/main.go -create_db -drop_db
|
@PG_HOST=$(DB_HOST) PG_PORT=$(DB_PORT) PG_USER=$(DB_USER) PG_PASSWORD=$(DB_PASSWORD) PG_DBNAME=$(DB_NAME) go run cmd/migrate/main.go -create_db -drop_db
|
||||||
# Generate swagger documentation
|
@echo "Database re-initialized"
|
||||||
swagger:
|
|
||||||
@echo "Generating swagger documentation..."
|
|
||||||
@swag init -g cmd/api/main.go
|
|
||||||
@echo "Swagger documentation generated"
|
|
||||||
|
|
||||||
# Generate TypeScript types
|
|
||||||
generate-ts:
|
|
||||||
@echo "Generating TypeScript types..."
|
|
||||||
@tygo generate
|
|
||||||
@echo "TypeScript types generated"
|
|
||||||
|
|
||||||
|
help:
|
||||||
|
@echo "Time Tracker Backend Makefile"
|
||||||
|
@echo ""
|
||||||
|
@echo "Usage:"
|
||||||
|
@echo " make db-start - Start the PostgreSQL database container"
|
||||||
|
@echo " make db-stop - Stop the PostgreSQL database container"
|
||||||
|
@echo " make db-test - Test the database connection"
|
||||||
|
@echo " make model-test - Test the database models"
|
||||||
|
@echo " make run - Run the application"
|
||||||
|
@echo " make build - Build the application"
|
||||||
|
@echo " make clean - Remove build artifacts"
|
||||||
|
@echo " make migrate - Run database migrations"
|
||||||
|
@echo " make seed - Seed the database with initial data"
|
||||||
|
@echo " make db-drop-users - Drop the users table"
|
||||||
|
@echo " make db-reinit - Re-initialize the database"
|
||||||
|
@echo " make help - Show this help message"
|
||||||
|
@ -4112,12 +4112,10 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"billingRate": {
|
"billingRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Development"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4125,28 +4123,22 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"billingRate": {
|
"billingRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "a1b2c3d4e5f6"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "u1v2w3x4y5z6"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Development"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4154,28 +4146,22 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"billingRate": {
|
"billingRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "a1b2c3d4e5f6"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "u1v2w3x4y5z6"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Development"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4183,8 +4169,7 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Acme Corp"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4192,24 +4177,19 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Acme Corp"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4217,24 +4197,19 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Acme Corp"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4242,12 +4217,10 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "John Doe"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4255,28 +4228,22 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "John Doe"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4284,28 +4251,22 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "John Doe"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4313,12 +4274,10 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"email": {
|
"email": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "admin@example.com"
|
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Admin@123456"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4326,12 +4285,10 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"customerId": {
|
"customerId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Time Tracking App"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4339,28 +4296,22 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"customerId": {
|
"customerId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4368,28 +4319,22 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"customerId": {
|
"customerId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4397,33 +4342,26 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"activityId": {
|
"activityId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"billable": {
|
"billable": {
|
||||||
"description": "Percentage (0-100)",
|
"description": "Percentage (0-100)",
|
||||||
"type": "integer",
|
"type": "integer"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Working on the Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"end": {
|
"end": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T17:00:00Z"
|
|
||||||
},
|
},
|
||||||
"projectId": {
|
"projectId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T08:00:00Z"
|
|
||||||
},
|
},
|
||||||
"userId": {
|
"userId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4431,49 +4369,38 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"activityId": {
|
"activityId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"billable": {
|
"billable": {
|
||||||
"description": "Percentage (0-100)",
|
"description": "Percentage (0-100)",
|
||||||
"type": "integer",
|
"type": "integer"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Working on the Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"end": {
|
"end": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T17:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"projectId": {
|
"projectId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T08:00:00Z"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"userId": {
|
"userId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4481,49 +4408,38 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"activityId": {
|
"activityId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"billable": {
|
"billable": {
|
||||||
"description": "Percentage (0-100)",
|
"description": "Percentage (0-100)",
|
||||||
"type": "integer",
|
"type": "integer"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Working on the Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"end": {
|
"end": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T17:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"projectId": {
|
"projectId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T08:00:00Z"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"userId": {
|
"userId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4531,8 +4447,7 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"token": {
|
"token": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
|
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"$ref": "#/definitions/dto.UserDto"
|
"$ref": "#/definitions/dto.UserDto"
|
||||||
@ -4543,24 +4458,19 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"email": {
|
"email": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "test@example.com"
|
|
||||||
},
|
},
|
||||||
"hourlyRate": {
|
"hourlyRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 50
|
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "password123"
|
|
||||||
},
|
},
|
||||||
"role": {
|
"role": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "admin"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4568,36 +4478,28 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"email": {
|
"email": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "test@example.com"
|
|
||||||
},
|
},
|
||||||
"hourlyRate": {
|
"hourlyRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 50
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"role": {
|
"role": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "admin"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4605,40 +4507,31 @@ const docTemplate = `{
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"email": {
|
"email": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "test@example.com"
|
|
||||||
},
|
},
|
||||||
"hourlyRate": {
|
"hourlyRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 50
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "password123"
|
|
||||||
},
|
},
|
||||||
"role": {
|
"role": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "admin"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -4106,12 +4106,10 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"billingRate": {
|
"billingRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Development"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4119,28 +4117,22 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"billingRate": {
|
"billingRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "a1b2c3d4e5f6"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "u1v2w3x4y5z6"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Development"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4148,28 +4140,22 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"billingRate": {
|
"billingRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "a1b2c3d4e5f6"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "u1v2w3x4y5z6"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Development"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4177,8 +4163,7 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Acme Corp"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4186,24 +4171,19 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Acme Corp"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4211,24 +4191,19 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Acme Corp"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4236,12 +4211,10 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "John Doe"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4249,28 +4222,22 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "John Doe"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4278,28 +4245,22 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "John Doe"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4307,12 +4268,10 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"email": {
|
"email": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "admin@example.com"
|
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Admin@123456"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4320,12 +4279,10 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"customerId": {
|
"customerId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Time Tracking App"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4333,28 +4290,22 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"customerId": {
|
"customerId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4362,28 +4313,22 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"customerId": {
|
"customerId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4391,33 +4336,26 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"activityId": {
|
"activityId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"billable": {
|
"billable": {
|
||||||
"description": "Percentage (0-100)",
|
"description": "Percentage (0-100)",
|
||||||
"type": "integer",
|
"type": "integer"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Working on the Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"end": {
|
"end": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T17:00:00Z"
|
|
||||||
},
|
},
|
||||||
"projectId": {
|
"projectId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T08:00:00Z"
|
|
||||||
},
|
},
|
||||||
"userId": {
|
"userId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4425,49 +4363,38 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"activityId": {
|
"activityId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"billable": {
|
"billable": {
|
||||||
"description": "Percentage (0-100)",
|
"description": "Percentage (0-100)",
|
||||||
"type": "integer",
|
"type": "integer"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Working on the Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"end": {
|
"end": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T17:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"projectId": {
|
"projectId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T08:00:00Z"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"userId": {
|
"userId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4475,49 +4402,38 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"activityId": {
|
"activityId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"billable": {
|
"billable": {
|
||||||
"description": "Percentage (0-100)",
|
"description": "Percentage (0-100)",
|
||||||
"type": "integer",
|
"type": "integer"
|
||||||
"example": 100
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "Working on the Time Tracking App"
|
|
||||||
},
|
},
|
||||||
"end": {
|
"end": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T17:00:00Z"
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"projectId": {
|
"projectId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T08:00:00Z"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"userId": {
|
"userId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4525,8 +4441,7 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"token": {
|
"token": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
|
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"$ref": "#/definitions/dto.UserDto"
|
"$ref": "#/definitions/dto.UserDto"
|
||||||
@ -4537,24 +4452,19 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"email": {
|
"email": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "test@example.com"
|
|
||||||
},
|
},
|
||||||
"hourlyRate": {
|
"hourlyRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 50
|
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "password123"
|
|
||||||
},
|
},
|
||||||
"role": {
|
"role": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "admin"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4562,36 +4472,28 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"email": {
|
"email": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "test@example.com"
|
|
||||||
},
|
},
|
||||||
"hourlyRate": {
|
"hourlyRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 50
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"role": {
|
"role": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "admin"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4599,40 +4501,31 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"companyId": {
|
"companyId": {
|
||||||
"type": "string",
|
"type": "integer"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"createdAt": {
|
"createdAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
},
|
},
|
||||||
"email": {
|
"email": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "test@example.com"
|
|
||||||
},
|
},
|
||||||
"hourlyRate": {
|
"hourlyRate": {
|
||||||
"type": "number",
|
"type": "number"
|
||||||
"example": 50
|
|
||||||
},
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"lastEditorID": {
|
"lastEditorID": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "01HGW2BBG0000000000000000"
|
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "password123"
|
|
||||||
},
|
},
|
||||||
"role": {
|
"role": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "admin"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"example": "2024-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -3,310 +3,225 @@ definitions:
|
|||||||
dto.ActivityCreateDto:
|
dto.ActivityCreateDto:
|
||||||
properties:
|
properties:
|
||||||
billingRate:
|
billingRate:
|
||||||
example: 100
|
|
||||||
type: number
|
type: number
|
||||||
name:
|
name:
|
||||||
example: Development
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.ActivityDto:
|
dto.ActivityDto:
|
||||||
properties:
|
properties:
|
||||||
billingRate:
|
billingRate:
|
||||||
example: 100
|
|
||||||
type: number
|
type: number
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
id:
|
id:
|
||||||
example: a1b2c3d4e5f6
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: u1v2w3x4y5z6
|
|
||||||
type: string
|
type: string
|
||||||
name:
|
name:
|
||||||
example: Development
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.ActivityUpdateDto:
|
dto.ActivityUpdateDto:
|
||||||
properties:
|
properties:
|
||||||
billingRate:
|
billingRate:
|
||||||
example: 100
|
|
||||||
type: number
|
type: number
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
id:
|
id:
|
||||||
example: a1b2c3d4e5f6
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: u1v2w3x4y5z6
|
|
||||||
type: string
|
type: string
|
||||||
name:
|
name:
|
||||||
example: Development
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.CompanyCreateDto:
|
dto.CompanyCreateDto:
|
||||||
properties:
|
properties:
|
||||||
name:
|
name:
|
||||||
example: Acme Corp
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.CompanyDto:
|
dto.CompanyDto:
|
||||||
properties:
|
properties:
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
name:
|
name:
|
||||||
example: Acme Corp
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.CompanyUpdateDto:
|
dto.CompanyUpdateDto:
|
||||||
properties:
|
properties:
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
name:
|
name:
|
||||||
example: Acme Corp
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.CustomerCreateDto:
|
dto.CustomerCreateDto:
|
||||||
properties:
|
properties:
|
||||||
companyId:
|
companyId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
name:
|
name:
|
||||||
example: John Doe
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.CustomerDto:
|
dto.CustomerDto:
|
||||||
properties:
|
properties:
|
||||||
companyId:
|
companyId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
name:
|
name:
|
||||||
example: John Doe
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.CustomerUpdateDto:
|
dto.CustomerUpdateDto:
|
||||||
properties:
|
properties:
|
||||||
companyId:
|
companyId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
name:
|
name:
|
||||||
example: John Doe
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.LoginDto:
|
dto.LoginDto:
|
||||||
properties:
|
properties:
|
||||||
email:
|
email:
|
||||||
example: admin@example.com
|
|
||||||
type: string
|
type: string
|
||||||
password:
|
password:
|
||||||
example: Admin@123456
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.ProjectCreateDto:
|
dto.ProjectCreateDto:
|
||||||
properties:
|
properties:
|
||||||
customerId:
|
customerId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
name:
|
name:
|
||||||
example: Time Tracking App
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.ProjectDto:
|
dto.ProjectDto:
|
||||||
properties:
|
properties:
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
customerId:
|
customerId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
name:
|
name:
|
||||||
example: Time Tracking App
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.ProjectUpdateDto:
|
dto.ProjectUpdateDto:
|
||||||
properties:
|
properties:
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
customerId:
|
customerId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
name:
|
name:
|
||||||
example: Time Tracking App
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.TimeEntryCreateDto:
|
dto.TimeEntryCreateDto:
|
||||||
properties:
|
properties:
|
||||||
activityId:
|
activityId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
billable:
|
billable:
|
||||||
description: Percentage (0-100)
|
description: Percentage (0-100)
|
||||||
example: 100
|
|
||||||
type: integer
|
type: integer
|
||||||
description:
|
description:
|
||||||
example: Working on the Time Tracking App
|
|
||||||
type: string
|
type: string
|
||||||
end:
|
end:
|
||||||
example: "2024-01-01T17:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
projectId:
|
projectId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
start:
|
start:
|
||||||
example: "2024-01-01T08:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
userId:
|
userId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
type: object
|
type: object
|
||||||
dto.TimeEntryDto:
|
dto.TimeEntryDto:
|
||||||
properties:
|
properties:
|
||||||
activityId:
|
activityId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
billable:
|
billable:
|
||||||
description: Percentage (0-100)
|
description: Percentage (0-100)
|
||||||
example: 100
|
|
||||||
type: integer
|
type: integer
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
description:
|
description:
|
||||||
example: Working on the Time Tracking App
|
|
||||||
type: string
|
type: string
|
||||||
end:
|
end:
|
||||||
example: "2024-01-01T17:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
projectId:
|
projectId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
start:
|
start:
|
||||||
example: "2024-01-01T08:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
userId:
|
userId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
type: object
|
type: object
|
||||||
dto.TimeEntryUpdateDto:
|
dto.TimeEntryUpdateDto:
|
||||||
properties:
|
properties:
|
||||||
activityId:
|
activityId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
billable:
|
billable:
|
||||||
description: Percentage (0-100)
|
description: Percentage (0-100)
|
||||||
example: 100
|
|
||||||
type: integer
|
type: integer
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
description:
|
description:
|
||||||
example: Working on the Time Tracking App
|
|
||||||
type: string
|
type: string
|
||||||
end:
|
end:
|
||||||
example: "2024-01-01T17:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
projectId:
|
projectId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
start:
|
start:
|
||||||
example: "2024-01-01T08:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
userId:
|
userId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
type: object
|
type: object
|
||||||
dto.TokenDto:
|
dto.TokenDto:
|
||||||
properties:
|
properties:
|
||||||
token:
|
token:
|
||||||
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
|
|
||||||
type: string
|
type: string
|
||||||
user:
|
user:
|
||||||
$ref: '#/definitions/dto.UserDto'
|
$ref: '#/definitions/dto.UserDto'
|
||||||
@ -314,76 +229,54 @@ definitions:
|
|||||||
dto.UserCreateDto:
|
dto.UserCreateDto:
|
||||||
properties:
|
properties:
|
||||||
companyId:
|
companyId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
email:
|
email:
|
||||||
example: test@example.com
|
|
||||||
type: string
|
type: string
|
||||||
hourlyRate:
|
hourlyRate:
|
||||||
example: 50
|
|
||||||
type: number
|
type: number
|
||||||
password:
|
password:
|
||||||
example: password123
|
|
||||||
type: string
|
type: string
|
||||||
role:
|
role:
|
||||||
example: admin
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.UserDto:
|
dto.UserDto:
|
||||||
properties:
|
properties:
|
||||||
companyId:
|
companyId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
email:
|
email:
|
||||||
example: test@example.com
|
|
||||||
type: string
|
type: string
|
||||||
hourlyRate:
|
hourlyRate:
|
||||||
example: 50
|
|
||||||
type: number
|
type: number
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
role:
|
role:
|
||||||
example: admin
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
dto.UserUpdateDto:
|
dto.UserUpdateDto:
|
||||||
properties:
|
properties:
|
||||||
companyId:
|
companyId:
|
||||||
example: 01HGW2BBG0000000000000000
|
type: integer
|
||||||
type: string
|
|
||||||
createdAt:
|
createdAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
email:
|
email:
|
||||||
example: test@example.com
|
|
||||||
type: string
|
type: string
|
||||||
hourlyRate:
|
hourlyRate:
|
||||||
example: 50
|
|
||||||
type: number
|
type: number
|
||||||
id:
|
id:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
lastEditorID:
|
lastEditorID:
|
||||||
example: 01HGW2BBG0000000000000000
|
|
||||||
type: string
|
type: string
|
||||||
password:
|
password:
|
||||||
example: password123
|
|
||||||
type: string
|
type: string
|
||||||
role:
|
role:
|
||||||
example: admin
|
|
||||||
type: string
|
type: string
|
||||||
updatedAt:
|
updatedAt:
|
||||||
example: "2024-01-01T00:00:00Z"
|
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
utils.ErrorInfo:
|
utils.ErrorInfo:
|
||||||
|
@ -5,24 +5,24 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type ActivityDto struct {
|
type ActivityDto struct {
|
||||||
ID string `json:"id" example:"a1b2c3d4e5f6"`
|
ID string `json:"id"`
|
||||||
CreatedAt time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
UpdatedAt time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt time.Time `json:"updatedAt"`
|
||||||
LastEditorID string `json:"lastEditorID" example:"u1v2w3x4y5z6"`
|
LastEditorID string `json:"lastEditorID"`
|
||||||
Name string `json:"name" example:"Development"`
|
Name string `json:"name"`
|
||||||
BillingRate float64 `json:"billingRate" example:"100.00"`
|
BillingRate float64 `json:"billingRate"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ActivityCreateDto struct {
|
type ActivityCreateDto struct {
|
||||||
Name string `json:"name" example:"Development"`
|
Name string `json:"name"`
|
||||||
BillingRate float64 `json:"billingRate" example:"100.00"`
|
BillingRate float64 `json:"billingRate"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ActivityUpdateDto struct {
|
type ActivityUpdateDto struct {
|
||||||
ID string `json:"id" example:"a1b2c3d4e5f6"`
|
ID string `json:"id"`
|
||||||
CreatedAt *time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt *time.Time `json:"createdAt"`
|
||||||
UpdatedAt *time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt *time.Time `json:"updatedAt"`
|
||||||
LastEditorID *string `json:"lastEditorID" example:"u1v2w3x4y5z6"`
|
LastEditorID *string `json:"lastEditorID"`
|
||||||
Name *string `json:"name" example:"Development"`
|
Name *string `json:"name"`
|
||||||
BillingRate *float64 `json:"billingRate" example:"100.00"`
|
BillingRate *float64 `json:"billingRate"`
|
||||||
}
|
}
|
||||||
|
@ -2,12 +2,12 @@ package dto
|
|||||||
|
|
||||||
// LoginDto represents the login request
|
// LoginDto represents the login request
|
||||||
type LoginDto struct {
|
type LoginDto struct {
|
||||||
Email string `json:"email" example:"admin@example.com"`
|
Email string `json:"email"`
|
||||||
Password string `json:"password" example:"Admin@123456"`
|
Password string `json:"password"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// TokenDto represents the response after successful authentication
|
// TokenDto represents the response after successful authentication
|
||||||
type TokenDto struct {
|
type TokenDto struct {
|
||||||
Token string `json:"token" example:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"`
|
Token string `json:"token"`
|
||||||
User UserDto `json:"user"`
|
User UserDto `json:"user"`
|
||||||
}
|
}
|
||||||
|
@ -5,21 +5,21 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type CompanyDto struct {
|
type CompanyDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
UpdatedAt time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt time.Time `json:"updatedAt"`
|
||||||
LastEditorID string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID string `json:"lastEditorID"`
|
||||||
Name string `json:"name" example:"Acme Corp"`
|
Name string `json:"name"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CompanyCreateDto struct {
|
type CompanyCreateDto struct {
|
||||||
Name string `json:"name" example:"Acme Corp"`
|
Name string `json:"name"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CompanyUpdateDto struct {
|
type CompanyUpdateDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt *time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt *time.Time `json:"createdAt"`
|
||||||
UpdatedAt *time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt *time.Time `json:"updatedAt"`
|
||||||
LastEditorID *string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID *string `json:"lastEditorID"`
|
||||||
Name *string `json:"name" example:"Acme Corp"`
|
Name *string `json:"name"`
|
||||||
}
|
}
|
||||||
|
@ -5,24 +5,24 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type CustomerDto struct {
|
type CustomerDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
UpdatedAt time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt time.Time `json:"updatedAt"`
|
||||||
LastEditorID string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID string `json:"lastEditorID"`
|
||||||
Name string `json:"name" example:"John Doe"`
|
Name string `json:"name"`
|
||||||
CompanyID string `json:"companyId" example:"01HGW2BBG0000000000000000"`
|
CompanyID string `json:"companyId"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CustomerCreateDto struct {
|
type CustomerCreateDto struct {
|
||||||
Name string `json:"name" example:"John Doe"`
|
Name string `json:"name"`
|
||||||
CompanyID string `json:"companyId" example:"01HGW2BBG0000000000000000"`
|
CompanyID string `json:"companyId"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CustomerUpdateDto struct {
|
type CustomerUpdateDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt *time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt *time.Time `json:"createdAt"`
|
||||||
UpdatedAt *time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt *time.Time `json:"updatedAt"`
|
||||||
LastEditorID *string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID *string `json:"lastEditorID"`
|
||||||
Name *string `json:"name" example:"John Doe"`
|
Name *string `json:"name"`
|
||||||
CompanyID *string `json:"companyId" example:"01HGW2BBG0000000000000000"`
|
CompanyID *string `json:"companyId"`
|
||||||
}
|
}
|
||||||
|
@ -5,24 +5,24 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type ProjectDto struct {
|
type ProjectDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
UpdatedAt time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt time.Time `json:"updatedAt"`
|
||||||
LastEditorID string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID string `json:"lastEditorID"`
|
||||||
Name string `json:"name" example:"Time Tracking App"`
|
Name string `json:"name"`
|
||||||
CustomerID string `json:"customerId" example:"01HGW2BBG0000000000000000"`
|
CustomerID string `json:"customerId"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProjectCreateDto struct {
|
type ProjectCreateDto struct {
|
||||||
Name string `json:"name" example:"Time Tracking App"`
|
Name string `json:"name"`
|
||||||
CustomerID string `json:"customerId" example:"01HGW2BBG0000000000000000"`
|
CustomerID string `json:"customerId"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProjectUpdateDto struct {
|
type ProjectUpdateDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt *time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt *time.Time `json:"createdAt"`
|
||||||
UpdatedAt *time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt *time.Time `json:"updatedAt"`
|
||||||
LastEditorID *string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID *string `json:"lastEditorID"`
|
||||||
Name *string `json:"name" example:"Time Tracking App"`
|
Name *string `json:"name"`
|
||||||
CustomerID *string `json:"customerId" example:"01HGW2BBG0000000000000000"`
|
CustomerID *string `json:"customerId"`
|
||||||
}
|
}
|
||||||
|
@ -5,39 +5,39 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type TimeEntryDto struct {
|
type TimeEntryDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
UpdatedAt time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt time.Time `json:"updatedAt"`
|
||||||
LastEditorID string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID string `json:"lastEditorID"`
|
||||||
UserID string `json:"userId" example:"01HGW2BBG0000000000000000"`
|
UserID string `json:"userId"`
|
||||||
ProjectID string `json:"projectId" example:"01HGW2BBG0000000000000000"`
|
ProjectID string `json:"projectId"`
|
||||||
ActivityID string `json:"activityId" example:"01HGW2BBG0000000000000000"`
|
ActivityID string `json:"activityId"`
|
||||||
Start time.Time `json:"start" example:"2024-01-01T08:00:00Z"`
|
Start time.Time `json:"start"`
|
||||||
End time.Time `json:"end" example:"2024-01-01T17:00:00Z"`
|
End time.Time `json:"end"`
|
||||||
Description string `json:"description" example:"Working on the Time Tracking App"`
|
Description string `json:"description"`
|
||||||
Billable int `json:"billable" example:"100"` // Percentage (0-100)
|
Billable int `json:"billable"` // Percentage (0-100)
|
||||||
}
|
}
|
||||||
|
|
||||||
type TimeEntryCreateDto struct {
|
type TimeEntryCreateDto struct {
|
||||||
UserID string `json:"userId" example:"01HGW2BBG0000000000000000"`
|
UserID string `json:"userId"`
|
||||||
ProjectID string `json:"projectId" example:"01HGW2BBG0000000000000000"`
|
ProjectID string `json:"projectId"`
|
||||||
ActivityID string `json:"activityId" example:"01HGW2BBG0000000000000000"`
|
ActivityID string `json:"activityId"`
|
||||||
Start time.Time `json:"start" example:"2024-01-01T08:00:00Z"`
|
Start time.Time `json:"start"`
|
||||||
End time.Time `json:"end" example:"2024-01-01T17:00:00Z"`
|
End time.Time `json:"end"`
|
||||||
Description string `json:"description" example:"Working on the Time Tracking App"`
|
Description string `json:"description"`
|
||||||
Billable int `json:"billable" example:"100"` // Percentage (0-100)
|
Billable int `json:"billable"` // Percentage (0-100)
|
||||||
}
|
}
|
||||||
|
|
||||||
type TimeEntryUpdateDto struct {
|
type TimeEntryUpdateDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt *time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt *time.Time `json:"createdAt"`
|
||||||
UpdatedAt *time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt *time.Time `json:"updatedAt"`
|
||||||
LastEditorID *string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID *string `json:"lastEditorID"`
|
||||||
UserID *string `json:"userId" example:"01HGW2BBG0000000000000000"`
|
UserID *string `json:"userId"`
|
||||||
ProjectID *string `json:"projectId" example:"01HGW2BBG0000000000000000"`
|
ProjectID *string `json:"projectId"`
|
||||||
ActivityID *string `json:"activityId" example:"01HGW2BBG0000000000000000"`
|
ActivityID *string `json:"activityId"`
|
||||||
Start *time.Time `json:"start" example:"2024-01-01T08:00:00Z"`
|
Start *time.Time `json:"start"`
|
||||||
End *time.Time `json:"end" example:"2024-01-01T17:00:00Z"`
|
End *time.Time `json:"end"`
|
||||||
Description *string `json:"description" example:"Working on the Time Tracking App"`
|
Description *string `json:"description"`
|
||||||
Billable *int `json:"billable" example:"100"` // Percentage (0-100)
|
Billable *int `json:"billable"` // Percentage (0-100)
|
||||||
}
|
}
|
||||||
|
@ -5,32 +5,32 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type UserDto struct {
|
type UserDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
UpdatedAt time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt time.Time `json:"updatedAt"`
|
||||||
LastEditorID string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID string `json:"lastEditorID"`
|
||||||
Email string `json:"email" example:"test@example.com"`
|
Email string `json:"email"`
|
||||||
Role string `json:"role" example:"admin"`
|
Role string `json:"role"`
|
||||||
CompanyID string `json:"companyId" example:"01HGW2BBG0000000000000000"`
|
CompanyID string `json:"companyId"`
|
||||||
HourlyRate float64 `json:"hourlyRate" example:"50.00"`
|
HourlyRate float64 `json:"hourlyRate"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserCreateDto struct {
|
type UserCreateDto struct {
|
||||||
Email string `json:"email" example:"test@example.com"`
|
Email string `json:"email"`
|
||||||
Password string `json:"password" example:"password123"`
|
Password string `json:"password"`
|
||||||
Role string `json:"role" example:"admin"`
|
Role string `json:"role"`
|
||||||
CompanyID string `json:"companyId" example:"01HGW2BBG0000000000000000"`
|
CompanyID string `json:"companyId"`
|
||||||
HourlyRate float64 `json:"hourlyRate" example:"50.00"`
|
HourlyRate float64 `json:"hourlyRate"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserUpdateDto struct {
|
type UserUpdateDto struct {
|
||||||
ID string `json:"id" example:"01HGW2BBG0000000000000000"`
|
ID string `json:"id"`
|
||||||
CreatedAt *time.Time `json:"createdAt" example:"2024-01-01T00:00:00Z"`
|
CreatedAt *time.Time `json:"createdAt"`
|
||||||
UpdatedAt *time.Time `json:"updatedAt" example:"2024-01-01T00:00:00Z"`
|
UpdatedAt *time.Time `json:"updatedAt"`
|
||||||
LastEditorID *string `json:"lastEditorID" example:"01HGW2BBG0000000000000000"`
|
LastEditorID *string `json:"lastEditorID"`
|
||||||
Email *string `json:"email" example:"test@example.com"`
|
Email *string `json:"email"`
|
||||||
Password *string `json:"password" example:"password123"`
|
Password *string `json:"password"`
|
||||||
Role *string `json:"role" example:"admin"`
|
Role *string `json:"role"`
|
||||||
CompanyID *string `json:"companyId" example:"01HGW2BBG0000000000000000"`
|
CompanyID *string `json:"companyId"`
|
||||||
HourlyRate *float64 `json:"hourlyRate" example:"50.00"`
|
HourlyRate *float64 `json:"hourlyRate"`
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
packages:
|
packages:
|
||||||
- path: github.com/timetracker/backend/internal/dtos
|
- path: github.com/timetracker/backend/dto
|
||||||
type_mappings:
|
type_mappings:
|
||||||
"time.Time": "string"
|
"time.Time": "string"
|
||||||
"ulid.ULID": "string"
|
"ulid.ULID": "string"
|
17
docu/deployment_devops.md
Normal file
17
docu/deployment_devops.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Deployment and DevOps
|
||||||
|
|
||||||
|
## Containerization
|
||||||
|
- Docker containers for backend and frontend
|
||||||
|
- Docker Compose for development environment
|
||||||
|
- Kubernetes manifests for production environment
|
||||||
|
|
||||||
|
## CI/CD Pipeline
|
||||||
|
- Automated tests (Unit, Integration, E2E)
|
||||||
|
- Automated deployment
|
||||||
|
- Version management
|
||||||
|
|
||||||
|
## Monitoring and Logging
|
||||||
|
- Prometheus for metrics
|
||||||
|
- Grafana for visualization
|
||||||
|
- ELK Stack or similar for logging
|
||||||
|
- Alerting for critical events
|
@ -24,24 +24,6 @@ export interface ActivityUpdateDto {
|
|||||||
billingRate?: number /* float64 */;
|
billingRate?: number /* float64 */;
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////
|
|
||||||
// source: auth_dto.go
|
|
||||||
|
|
||||||
/**
|
|
||||||
* LoginDto represents the login request
|
|
||||||
*/
|
|
||||||
export interface LoginDto {
|
|
||||||
email: string;
|
|
||||||
password: string;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* TokenDto represents the response after successful authentication
|
|
||||||
*/
|
|
||||||
export interface TokenDto {
|
|
||||||
token: string;
|
|
||||||
user: UserDto;
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////
|
//////////
|
||||||
// source: company_dto.go
|
// source: company_dto.go
|
||||||
|
|
||||||
@ -72,11 +54,11 @@ export interface CustomerDto {
|
|||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
lastEditorID: string;
|
lastEditorID: string;
|
||||||
name: string;
|
name: string;
|
||||||
companyId: string;
|
companyId: number /* int */;
|
||||||
}
|
}
|
||||||
export interface CustomerCreateDto {
|
export interface CustomerCreateDto {
|
||||||
name: string;
|
name: string;
|
||||||
companyId: string;
|
companyId: number /* int */;
|
||||||
}
|
}
|
||||||
export interface CustomerUpdateDto {
|
export interface CustomerUpdateDto {
|
||||||
id: string;
|
id: string;
|
||||||
@ -84,7 +66,7 @@ export interface CustomerUpdateDto {
|
|||||||
updatedAt?: string;
|
updatedAt?: string;
|
||||||
lastEditorID?: string;
|
lastEditorID?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
companyId?: string;
|
companyId?: number /* int */;
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////
|
//////////
|
||||||
@ -96,11 +78,11 @@ export interface ProjectDto {
|
|||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
lastEditorID: string;
|
lastEditorID: string;
|
||||||
name: string;
|
name: string;
|
||||||
customerId: string;
|
customerId: number /* int */;
|
||||||
}
|
}
|
||||||
export interface ProjectCreateDto {
|
export interface ProjectCreateDto {
|
||||||
name: string;
|
name: string;
|
||||||
customerId: string;
|
customerId: number /* int */;
|
||||||
}
|
}
|
||||||
export interface ProjectUpdateDto {
|
export interface ProjectUpdateDto {
|
||||||
id: string;
|
id: string;
|
||||||
@ -108,7 +90,7 @@ export interface ProjectUpdateDto {
|
|||||||
updatedAt?: string;
|
updatedAt?: string;
|
||||||
lastEditorID?: string;
|
lastEditorID?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
customerId?: string;
|
customerId?: number /* int */;
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////
|
//////////
|
||||||
@ -119,18 +101,18 @@ export interface TimeEntryDto {
|
|||||||
createdAt: string;
|
createdAt: string;
|
||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
lastEditorID: string;
|
lastEditorID: string;
|
||||||
userId: string;
|
userId: number /* int */;
|
||||||
projectId: string;
|
projectId: number /* int */;
|
||||||
activityId: string;
|
activityId: number /* int */;
|
||||||
start: string;
|
start: string;
|
||||||
end: string;
|
end: string;
|
||||||
description: string;
|
description: string;
|
||||||
billable: number /* int */; // Percentage (0-100)
|
billable: number /* int */; // Percentage (0-100)
|
||||||
}
|
}
|
||||||
export interface TimeEntryCreateDto {
|
export interface TimeEntryCreateDto {
|
||||||
userId: string;
|
userId: number /* int */;
|
||||||
projectId: string;
|
projectId: number /* int */;
|
||||||
activityId: string;
|
activityId: number /* int */;
|
||||||
start: string;
|
start: string;
|
||||||
end: string;
|
end: string;
|
||||||
description: string;
|
description: string;
|
||||||
@ -141,9 +123,9 @@ export interface TimeEntryUpdateDto {
|
|||||||
createdAt?: string;
|
createdAt?: string;
|
||||||
updatedAt?: string;
|
updatedAt?: string;
|
||||||
lastEditorID?: string;
|
lastEditorID?: string;
|
||||||
userId?: string;
|
userId?: number /* int */;
|
||||||
projectId?: string;
|
projectId?: number /* int */;
|
||||||
activityId?: string;
|
activityId?: number /* int */;
|
||||||
start?: string;
|
start?: string;
|
||||||
end?: string;
|
end?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
@ -159,15 +141,16 @@ export interface UserDto {
|
|||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
lastEditorID: string;
|
lastEditorID: string;
|
||||||
email: string;
|
email: string;
|
||||||
|
password: string; // Note: In a real application, you would NEVER send the password in a DTO. This is just for demonstration.
|
||||||
role: string;
|
role: string;
|
||||||
companyId: string;
|
companyId: number /* int */;
|
||||||
hourlyRate: number /* float64 */;
|
hourlyRate: number /* float64 */;
|
||||||
}
|
}
|
||||||
export interface UserCreateDto {
|
export interface UserCreateDto {
|
||||||
email: string;
|
email: string;
|
||||||
password: string;
|
password: string; // Note: In a real application, you would NEVER send the password in a DTO. This is just for demonstration.
|
||||||
role: string;
|
role: string;
|
||||||
companyId: string;
|
companyId: number /* int */;
|
||||||
hourlyRate: number /* float64 */;
|
hourlyRate: number /* float64 */;
|
||||||
}
|
}
|
||||||
export interface UserUpdateDto {
|
export interface UserUpdateDto {
|
||||||
@ -176,8 +159,8 @@ export interface UserUpdateDto {
|
|||||||
updatedAt?: string;
|
updatedAt?: string;
|
||||||
lastEditorID?: string;
|
lastEditorID?: string;
|
||||||
email?: string;
|
email?: string;
|
||||||
password?: string;
|
password?: string; // Note: In a real application, you would NEVER send the password in a DTO. This is just for demonstration.
|
||||||
role?: string;
|
role?: string;
|
||||||
companyId?: string;
|
companyId?: number /* int */;
|
||||||
hourlyRate?: number /* float64 */;
|
hourlyRate?: number /* float64 */;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user