Files
atahango/docs/docs.go
Beyhan Oğur bbbf76b184 first commit
2026-04-26 21:35:24 +03:00

9323 lines
305 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs
import "github.com/swaggo/swag"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"contact": {},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/about": {
"get": {
"description": "Retrieve a list of active about entries",
"produces": [
"application/json"
],
"tags": [
"about"
],
"summary": "Get all active about entries",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.About"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/about/active": {
"get": {
"description": "Retrieve the newest active about entry",
"produces": [
"application/json"
],
"tags": [
"about"
],
"summary": "Get active about entry",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.About"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/about": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all about entries including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all about entries (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.About"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new about entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new about entry (Admin)",
"parameters": [
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData",
"required": true
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData"
},
{
"type": "string",
"description": "Image subtitle",
"name": "image_sub",
"in": "formData"
},
{
"type": "file",
"description": "CV file",
"name": "cv",
"in": "formData"
},
{
"type": "string",
"description": "Birthday",
"name": "birthday",
"in": "formData"
},
{
"type": "string",
"description": "City",
"name": "city",
"in": "formData"
},
{
"type": "string",
"description": "Study",
"name": "study",
"in": "formData"
},
{
"type": "string",
"description": "Website",
"name": "website",
"in": "formData"
},
{
"type": "string",
"description": "Phone",
"name": "phone",
"in": "formData"
},
{
"type": "string",
"description": "Age",
"name": "age",
"in": "formData"
},
{
"type": "string",
"description": "Interests",
"name": "interests",
"in": "formData"
},
{
"type": "string",
"description": "Degree",
"name": "degree",
"in": "formData"
},
{
"type": "string",
"description": "X",
"name": "x",
"in": "formData"
},
{
"type": "string",
"description": "Mail",
"name": "mail",
"in": "formData"
},
{
"type": "integer",
"description": "Done",
"name": "done",
"in": "formData"
},
{
"type": "string",
"description": "Project done",
"name": "project_done",
"in": "formData"
},
{
"type": "integer",
"description": "User count",
"name": "user_h",
"in": "formData"
},
{
"type": "string",
"description": "Happy user",
"name": "hapy_user",
"in": "formData"
},
{
"type": "integer",
"description": "Great",
"name": "great",
"in": "formData"
},
{
"type": "string",
"description": "Great reviews",
"name": "great_reviews",
"in": "formData"
},
{
"type": "integer",
"description": "Team",
"name": "team",
"in": "formData"
},
{
"type": "string",
"description": "Support team",
"name": "support_team",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
},
{
"type": "boolean",
"description": "Counter active",
"name": "counter_active",
"in": "formData"
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.About"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/about/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific about entry",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get an about entry by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "About ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.About"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing about entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update an about entry (Admin)",
"parameters": [
{
"type": "string",
"description": "About ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData"
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData"
},
{
"type": "string",
"description": "Image subtitle",
"name": "image_sub",
"in": "formData"
},
{
"type": "file",
"description": "CV file",
"name": "cv",
"in": "formData"
},
{
"type": "string",
"description": "Birthday",
"name": "birthday",
"in": "formData"
},
{
"type": "string",
"description": "City",
"name": "city",
"in": "formData"
},
{
"type": "string",
"description": "Study",
"name": "study",
"in": "formData"
},
{
"type": "string",
"description": "Website",
"name": "website",
"in": "formData"
},
{
"type": "string",
"description": "Phone",
"name": "phone",
"in": "formData"
},
{
"type": "string",
"description": "Age",
"name": "age",
"in": "formData"
},
{
"type": "string",
"description": "Interests",
"name": "interests",
"in": "formData"
},
{
"type": "string",
"description": "Degree",
"name": "degree",
"in": "formData"
},
{
"type": "string",
"description": "X",
"name": "x",
"in": "formData"
},
{
"type": "string",
"description": "Mail",
"name": "mail",
"in": "formData"
},
{
"type": "integer",
"description": "Done",
"name": "done",
"in": "formData"
},
{
"type": "string",
"description": "Project done",
"name": "project_done",
"in": "formData"
},
{
"type": "integer",
"description": "User count",
"name": "user_h",
"in": "formData"
},
{
"type": "string",
"description": "Happy user",
"name": "hapy_user",
"in": "formData"
},
{
"type": "integer",
"description": "Great",
"name": "great",
"in": "formData"
},
{
"type": "string",
"description": "Great reviews",
"name": "great_reviews",
"in": "formData"
},
{
"type": "integer",
"description": "Team",
"name": "team",
"in": "formData"
},
{
"type": "string",
"description": "Support team",
"name": "support_team",
"in": "formData"
},
{
"type": "string",
"description": "Slug",
"name": "slug",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
},
{
"type": "boolean",
"description": "Counter active",
"name": "counter_active",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.About"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete an about entry by ID",
"tags": [
"admin"
],
"summary": "Delete an about entry (Admin)",
"parameters": [
{
"type": "string",
"description": "About ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/banners": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all banners including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all banners (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Banner"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new banner entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new banner (Admin)",
"parameters": [
{
"type": "string",
"description": "Text color",
"name": "color",
"in": "formData"
},
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData"
},
{
"type": "string",
"description": "Text 1",
"name": "text1",
"in": "formData"
},
{
"type": "string",
"description": "Text 2",
"name": "text2",
"in": "formData"
},
{
"type": "string",
"description": "Text 4",
"name": "text4",
"in": "formData"
},
{
"type": "string",
"description": "Text 5",
"name": "text5",
"in": "formData"
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData",
"required": true
},
{
"type": "file",
"description": "Small image",
"name": "image_k",
"in": "formData"
},
{
"type": "string",
"description": "Small image text",
"name": "image_k_txt",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Banner"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/banners/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific banner",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get banner by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Banner ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Banner"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing banner entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a banner (Admin)",
"parameters": [
{
"type": "string",
"description": "Banner ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Text color",
"name": "color",
"in": "formData"
},
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData"
},
{
"type": "string",
"description": "Text 1",
"name": "text1",
"in": "formData"
},
{
"type": "string",
"description": "Text 2",
"name": "text2",
"in": "formData"
},
{
"type": "string",
"description": "Text 4",
"name": "text4",
"in": "formData"
},
{
"type": "string",
"description": "Text 5",
"name": "text5",
"in": "formData"
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData"
},
{
"type": "file",
"description": "Small image",
"name": "image_k",
"in": "formData"
},
{
"type": "string",
"description": "Small image text",
"name": "image_k_txt",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Banner"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a banner by ID",
"tags": [
"admin"
],
"summary": "Delete a banner (Admin)",
"parameters": [
{
"type": "string",
"description": "Banner ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/contacts": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all contact messages with pagination",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all contact messages (Admin)",
"parameters": [
{
"type": "integer",
"description": "Page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "Items per page",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/contacts/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific contact message",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a contact message by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Contact ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Contact"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a contact message by ID",
"tags": [
"admin"
],
"summary": "Delete a contact message (Admin)",
"parameters": [
{
"type": "string",
"description": "Contact ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/educations": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all education entries including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all educations (Admin)",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "resume_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Education"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new education entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new education (Admin)",
"parameters": [
{
"description": "Education Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreateEducationRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Education"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/educations/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific education entry",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get an education by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Education ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Education"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing education entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update an education (Admin)",
"parameters": [
{
"type": "string",
"description": "Education ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Education Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.UpdateEducationRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Education"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete an education by ID",
"tags": [
"admin"
],
"summary": "Delete an education (Admin)",
"parameters": [
{
"type": "string",
"description": "Education ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/experiences": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all experience entries including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all experiences (Admin)",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "resume_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Experience"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new experience entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new experience (Admin)",
"parameters": [
{
"description": "Experience Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreateExperienceRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Experience"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/experiences/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific experience entry",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get an experience by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Experience ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Experience"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing experience entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update an experience (Admin)",
"parameters": [
{
"type": "string",
"description": "Experience ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Experience Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.UpdateExperienceRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Experience"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete an experience by ID",
"tags": [
"admin"
],
"summary": "Delete an experience (Admin)",
"parameters": [
{
"type": "string",
"description": "Experience ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/homes": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all homes including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all homes (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Home"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new home entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new home (Admin)",
"parameters": [
{
"type": "string",
"description": "Name",
"name": "name",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Button 1",
"name": "button1",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Button 2",
"name": "button2",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Video URL",
"name": "video",
"in": "formData"
},
{
"type": "string",
"description": "Keywords",
"name": "keywords",
"in": "formData",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Tag IDs",
"name": "tag_ids",
"in": "formData"
},
{
"type": "file",
"description": "Home image",
"name": "image",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Home"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/homes/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific home",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a home by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Home ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Home"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing home entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a home (Admin)",
"parameters": [
{
"type": "string",
"description": "Home ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Name",
"name": "name",
"in": "formData"
},
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData"
},
{
"type": "string",
"description": "Button 1",
"name": "button1",
"in": "formData"
},
{
"type": "string",
"description": "Button 2",
"name": "button2",
"in": "formData"
},
{
"type": "string",
"description": "Video URL",
"name": "video",
"in": "formData"
},
{
"type": "string",
"description": "Keywords",
"name": "keywords",
"in": "formData"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Tag IDs",
"name": "tag_ids",
"in": "formData"
},
{
"type": "file",
"description": "Home image",
"name": "image",
"in": "formData"
},
{
"type": "string",
"description": "Slug",
"name": "slug",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Home"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a home by ID",
"tags": [
"admin"
],
"summary": "Delete a home (Admin)",
"parameters": [
{
"type": "string",
"description": "Home ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/homes/{id}/image": {
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Upload an image for a specific home entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Upload home image (Admin)",
"parameters": [
{
"type": "string",
"description": "Home ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "file",
"description": "Home image",
"name": "image",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/knowledges": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all knowledge entries including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all knowledges (Admin)",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "resume_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Knowledge"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new knowledge entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new knowledge (Admin)",
"parameters": [
{
"description": "Knowledge Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreateKnowledgeRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Knowledge"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/knowledges/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific knowledge entry",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a knowledge by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Knowledge ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Knowledge"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing knowledge entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a knowledge (Admin)",
"parameters": [
{
"type": "string",
"description": "Knowledge ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Knowledge Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.UpdateKnowledgeRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Knowledge"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a knowledge by ID",
"tags": [
"admin"
],
"summary": "Delete a knowledge (Admin)",
"parameters": [
{
"type": "string",
"description": "Knowledge ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/main-menu": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all main menu entries including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all main menus (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.MainMenu"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new main menu entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new main menu (Admin)",
"parameters": [
{
"description": "Main Menu Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreateMainMenuRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.MainMenu"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/main-menu/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific main menu entry",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a main menu by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Main Menu ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.MainMenu"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing main menu entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a main menu (Admin)",
"parameters": [
{
"type": "string",
"description": "Main Menu ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Main Menu Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.UpdateMainMenuRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.MainMenu"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a main menu by ID",
"tags": [
"admin"
],
"summary": "Delete a main menu (Admin)",
"parameters": [
{
"type": "string",
"description": "Main Menu ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/post-categories": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all post categories including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all post categories (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostCategory"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new post category",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a post category (Admin)",
"parameters": [
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Keywords",
"name": "keywords",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Description",
"name": "description",
"in": "formData",
"required": true
},
{
"type": "integer",
"description": "Order",
"name": "order",
"in": "formData"
},
{
"type": "string",
"description": "Parent ID",
"name": "parent_id",
"in": "formData"
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.PostCategory"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/post-categories/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a post category by ID",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get post category by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Category ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.PostCategory"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing post category",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a post category (Admin)",
"parameters": [
{
"type": "string",
"description": "Category ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData"
},
{
"type": "string",
"description": "Keywords",
"name": "keywords",
"in": "formData"
},
{
"type": "string",
"description": "Description",
"name": "description",
"in": "formData"
},
{
"type": "integer",
"description": "Order",
"name": "order",
"in": "formData"
},
{
"type": "string",
"description": "Parent ID",
"name": "parent_id",
"in": "formData"
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData"
},
{
"type": "string",
"description": "Slug",
"name": "slug",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.PostCategory"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a post category by ID",
"tags": [
"admin"
],
"summary": "Delete a post category (Admin)",
"parameters": [
{
"type": "string",
"description": "Category ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/post-category-views": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve views for a category",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get post category views (Admin)",
"parameters": [
{
"type": "string",
"description": "Category ID",
"name": "category_id",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostCategoryView"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/post-comments": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve comments with optional post filter",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all post comments (Admin)",
"parameters": [
{
"type": "string",
"description": "Post ID",
"name": "post_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostComment"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/post-comments/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a post comment by ID",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get post comment by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Comment ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.PostComment"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing post comment",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a post comment (Admin)",
"parameters": [
{
"type": "string",
"description": "Comment ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Comment Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.UpdatePostCommentRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.PostComment"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a post comment by ID",
"tags": [
"admin"
],
"summary": "Delete a post comment (Admin)",
"parameters": [
{
"type": "string",
"description": "Comment ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/post-tags": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all post tags including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all post tags (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostTag"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new post tag",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a post tag (Admin)",
"parameters": [
{
"description": "Post Tag Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreatePostTagRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.PostTag"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/post-tags/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific post tag",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a post tag by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Post Tag ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.PostTag"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing post tag",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a post tag (Admin)",
"parameters": [
{
"type": "string",
"description": "Post Tag ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Post Tag Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.UpdatePostTagRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.PostTag"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a post tag by ID",
"tags": [
"admin"
],
"summary": "Delete a post tag (Admin)",
"parameters": [
{
"type": "string",
"description": "Post Tag ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/posts": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all posts including inactive ones with pagination",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all posts (Admin)",
"parameters": [
{
"type": "integer",
"default": 1,
"description": "Page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "Items per page",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new post",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a post (Admin)",
"parameters": [
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Content",
"name": "content",
"in": "formData"
},
{
"type": "string",
"description": "Keywords",
"name": "keywords",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Video",
"name": "video",
"in": "formData"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Category IDs",
"name": "category_ids",
"in": "formData"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Tag IDs",
"name": "tag_ids",
"in": "formData"
},
{
"type": "string",
"description": "Parent ID",
"name": "parent_id",
"in": "formData"
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
},
{
"type": "boolean",
"description": "Is front",
"name": "is_front",
"in": "formData"
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Post"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/posts/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a post by ID",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get post by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Post ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Post"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing post",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a post (Admin)",
"parameters": [
{
"type": "string",
"description": "Post ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData"
},
{
"type": "string",
"description": "Content",
"name": "content",
"in": "formData"
},
{
"type": "string",
"description": "Keywords",
"name": "keywords",
"in": "formData"
},
{
"type": "string",
"description": "Video",
"name": "video",
"in": "formData"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Category IDs",
"name": "category_ids",
"in": "formData"
},
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "Tag IDs",
"name": "tag_ids",
"in": "formData"
},
{
"type": "string",
"description": "Parent ID",
"name": "parent_id",
"in": "formData"
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData"
},
{
"type": "string",
"description": "Slug",
"name": "slug",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
},
{
"type": "boolean",
"description": "Is front",
"name": "is_front",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Post"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a post by ID",
"tags": [
"admin"
],
"summary": "Delete a post (Admin)",
"parameters": [
{
"type": "string",
"description": "Post ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/resumes": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all resumes including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all resumes (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Resume"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new resume entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new resume (Admin)",
"parameters": [
{
"description": "Resume Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreateResumeRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Resume"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/resumes/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific resume",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a resume by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Resume"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing resume entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a resume (Admin)",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Resume Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.UpdateResumeRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Resume"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a resume by ID",
"tags": [
"admin"
],
"summary": "Delete a resume (Admin)",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/service-titles": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all service titles including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all service titles (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.ServiceTitle"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new service title entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new service title (Admin)",
"parameters": [
{
"description": "Service Title Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.ServiceTitle"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/service-titles/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific service title",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a service title by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Service Title ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.ServiceTitle"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing service title entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a service title (Admin)",
"parameters": [
{
"type": "string",
"description": "Service Title ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Service Title Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.ServiceTitle"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a service title by ID",
"tags": [
"admin"
],
"summary": "Delete a service title (Admin)",
"parameters": [
{
"type": "string",
"description": "Service Title ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/services": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all services including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all services (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Service"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new service entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new service (Admin)",
"parameters": [
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Content",
"name": "content",
"in": "formData"
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Service"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/services/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific service",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a service by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Service ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Service"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing service entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a service (Admin)",
"parameters": [
{
"type": "string",
"description": "Service ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData"
},
{
"type": "string",
"description": "Content",
"name": "content",
"in": "formData"
},
{
"type": "file",
"description": "Image",
"name": "image",
"in": "formData"
},
{
"type": "string",
"description": "Slug",
"name": "slug",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Service"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a service by ID",
"tags": [
"admin"
],
"summary": "Delete a service (Admin)",
"parameters": [
{
"type": "string",
"description": "Service ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/site-info": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all site info entries including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all site info (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Setting"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new site info entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create site info (Admin)",
"parameters": [
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Meta title",
"name": "meta_title",
"in": "formData"
},
{
"type": "string",
"description": "Meta description",
"name": "meta_description",
"in": "formData"
},
{
"type": "string",
"description": "Phone",
"name": "phone",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Site URL",
"name": "url",
"in": "formData"
},
{
"type": "string",
"description": "Email",
"name": "email",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Facebook",
"name": "facebook",
"in": "formData"
},
{
"type": "string",
"description": "X",
"name": "x",
"in": "formData"
},
{
"type": "string",
"description": "Instagram",
"name": "instagram",
"in": "formData"
},
{
"type": "string",
"description": "Whatsapp",
"name": "whatsapp",
"in": "formData"
},
{
"type": "string",
"description": "Pinterest",
"name": "pinterest",
"in": "formData"
},
{
"type": "string",
"description": "LinkedIn",
"name": "linkedin",
"in": "formData"
},
{
"type": "string",
"description": "Slogan",
"name": "slogan",
"in": "formData"
},
{
"type": "file",
"description": "White logo",
"name": "w_logo",
"in": "formData"
},
{
"type": "file",
"description": "Black logo",
"name": "b_logo",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Setting"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/site-info/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific site info entry",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get site info by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Site Info ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Setting"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing site info entry",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update site info (Admin)",
"parameters": [
{
"type": "string",
"description": "Site Info ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Title",
"name": "title",
"in": "formData"
},
{
"type": "string",
"description": "Meta title",
"name": "meta_title",
"in": "formData"
},
{
"type": "string",
"description": "Meta description",
"name": "meta_description",
"in": "formData"
},
{
"type": "string",
"description": "Phone",
"name": "phone",
"in": "formData"
},
{
"type": "string",
"description": "Site URL",
"name": "url",
"in": "formData"
},
{
"type": "string",
"description": "Email",
"name": "email",
"in": "formData"
},
{
"type": "string",
"description": "Facebook",
"name": "facebook",
"in": "formData"
},
{
"type": "string",
"description": "X",
"name": "x",
"in": "formData"
},
{
"type": "string",
"description": "Instagram",
"name": "instagram",
"in": "formData"
},
{
"type": "string",
"description": "Whatsapp",
"name": "whatsapp",
"in": "formData"
},
{
"type": "string",
"description": "Pinterest",
"name": "pinterest",
"in": "formData"
},
{
"type": "string",
"description": "LinkedIn",
"name": "linkedin",
"in": "formData"
},
{
"type": "string",
"description": "Slogan",
"name": "slogan",
"in": "formData"
},
{
"type": "file",
"description": "White logo",
"name": "w_logo",
"in": "formData"
},
{
"type": "file",
"description": "Black logo",
"name": "b_logo",
"in": "formData"
},
{
"type": "boolean",
"description": "Is active",
"name": "is_active",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Setting"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a site info entry by ID",
"tags": [
"admin"
],
"summary": "Delete site info (Admin)",
"parameters": [
{
"type": "string",
"description": "Site Info ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/site-settings": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all site settings including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all site settings (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.SiteSettings"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new site settings entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create site settings (Admin)",
"parameters": [
{
"description": "Site Settings Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": {
"type": "boolean"
}
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.SiteSettings"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/site-settings/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific site settings entry",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get site settings by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Site Settings ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.SiteSettings"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing site settings entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update site settings (Admin)",
"parameters": [
{
"type": "string",
"description": "Site Settings ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Site Settings Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": {
"type": "boolean"
}
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.SiteSettings"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a site settings entry by ID",
"tags": [
"admin"
],
"summary": "Delete site settings (Admin)",
"parameters": [
{
"type": "string",
"description": "Site Settings ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/skills": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all skill entries including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all skills (Admin)",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "resume_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Skill"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new skill entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new skill (Admin)",
"parameters": [
{
"description": "Skill Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreateSkillRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Skill"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/skills/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific skill entry",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a skill by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Skill ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Skill"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing skill entry",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a skill (Admin)",
"parameters": [
{
"type": "string",
"description": "Skill ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Skill Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.UpdateSkillRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Skill"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a skill by ID",
"tags": [
"admin"
],
"summary": "Delete a skill (Admin)",
"parameters": [
{
"type": "string",
"description": "Skill ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/tags": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a list of all tags including inactive ones",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get all tags (Admin)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Tag"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new tag",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Create a new tag (Admin)",
"parameters": [
{
"description": "Tag Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreateTagRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Tag"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/tags/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Retrieve details of a specific tag",
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Get a tag by ID (Admin)",
"parameters": [
{
"type": "string",
"description": "Tag ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Tag"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update an existing tag",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"admin"
],
"summary": "Update a tag (Admin)",
"parameters": [
{
"type": "string",
"description": "Tag ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Tag Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.UpdateTagRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Tag"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete a tag by ID",
"tags": [
"admin"
],
"summary": "Delete a tag (Admin)",
"parameters": [
{
"type": "string",
"description": "Tag ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/admin/users": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"Admin - User Management"
],
"summary": "Get all users (Admin only)",
"parameters": [
{
"type": "integer",
"default": 1,
"description": "Page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "Items per page",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"Admin - User Management"
],
"summary": "Create new user (Admin only)",
"parameters": [
{
"type": "string",
"description": "Email",
"name": "email",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Password",
"name": "password",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "Username",
"name": "user_name",
"in": "formData",
"required": true
},
{
"type": "boolean",
"description": "Email verified",
"name": "email_verified",
"in": "formData"
},
{
"type": "string",
"description": "Roles (comma separated: admin,user)",
"name": "roles",
"in": "formData"
},
{
"type": "file",
"description": "Avatar image",
"name": "avatar",
"in": "formData"
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.User"
}
}
}
}
},
"/admin/users/deleted": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"Admin - User Management"
],
"summary": "Get all soft deleted users (Admin only)",
"parameters": [
{
"type": "integer",
"default": 1,
"description": "Page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "Items per page",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/admin/users/search": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"Admin - User Management"
],
"summary": "Search users (Admin only)",
"parameters": [
{
"type": "string",
"description": "Search query",
"name": "q",
"in": "query",
"required": true
},
{
"type": "integer",
"default": 1,
"description": "Page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "Items per page",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/admin/users/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"Admin - User Management"
],
"summary": "Get user by ID (Admin only)",
"parameters": [
{
"type": "string",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.User"
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"Admin - User Management"
],
"summary": "Update user (Admin only)",
"parameters": [
{
"type": "string",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Email",
"name": "email",
"in": "formData"
},
{
"type": "string",
"description": "Password",
"name": "password",
"in": "formData"
},
{
"type": "string",
"description": "Username",
"name": "user_name",
"in": "formData"
},
{
"type": "boolean",
"description": "Email verified",
"name": "email_verified",
"in": "formData"
},
{
"type": "string",
"description": "Roles (comma separated: admin,user)",
"name": "roles",
"in": "formData"
},
{
"type": "file",
"description": "Avatar image",
"name": "avatar",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"tags": [
"Admin - User Management"
],
"summary": "Delete user (Admin only)",
"parameters": [
{
"type": "string",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "boolean",
"default": false,
"description": "Hard delete (permanent)",
"name": "hard",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/admin/users/{id}/avatar": {
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"Admin - User Management"
],
"summary": "Upload avatar for any user (Admin only)",
"parameters": [
{
"type": "string",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "file",
"description": "Avatar image file",
"name": "avatar",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/admin/users/{id}/restore": {
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"tags": [
"Admin - User Management"
],
"summary": "Restore a soft deleted user (Admin only)",
"parameters": [
{
"type": "string",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/admin/users/{id}/roles": {
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Admin - User Management"
],
"summary": "Assign roles to user (Admin only)",
"parameters": [
{
"type": "string",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Roles",
"name": "roles",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/admin/users/{id}/roles/{role}": {
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"tags": [
"Admin - User Management"
],
"summary": "Remove role from user (Admin only)",
"parameters": [
{
"type": "string",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Role name",
"name": "role",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/auth/login": {
"post": {
"description": "Login with email and password to get JWT token",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Login user",
"parameters": [
{
"description": "Login Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.LoginRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/me": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Get details of the currently authenticated user",
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Get Current User Profile",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.User"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/refresh": {
"post": {
"description": "usage: send refresh_token to get new access_token",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Refresh Access Token",
"parameters": [
{
"description": "Refresh Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.RefreshRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/register": {
"post": {
"description": "Register with username, email and password",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Register a new user",
"parameters": [
{
"description": "Register Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.RegisterRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/verify-email": {
"get": {
"description": "Verify email with token sent after email/password registration",
"tags": [
"auth"
],
"summary": "Verify email address",
"parameters": [
{
"type": "string",
"description": "Verification token",
"name": "token",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/{provider}": {
"get": {
"description": "Redirect to OAuth2 provider",
"tags": [
"oauth"
],
"summary": "Start OAuth2 flow",
"parameters": [
{
"type": "string",
"description": "Provider (google, github)",
"name": "provider",
"in": "path",
"required": true
}
],
"responses": {}
}
},
"/auth/{provider}/callback": {
"get": {
"description": "Handle callback from OAuth2 provider",
"tags": [
"oauth"
],
"summary": "OAuth2 Callback",
"parameters": [
{
"type": "string",
"description": "Provider (google, github)",
"name": "provider",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/banners": {
"get": {
"description": "Retrieve a list of active banners",
"produces": [
"application/json"
],
"tags": [
"banners"
],
"summary": "Get all active banners",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Banner"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/banners/active": {
"get": {
"description": "Retrieve the newest active banner",
"produces": [
"application/json"
],
"tags": [
"banners"
],
"summary": "Get active banner",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Banner"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/contact": {
"post": {
"description": "Send a contact message",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"contact"
],
"summary": "Create a new contact message",
"parameters": [
{
"description": "Contact Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreateContactRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.Contact"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/educations": {
"get": {
"description": "Retrieve a list of active education entries",
"produces": [
"application/json"
],
"tags": [
"resume"
],
"summary": "Get all active educations",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "resume_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Education"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/experiences": {
"get": {
"description": "Retrieve a list of active experience entries",
"produces": [
"application/json"
],
"tags": [
"resume"
],
"summary": "Get all active experiences",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "resume_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Experience"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/homes": {
"get": {
"description": "Retrieve a list of active home entries",
"produces": [
"application/json"
],
"tags": [
"home"
],
"summary": "Get all active homes",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Home"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/homes/{slug}": {
"get": {
"description": "Retrieve a single active home by slug",
"produces": [
"application/json"
],
"tags": [
"home"
],
"summary": "Get a home by slug",
"parameters": [
{
"type": "string",
"description": "Home Slug",
"name": "slug",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Home"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/knowledges": {
"get": {
"description": "Retrieve a list of active knowledge entries",
"produces": [
"application/json"
],
"tags": [
"resume"
],
"summary": "Get all active knowledges",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "resume_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Knowledge"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/main-menu": {
"get": {
"description": "Retrieve a list of active main menu entries",
"produces": [
"application/json"
],
"tags": [
"menu"
],
"summary": "Get all active main menus",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.MainMenu"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/main-menu/active": {
"get": {
"description": "Retrieve the newest active main menu entry",
"produces": [
"application/json"
],
"tags": [
"menu"
],
"summary": "Get active main menu",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.MainMenu"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/post-categories": {
"get": {
"description": "Retrieve a list of active post categories",
"produces": [
"application/json"
],
"tags": [
"post-categories"
],
"summary": "Get all active post categories",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostCategory"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/post-categories/{id}/views": {
"post": {
"description": "Record a post category view (daily per IP)",
"produces": [
"application/json"
],
"tags": [
"post-category-views"
],
"summary": "Track post category view",
"parameters": [
{
"type": "string",
"description": "Category ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.PostCategoryView"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/post-categories/{slug}": {
"get": {
"description": "Retrieve an active post category by slug",
"produces": [
"application/json"
],
"tags": [
"post-categories"
],
"summary": "Get post category by slug",
"parameters": [
{
"type": "string",
"description": "Category Slug",
"name": "slug",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.PostCategory"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/post-tags": {
"get": {
"description": "Retrieve a list of active post tags",
"produces": [
"application/json"
],
"tags": [
"post-tags"
],
"summary": "Get all active post tags",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostTag"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/posts": {
"get": {
"description": "Retrieve a list of active posts with pagination. Use front=true for front posts only",
"produces": [
"application/json"
],
"tags": [
"posts"
],
"summary": "Get all active posts with pagination",
"parameters": [
{
"type": "boolean",
"description": "Front posts only",
"name": "front",
"in": "query"
},
{
"type": "integer",
"default": 1,
"description": "Page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "Items per page",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/posts/slug/{slug}": {
"get": {
"description": "Retrieve an active post by slug",
"produces": [
"application/json"
],
"tags": [
"posts"
],
"summary": "Get post by slug",
"parameters": [
{
"type": "string",
"description": "Post Slug",
"name": "slug",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Post"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/posts/{id}/comments": {
"get": {
"description": "Retrieve active comments for a post",
"produces": [
"application/json"
],
"tags": [
"post-comments"
],
"summary": "Get active post comments",
"parameters": [
{
"type": "string",
"description": "Post ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostComment"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Create a new comment for a post (auth required)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"post-comments"
],
"summary": "Create a post comment",
"parameters": [
{
"type": "string",
"description": "Post ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Comment Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.CreatePostCommentRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.PostComment"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/profile": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"Profile"
],
"summary": "Get current user profile",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.User"
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"Profile"
],
"summary": "Update current user profile",
"parameters": [
{
"type": "string",
"description": "Username",
"name": "user_name",
"in": "formData"
},
{
"type": "file",
"description": "Avatar image",
"name": "avatar",
"in": "formData"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/profile/email": {
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Profile"
],
"summary": "Change email address",
"parameters": [
{
"description": "Email change request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/profile/password": {
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Profile"
],
"summary": "Change password",
"parameters": [
{
"description": "Password change request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/resumes": {
"get": {
"description": "Retrieve a list of active resumes",
"produces": [
"application/json"
],
"tags": [
"resume"
],
"summary": "Get all active resumes",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Resume"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/resumes/active": {
"get": {
"description": "Retrieve the newest active resume entry",
"produces": [
"application/json"
],
"tags": [
"resume"
],
"summary": "Get active resume",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Resume"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/service-titles": {
"get": {
"description": "Retrieve a list of active service titles",
"produces": [
"application/json"
],
"tags": [
"services"
],
"summary": "Get all active service titles",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.ServiceTitle"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/service-titles/active": {
"get": {
"description": "Retrieve the newest active service title",
"produces": [
"application/json"
],
"tags": [
"services"
],
"summary": "Get active service title",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.ServiceTitle"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/services": {
"get": {
"description": "Retrieve a list of active services",
"produces": [
"application/json"
],
"tags": [
"services"
],
"summary": "Get all active services",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Service"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/services/{slug}": {
"get": {
"description": "Retrieve a single active service by slug",
"produces": [
"application/json"
],
"tags": [
"services"
],
"summary": "Get service by slug",
"parameters": [
{
"type": "string",
"description": "Service Slug",
"name": "slug",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Service"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/settings/cors/blacklist": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"Settings"
],
"summary": "Get all CORS blacklist entries",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.CorsBlacklist"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Settings"
],
"summary": "Create CORS blacklist entry",
"parameters": [
{
"description": "Blacklist data",
"name": "blacklist",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.CorsBlacklist"
}
}
}
}
},
"/settings/cors/blacklist/{id}": {
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Settings"
],
"summary": "Update CORS blacklist entry",
"parameters": [
{
"type": "string",
"description": "Blacklist ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update data",
"name": "blacklist",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"tags": [
"Settings"
],
"summary": "Delete CORS blacklist entry",
"parameters": [
{
"type": "string",
"description": "Blacklist ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/settings/cors/cache/invalidate": {
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"Settings"
],
"summary": "Invalidate CORS cache (whitelist + blacklist)",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/settings/cors/whitelist": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"Settings"
],
"summary": "Get all CORS whitelist entries",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.CorsWhitelist"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Settings"
],
"summary": "Create CORS whitelist entry",
"parameters": [
{
"description": "Whitelist data",
"name": "whitelist",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/models.CorsWhitelist"
}
}
}
}
},
"/settings/cors/whitelist/{id}": {
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Settings"
],
"summary": "Update CORS whitelist entry",
"parameters": [
{
"type": "string",
"description": "Whitelist ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update data",
"name": "whitelist",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"tags": [
"Settings"
],
"summary": "Delete CORS whitelist entry",
"parameters": [
{
"type": "string",
"description": "Whitelist ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/settings/ratelimit": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"Settings"
],
"summary": "Get all rate limit settings",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.RateLimitSetting"
}
}
}
}
}
},
"/settings/ratelimit/{id}": {
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Settings"
],
"summary": "Update rate limit setting",
"parameters": [
{
"type": "string",
"description": "Setting ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Update data",
"name": "setting",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/site-info": {
"get": {
"description": "Retrieve a list of active site info entries",
"produces": [
"application/json"
],
"tags": [
"site-info"
],
"summary": "Get all active site info",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Setting"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/site-info/active": {
"get": {
"description": "Retrieve the newest active site info entry",
"produces": [
"application/json"
],
"tags": [
"site-info"
],
"summary": "Get active site info",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.Setting"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/site-settings": {
"get": {
"description": "Retrieve a list of active site settings",
"produces": [
"application/json"
],
"tags": [
"site-settings"
],
"summary": "Get all active site settings",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.SiteSettings"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/site-settings/active": {
"get": {
"description": "Retrieve the newest active site settings entry",
"produces": [
"application/json"
],
"tags": [
"site-settings"
],
"summary": "Get active site settings",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.SiteSettings"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/skills": {
"get": {
"description": "Retrieve a list of active skill entries",
"produces": [
"application/json"
],
"tags": [
"resume"
],
"summary": "Get all active skills",
"parameters": [
{
"type": "string",
"description": "Resume ID",
"name": "resume_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Skill"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/tags": {
"get": {
"description": "Retrieve a list of all tags. Public endpoint returns only active tags. Admin endpoint returns all.",
"produces": [
"application/json"
],
"tags": [
"tags"
],
"summary": "Get all tags",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Tag"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/user/avatar": {
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "Upload user avatar",
"parameters": [
{
"type": "file",
"description": "Avatar image file",
"name": "avatar",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"produces": [
"application/json"
],
"tags": [
"User"
],
"summary": "Delete user avatar",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
}
},
"definitions": {
"handlers.CreateContactRequest": {
"type": "object",
"required": [
"email",
"message",
"name",
"subject"
],
"properties": {
"email": {
"type": "string"
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"subject": {
"type": "string"
}
}
},
"handlers.CreateEducationRequest": {
"type": "object",
"properties": {
"between_years": {
"type": "string"
},
"content": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.CreateExperienceRequest": {
"type": "object",
"properties": {
"between_years": {
"type": "string"
},
"content": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.CreateKnowledgeRequest": {
"type": "object",
"properties": {
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.CreateMainMenuRequest": {
"type": "object",
"properties": {
"about": {
"type": "string"
},
"contact": {
"type": "string"
},
"home": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"portfolio": {
"type": "string"
},
"resume": {
"type": "string"
},
"services": {
"type": "string"
}
}
},
"handlers.CreatePostCommentRequest": {
"type": "object",
"required": [
"body",
"title"
],
"properties": {
"body": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"parent_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.CreatePostTagRequest": {
"type": "object",
"required": [
"tag"
],
"properties": {
"is_active": {
"type": "boolean"
},
"tag": {
"type": "string"
}
}
},
"handlers.CreateResumeRequest": {
"type": "object",
"properties": {
"coding_skills": {
"type": "string"
},
"education": {
"type": "string"
},
"experience": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"knowledge": {
"type": "string"
},
"title": {
"type": "string"
},
"title_sub": {
"type": "string"
}
}
},
"handlers.CreateSkillRequest": {
"type": "object",
"properties": {
"degree": {
"type": "integer"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.CreateTagRequest": {
"type": "object",
"required": [
"tag"
],
"properties": {
"is_active": {
"description": "Pointer to allow false value",
"type": "boolean"
},
"tag": {
"type": "string"
}
}
},
"handlers.LoginRequest": {
"type": "object",
"required": [
"email",
"password"
],
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"handlers.RefreshRequest": {
"type": "object",
"required": [
"refresh_token"
],
"properties": {
"refresh_token": {
"type": "string"
}
}
},
"handlers.RegisterRequest": {
"type": "object",
"required": [
"email",
"password",
"username"
],
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string",
"minLength": 6
},
"username": {
"type": "string",
"minLength": 3
}
}
},
"handlers.UpdateEducationRequest": {
"type": "object",
"properties": {
"between_years": {
"type": "string"
},
"content": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.UpdateExperienceRequest": {
"type": "object",
"properties": {
"between_years": {
"type": "string"
},
"content": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.UpdateKnowledgeRequest": {
"type": "object",
"properties": {
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.UpdateMainMenuRequest": {
"type": "object",
"properties": {
"about": {
"type": "string"
},
"contact": {
"type": "string"
},
"home": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"portfolio": {
"type": "string"
},
"resume": {
"type": "string"
},
"services": {
"type": "string"
}
}
},
"handlers.UpdatePostCommentRequest": {
"type": "object",
"properties": {
"body": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"parent_id": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.UpdatePostTagRequest": {
"type": "object",
"properties": {
"is_active": {
"type": "boolean"
},
"tag": {
"type": "string"
}
}
},
"handlers.UpdateResumeRequest": {
"type": "object",
"properties": {
"coding_skills": {
"type": "string"
},
"education": {
"type": "string"
},
"experience": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"knowledge": {
"type": "string"
},
"title": {
"type": "string"
},
"title_sub": {
"type": "string"
}
}
},
"handlers.UpdateSkillRequest": {
"type": "object",
"properties": {
"degree": {
"type": "integer"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"handlers.UpdateTagRequest": {
"type": "object",
"properties": {
"is_active": {
"type": "boolean"
},
"tag": {
"type": "string"
}
}
},
"models.About": {
"type": "object",
"properties": {
"age": {
"type": "string"
},
"birthday": {
"type": "string"
},
"city": {
"type": "string"
},
"counter_active": {
"type": "boolean"
},
"created_at": {
"type": "string"
},
"cv": {
"type": "string"
},
"degree": {
"type": "string"
},
"done": {
"type": "integer"
},
"great": {
"type": "integer"
},
"great_reviews": {
"type": "string"
},
"hapy_user": {
"type": "string"
},
"id": {
"type": "string"
},
"image": {
"type": "string"
},
"image_sub": {
"type": "string"
},
"interests": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"mail": {
"type": "string"
},
"phone": {
"type": "string"
},
"project_done": {
"type": "string"
},
"slug": {
"type": "string"
},
"study": {
"type": "string"
},
"support_team": {
"type": "string"
},
"team": {
"type": "integer"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"user_h": {
"type": "integer"
},
"website": {
"type": "string"
},
"x": {
"type": "string"
}
}
},
"models.Banner": {
"type": "object",
"properties": {
"color": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"image": {
"type": "string"
},
"image_k": {
"type": "string"
},
"image_k_txt": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"text1": {
"type": "string"
},
"text2": {
"type": "string"
},
"text4": {
"type": "string"
},
"text5": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.Contact": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"type": "string"
},
"ip": {
"type": "string"
},
"message": {
"type": "string"
},
"name": {
"type": "string"
},
"subject": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"user": {
"$ref": "#/definitions/models.User"
},
"user_id": {
"description": "Optional: if user is logged in",
"type": "string"
}
}
},
"models.CorsBlacklist": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"created_by": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"origin": {
"type": "string"
},
"reason": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.CorsWhitelist": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"created_by": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"origin": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.Education": {
"type": "object",
"properties": {
"between_years": {
"type": "string"
},
"content": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.Experience": {
"type": "object",
"properties": {
"between_years": {
"type": "string"
},
"content": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.Home": {
"type": "object",
"properties": {
"button1": {
"type": "string"
},
"button2": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"image": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"keywords": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Tag"
}
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"video": {
"type": "string"
}
}
},
"models.Knowledge": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.MainMenu": {
"type": "object",
"properties": {
"about": {
"type": "string"
},
"contact": {
"type": "string"
},
"created_at": {
"type": "string"
},
"home": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"portfolio": {
"type": "string"
},
"resume": {
"type": "string"
},
"services": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.Permission": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"description": "user:read, user:write",
"type": "string"
}
}
},
"models.Post": {
"type": "object",
"properties": {
"categories": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostCategory"
}
},
"children": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Post"
}
},
"comments": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostComment"
}
},
"content": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"image": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"is_front": {
"type": "boolean"
},
"keywords": {
"type": "string"
},
"parent": {
"$ref": "#/definitions/models.Post"
},
"parent_id": {
"type": "string"
},
"slug": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostTag"
}
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"video": {
"type": "string"
}
}
},
"models.PostCategory": {
"type": "object",
"properties": {
"children": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostCategory"
}
},
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"image": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"keywords": {
"type": "string"
},
"order": {
"type": "integer"
},
"parent": {
"$ref": "#/definitions/models.PostCategory"
},
"parent_id": {
"type": "string"
},
"posts": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Post"
}
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.PostCategoryView": {
"type": "object",
"properties": {
"category": {
"$ref": "#/definitions/models.PostCategory"
},
"category_id": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"ip_address": {
"type": "string"
},
"user_agent": {
"type": "string"
}
}
},
"models.PostComment": {
"type": "object",
"properties": {
"body": {
"type": "string"
},
"children": {
"type": "array",
"items": {
"$ref": "#/definitions/models.PostComment"
}
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"parent": {
"$ref": "#/definitions/models.PostComment"
},
"parent_id": {
"type": "string"
},
"post": {
"$ref": "#/definitions/models.Post"
},
"post_id": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"user": {
"$ref": "#/definitions/models.User"
},
"user_id": {
"type": "string"
}
}
},
"models.PostTag": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"posts": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Post"
}
},
"tag": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.RateLimitSetting": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"max_requests": {
"description": "Max istek sayısı",
"type": "integer"
},
"name": {
"description": "e.g., \"login\", \"register\", \"api\"",
"type": "string"
},
"updated_at": {
"type": "string"
},
"updated_by": {
"type": "string"
},
"window_seconds": {
"description": "Zaman penceresi (saniye)",
"type": "integer"
}
}
},
"models.Resume": {
"type": "object",
"properties": {
"coding_skills": {
"type": "string"
},
"created_at": {
"type": "string"
},
"education": {
"type": "string"
},
"educations": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Education"
}
},
"experience": {
"type": "string"
},
"experiences": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Experience"
}
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"knowledge": {
"type": "string"
},
"knowledges": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Knowledge"
}
},
"skills": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Skill"
}
},
"title": {
"type": "string"
},
"title_sub": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.Role": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"description": "admin, user",
"type": "string"
},
"permissions": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Permission"
}
}
}
},
"models.Service": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"image": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.ServiceTitle": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"title": {
"type": "string"
},
"title_sub": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.Setting": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"b_logo": {
"type": "string"
},
"copyright": {
"type": "string"
},
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"facebook": {
"type": "string"
},
"id": {
"type": "string"
},
"instagram": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"linkedin": {
"type": "string"
},
"map_embed": {
"type": "string"
},
"meta_description": {
"type": "string"
},
"meta_title": {
"type": "string"
},
"phone": {
"type": "string"
},
"pinterest": {
"type": "string"
},
"slogan": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"url": {
"type": "string"
},
"w_logo": {
"type": "string"
},
"whatsapp": {
"type": "string"
},
"x": {
"type": "string"
}
}
},
"models.SiteSettings": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"site_active": {
"type": "boolean"
},
"updated_at": {
"type": "string"
}
}
},
"models.Skill": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"degree": {
"type": "integer"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"resume_id": {
"type": "string"
},
"title": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.SocialAccount": {
"type": "object",
"properties": {
"avatar_url": {
"description": "Avatar URL from provider",
"type": "string"
},
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"description": "Full name from provider",
"type": "string"
},
"provider": {
"description": "google, github",
"type": "string"
},
"provider_id": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"user_id": {
"type": "string"
}
}
},
"models.Tag": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"tag": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"models.User": {
"type": "object",
"properties": {
"avatar": {
"description": "Avatar URL from OAuth or uploaded",
"type": "string"
},
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"email_verified": {
"description": "Email verification: only required for email/password registration; OAuth users are treated as verified\nChanged to *bool to handle false values correctly with GORM defaults",
"type": "boolean"
},
"email_verified_at": {
"type": "string"
},
"id": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"$ref": "#/definitions/models.Role"
}
},
"social_accounts": {
"type": "array",
"items": {
"$ref": "#/definitions/models.SocialAccount"
}
},
"updated_at": {
"type": "string"
},
"username": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"ApiKeyAuth": {
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
}
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "1.0",
Host: "",
BasePath: "/v1",
Schemes: []string{},
Title: "GAuth-Central API",
Description: "Centralized Authentication Service",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}