diff --git a/docs/docs.go b/docs/docs.go index 31d4529..44ca8fa 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -42,6 +42,33 @@ const docTemplate = `{ "responses": {} } }, + "/certificates": { + "post": { + "description": "Generate certificates based on the provided data", + "consumes": [ + "application/json" + ], + "produces": [ + "application/pdf" + ], + "tags": [ + "certificates" + ], + "summary": "Generate runner certificates", + "parameters": [ + { + "description": "Certificate data", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/models.CertificateRequest" + } + } + ], + "responses": {} + } + }, "/contracts": { "post": { "description": "Generate a contract based on the provided data", @@ -106,6 +133,24 @@ const docTemplate = `{ } } }, + "models.CertificateRequest": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "enum": [ + "en", + "de" + ] + }, + "runners": { + "type": "array", + "items": { + "$ref": "#/definitions/models.RunnerWithDonations" + } + } + } + }, "models.ContractRequest": { "type": "object", "properties": { @@ -124,6 +169,43 @@ const docTemplate = `{ } } }, + "models.DistanceDonation": { + "type": "object", + "properties": { + "amount": { + "type": "integer" + }, + "amount_per_distance": { + "type": "integer" + }, + "donor": { + "$ref": "#/definitions/models.Donor" + }, + "id": { + "type": "integer" + }, + "paid_amount": { + "type": "integer" + } + } + }, + "models.Donor": { + "type": "object", + "properties": { + "first_name": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "last_name": { + "type": "string" + }, + "middle_name": { + "type": "string" + } + } + }, "models.Group": { "type": "object", "properties": { @@ -157,6 +239,41 @@ const docTemplate = `{ "type": "string" } } + }, + "models.RunnerWithDonations": { + "type": "object", + "properties": { + "distance": { + "type": "integer" + }, + "distance_donations": { + "type": "array", + "items": { + "$ref": "#/definitions/models.DistanceDonation" + } + }, + "first_name": { + "type": "string" + }, + "group": { + "$ref": "#/definitions/models.Group" + }, + "id": { + "type": "integer" + }, + "last_name": { + "type": "string" + }, + "middle_name": { + "type": "string" + }, + "total_donations": { + "type": "integer" + }, + "total_per_distance": { + "type": "integer" + } + } } } }` diff --git a/docs/swagger.json b/docs/swagger.json index bf54e83..0402190 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -33,6 +33,33 @@ "responses": {} } }, + "/certificates": { + "post": { + "description": "Generate certificates based on the provided data", + "consumes": [ + "application/json" + ], + "produces": [ + "application/pdf" + ], + "tags": [ + "certificates" + ], + "summary": "Generate runner certificates", + "parameters": [ + { + "description": "Certificate data", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/models.CertificateRequest" + } + } + ], + "responses": {} + } + }, "/contracts": { "post": { "description": "Generate a contract based on the provided data", @@ -97,6 +124,24 @@ } } }, + "models.CertificateRequest": { + "type": "object", + "properties": { + "locale": { + "type": "string", + "enum": [ + "en", + "de" + ] + }, + "runners": { + "type": "array", + "items": { + "$ref": "#/definitions/models.RunnerWithDonations" + } + } + } + }, "models.ContractRequest": { "type": "object", "properties": { @@ -115,6 +160,43 @@ } } }, + "models.DistanceDonation": { + "type": "object", + "properties": { + "amount": { + "type": "integer" + }, + "amount_per_distance": { + "type": "integer" + }, + "donor": { + "$ref": "#/definitions/models.Donor" + }, + "id": { + "type": "integer" + }, + "paid_amount": { + "type": "integer" + } + } + }, + "models.Donor": { + "type": "object", + "properties": { + "first_name": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "last_name": { + "type": "string" + }, + "middle_name": { + "type": "string" + } + } + }, "models.Group": { "type": "object", "properties": { @@ -148,6 +230,41 @@ "type": "string" } } + }, + "models.RunnerWithDonations": { + "type": "object", + "properties": { + "distance": { + "type": "integer" + }, + "distance_donations": { + "type": "array", + "items": { + "$ref": "#/definitions/models.DistanceDonation" + } + }, + "first_name": { + "type": "string" + }, + "group": { + "$ref": "#/definitions/models.Group" + }, + "id": { + "type": "integer" + }, + "last_name": { + "type": "string" + }, + "middle_name": { + "type": "string" + }, + "total_donations": { + "type": "integer" + }, + "total_per_distance": { + "type": "integer" + } + } } } } \ No newline at end of file diff --git a/docs/swagger.yaml b/docs/swagger.yaml index bb39e12..8e7b232 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -22,6 +22,18 @@ definitions: - de type: string type: object + models.CertificateRequest: + properties: + locale: + enum: + - en + - de + type: string + runners: + items: + $ref: '#/definitions/models.RunnerWithDonations' + type: array + type: object models.ContractRequest: properties: locale: @@ -34,6 +46,30 @@ definitions: $ref: '#/definitions/models.Runner' type: array type: object + models.DistanceDonation: + properties: + amount: + type: integer + amount_per_distance: + type: integer + donor: + $ref: '#/definitions/models.Donor' + id: + type: integer + paid_amount: + type: integer + type: object + models.Donor: + properties: + first_name: + type: string + id: + type: integer + last_name: + type: string + middle_name: + type: string + type: object models.Group: properties: id: @@ -56,6 +92,29 @@ definitions: middle_name: type: string type: object + models.RunnerWithDonations: + properties: + distance: + type: integer + distance_donations: + items: + $ref: '#/definitions/models.DistanceDonation' + type: array + first_name: + type: string + group: + $ref: '#/definitions/models.Group' + id: + type: integer + last_name: + type: string + middle_name: + type: string + total_donations: + type: integer + total_per_distance: + type: integer + type: object info: contact: {} description: This is the API documentation for the LfK Document Server - a tool @@ -80,6 +139,24 @@ paths: summary: Generate runner cards tags: - cards + /certificates: + post: + consumes: + - application/json + description: Generate certificates based on the provided data + parameters: + - description: Certificate data + in: body + name: data + required: true + schema: + $ref: '#/definitions/models.CertificateRequest' + produces: + - application/pdf + responses: {} + summary: Generate runner certificates + tags: + - certificates /contracts: post: consumes: