diff --git a/backend/docs/docs.go b/backend/docs/docs.go index 67f1019..41eefcb 100644 --- a/backend/docs/docs.go +++ b/backend/docs/docs.go @@ -424,17 +424,22 @@ const docTemplate = `{ "ktmtrainbot.BookingCreateRequest": { "type": "object", "required": [ + "contact", + "gender", "name", "passport", "passportExpiry", + "timeCode", "travelDate" ], "properties": { "contact": { - "type": "string" + "type": "string", + "example": "+6512345678" }, "gender": { - "type": "string" + "type": "string", + "example": "M" }, "name": { "type": "string" @@ -443,13 +448,16 @@ const docTemplate = `{ "type": "string" }, "passportExpiry": { - "type": "string" + "type": "string", + "format": "date-time" }, "timeCode": { - "type": "string" + "type": "string", + "example": "1300" }, "travelDate": { - "type": "string" + "type": "string", + "format": "date-time" } } }, diff --git a/backend/docs/swagger.json b/backend/docs/swagger.json index 67480b4..7430a72 100644 --- a/backend/docs/swagger.json +++ b/backend/docs/swagger.json @@ -416,17 +416,22 @@ "ktmtrainbot.BookingCreateRequest": { "type": "object", "required": [ + "contact", + "gender", "name", "passport", "passportExpiry", + "timeCode", "travelDate" ], "properties": { "contact": { - "type": "string" + "type": "string", + "example": "+6512345678" }, "gender": { - "type": "string" + "type": "string", + "example": "M" }, "name": { "type": "string" @@ -435,13 +440,16 @@ "type": "string" }, "passportExpiry": { - "type": "string" + "type": "string", + "format": "date-time" }, "timeCode": { - "type": "string" + "type": "string", + "example": "1300" }, "travelDate": { - "type": "string" + "type": "string", + "format": "date-time" } } }, diff --git a/backend/docs/swagger.yaml b/backend/docs/swagger.yaml index f24bf7e..7422da8 100644 --- a/backend/docs/swagger.yaml +++ b/backend/docs/swagger.yaml @@ -24,23 +24,31 @@ definitions: ktmtrainbot.BookingCreateRequest: properties: contact: + example: "+6512345678" type: string gender: + example: M type: string name: type: string passport: type: string passportExpiry: + format: date-time type: string timeCode: + example: "1300" type: string travelDate: + format: date-time type: string required: + - contact + - gender - name - passport - passportExpiry + - timeCode - travelDate type: object ktmtrainbot.BookingResponse: diff --git a/backend/internal/ktmtrainbot/bookingmodel.go b/backend/internal/ktmtrainbot/bookingmodel.go index 7a59f65..ac4692a 100644 --- a/backend/internal/ktmtrainbot/bookingmodel.go +++ b/backend/internal/ktmtrainbot/bookingmodel.go @@ -27,13 +27,13 @@ type Booking struct { } type BookingCreateRequest struct { - TravelDate time.Time `json:"travelDate" validate:"required"` - TimeCode string `json:"timeCode" validate:"required len=4"` + TravelDate time.Time `json:"travelDate" validate:"required" swaggertype:"string" format:"date-time"` + TimeCode string `json:"timeCode" validate:"required,number,len=4" swaggertype:"string" example:"1300"` Name string `json:"name" validate:"required"` - Gender string `json:"gender" validate:"required len=1 containsany=MF"` + Gender string `json:"gender" validate:"required,len=1,containsany=MF" swaggertype:"string" example:"M" enum:"M,F"` Passport string `json:"passport" validate:"required"` - PassportExpiry time.Time `json:"passportExpiry" validate:"required"` - Contact string `json:"contact" validate:"required e164"` + PassportExpiry time.Time `json:"passportExpiry" validate:"required" swaggertype:"string" format:"date-time"` + Contact string `json:"contact" validate:"required,e164" swaggertype:"string" example:"+6512345678"` } type BookingResponse struct {