basePath: /t/{tenant_code}/v1
definitions:
  consts.Role:
    enum:
    - user
    - super_admin
    type: string
    x-enum-varnames:
    - RoleUser
    - RoleSuperAdmin
  consts.TenantStatus:
    enum:
    - pending_verify
    - verified
    - banned
    type: string
    x-enum-varnames:
    - TenantStatusPendingVerify
    - TenantStatusVerified
    - TenantStatusBanned
  consts.UserStatus:
    enum:
    - pending_verify
    - verified
    - banned
    type: string
    x-enum-varnames:
    - UserStatusPendingVerify
    - UserStatusVerified
    - UserStatusBanned
  dto.LoginForm:
    properties:
      password:
        type: string
      username:
        type: string
    type: object
  dto.LoginResponse:
    properties:
      token:
        type: string
    type: object
  dto.TenantExpireUpdateForm:
    properties:
      duration:
        enum:
        - 7
        - 30
        - 90
        - 180
        - 365
        type: integer
    required:
    - duration
    type: object
  dto.TenantItem:
    properties:
      code:
        type: string
      config:
        items:
          type: integer
        type: array
      created_at:
        type: string
      expired_at:
        type: string
      id:
        type: integer
      name:
        type: string
      status:
        $ref: '#/definitions/consts.TenantStatus'
      updated_at:
        type: string
      user_id:
        type: integer
      userBalance:
        format: int64
        type: integer
      userCount:
        format: int64
        type: integer
      users:
        items:
          $ref: '#/definitions/models.User'
        type: array
      uuid:
        type: string
    type: object
  gorm.DeletedAt:
    properties:
      time:
        type: string
      valid:
        description: Valid is true if Time is not NULL
        type: boolean
    type: object
  models.Tenant:
    properties:
      code:
        type: string
      config:
        items:
          type: integer
        type: array
      created_at:
        type: string
      expired_at:
        type: string
      id:
        type: integer
      name:
        type: string
      status:
        $ref: '#/definitions/consts.TenantStatus'
      updated_at:
        type: string
      user_id:
        type: integer
      users:
        items:
          $ref: '#/definitions/models.User'
        type: array
      uuid:
        type: string
    type: object
  models.User:
    properties:
      created_at:
        type: string
      deleted_at:
        $ref: '#/definitions/gorm.DeletedAt'
      id:
        type: integer
      metas:
        items:
          type: integer
        type: array
      owned:
        $ref: '#/definitions/models.Tenant'
      password:
        type: string
      roles:
        items:
          $ref: '#/definitions/consts.Role'
        type: array
      status:
        $ref: '#/definitions/consts.UserStatus'
      tenants:
        items:
          $ref: '#/definitions/models.Tenant'
        type: array
      updated_at:
        type: string
      username:
        type: string
      verified_at:
        type: string
    type: object
  requests.Pager:
    properties:
      items: {}
      limit:
        type: integer
      page:
        type: integer
      total:
        type: integer
    type: object
  v1.ResponseItem:
    type: object
externalDocs:
  description: OpenAPI
  url: https://swagger.io/resources/open-api/
host: localhost:8080
info:
  contact:
    email: support@swagger.io
    name: UserName
    url: http://www.swagger.io/support
  description: This is a sample server celler server.
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: http://swagger.io/terms/
  title: ApiDoc
  version: "1.0"
paths:
  /super/v1/auth/login:
    post:
      consumes:
      - application/json
      parameters:
      - description: form
        in: body
        name: form
        required: true
        schema:
          $ref: '#/definitions/dto.LoginForm'
      produces:
      - application/json
      responses:
        "200":
          description: 成功
          schema:
            $ref: '#/definitions/dto.LoginResponse'
      tags:
      - Super
  /super/v1/tenants:
    get:
      consumes:
      - application/json
      parameters:
      - in: query
        name: asc
        type: string
      - in: query
        name: desc
        type: string
      - in: query
        name: limit
        type: integer
      - in: query
        name: name
        type: string
      - in: query
        name: page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/requests.Pager'
            - properties:
                items:
                  $ref: '#/definitions/dto.TenantItem'
              type: object
      summary: 租户列表
      tags:
      - Super
  /super/v1/tenants/{tenantID}:
    patch:
      consumes:
      - application/json
      parameters:
      - description: TenantID
        format: int64
        in: path
        name: tenantID
        required: true
        type: integer
      - description: Form
        in: body
        name: form
        required: true
        schema:
          $ref: '#/definitions/dto.TenantExpireUpdateForm'
      produces:
      - application/json
      responses: {}
      summary: 更新过期时间
      tags:
      - Super
  /v1/medias/{id}:
    post:
      consumes:
      - application/json
      description: Test
      parameters:
      - description: ID
        in: path
        name: id
        required: true
        type: integer
      - description: 年龄
        in: query
        name: age
        type: integer
      - description: 名称
        in: query
        name: name
        type: string
      - in: query
        name: limit
        type: integer
      - in: query
        name: page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: 成功
          schema:
            allOf:
            - $ref: '#/definitions/requests.Pager'
            - properties:
                list:
                  $ref: '#/definitions/v1.ResponseItem'
              type: object
      summary: Test
      tags:
      - Test
securityDefinitions:
  BasicAuth:
    type: basic
swagger: "2.0"
