123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- package common
- import "github.com/google/uuid"
- // Common Response Types
- type ErrorResponse struct {
- Error string `json:"error"`
- }
- type MessageResponse struct {
- Message string `json:"message"`
- }
- // Auth Requests/Responses
- type AuthLoginRequest struct {
- Email string `json:"email" binding:"required,email"`
- Password string `json:"password" binding:"required,password"`
- }
- type AuthLoginResponse struct {
- Token string `json:"token"`
- User User `json:"user"`
- }
- // User Requests/Responses
- type UserCreateRequest struct {
- Email string `json:"email" binding:"required,email"`
- Name string `json:"name" binding:"required,min=2,max=100"`
- PhoneNumber string `json:"phone_number" binding:"omitempty,phone"`
- Password string `json:"password" binding:"required,password"`
- }
- type UserCreateResponse struct {
- User User `json:"user"`
- }
- type UserUpdateRequest struct {
- Name string `json:"name" binding:"required,min=2,max=100"`
- PhoneNumber string `json:"phone_number" binding:"omitempty,phone"`
- }
- type UserUpdateResponse struct {
- User User `json:"user"`
- }
- type UserResponse struct {
- User User `json:"user"`
- Workspaces []Workspace `json:"workspaces"`
- }
- // Workspace Requests/Responses
- type WorkspaceCreateRequest struct {
- Name string `json:"name" binding:"required,min=2,max=100"`
- }
- type WorkspaceCreateResponse struct {
- ID uuid.UUID `json:"id"`
- Name string `json:"name"`
- }
- type WorkspaceResponse struct {
- Workspace Workspace `json:"workspace"`
- }
- type WorkspaceListResponse struct {
- Workspaces []Workspace `json:"workspaces"`
- }
- type WorkspaceOwnerInitRequest struct {
- Email string `json:"email" binding:"required,email"`
- Name string `json:"name" binding:"required,min=2,max=100"`
- PhoneNumber string `json:"phone_number" binding:"omitempty,phone"`
- }
- type WorkspaceOwnerInitResponse struct {
- User User `json:"user"`
- }
- type WorkspaceOwnerCreateRequest struct {
- Email string `json:"email" binding:"required,email"`
- Name string `json:"name" binding:"required,min=2,max=100"`
- PhoneNumber string `json:"phone_number" binding:"omitempty,phone"`
- Password string `json:"password" binding:"required,password"`
- }
- type WorkspaceOwnerCreateResponse struct {
- User User `json:"user"`
- }
- type WorkspaceMemberAddRequest struct {
- WorkspaceID uuid.UUID `json:"workspace_id" binding:"required,uuid"`
- Role string `json:"role" binding:"required,oneof=admin member"`
- }
- type WorkspaceMemberAddResponse struct {
- Message string `json:"message"`
- }
- // Profile Requests/Responses
- type ProfileCreateRequest struct {
- Name string `json:"name" binding:"required,min=2,max=100"`
- WorkspaceID uuid.UUID `json:"workspace_id" binding:"required,uuid"`
- }
- type ProfileCreateResponse struct {
- Profile Profile `json:"profile"`
- }
- type ProfileUpdateRequest struct {
- Name string `json:"name" binding:"required,min=2,max=100"`
- }
- type ProfileUpdateResponse struct {
- Profile Profile `json:"profile"`
- }
- type ProfileResponse struct {
- Profile Profile `json:"profile"`
- }
- type ProfileListResponse struct {
- Profiles []Profile `json:"profiles"`
- }
- // Invitation Requests/Responses
- type InvitationCreateRequest struct {
- Email string `json:"email" binding:"required,email"`
- WorkspaceID uuid.UUID `json:"workspace_id" binding:"required,uuid"`
- Role string `json:"role" binding:"required,oneof=admin member"`
- }
- type InvitationCreateResponse struct {
- ID uuid.UUID `json:"id"`
- Email string `json:"email"`
- Status string `json:"status"`
- ExpiresAt string `json:"expires_at"`
- WorkspaceID uuid.UUID `json:"workspace_id"`
- }
- type InvitationAcceptRequest struct {
- Email string `json:"email" binding:"required,email"`
- Name string `json:"name" binding:"required,min=2,max=100"`
- PhoneNumber string `json:"phone_number" binding:"omitempty,phone"`
- Password string `json:"password" binding:"required,password"`
- Token string `json:"token" binding:"required"`
- }
- type InvitationAcceptResponse struct {
- User User `json:"user"`
- WorkspaceID uuid.UUID `json:"workspace_id"`
- }
- type InvitationValidateResponse struct {
- Valid bool `json:"valid"`
- WorkspaceID uuid.UUID `json:"workspace_id"`
- Email string `json:"email"`
- Error string `json:"error,omitempty"`
- }
- type InvitationListResponse struct {
- Invitations []Invite `json:"invitations"`
- }
|