// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.5
// 	protoc        (unknown)
// source: types/v1/subscription.proto

package typesv1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type Subscription_Status int32

const (
	Subscription_Unknown           Subscription_Status = 0
	Subscription_Active            Subscription_Status = 1
	Subscription_Canceled          Subscription_Status = 2
	Subscription_Incomplete        Subscription_Status = 3
	Subscription_IncompleteExpired Subscription_Status = 4
	Subscription_PastDue           Subscription_Status = 5
	Subscription_Paused            Subscription_Status = 6
	Subscription_Trialing          Subscription_Status = 7
	Subscription_Unpaid            Subscription_Status = 8
)

// Enum value maps for Subscription_Status.
var (
	Subscription_Status_name = map[int32]string{
		0: "Unknown",
		1: "Active",
		2: "Canceled",
		3: "Incomplete",
		4: "IncompleteExpired",
		5: "PastDue",
		6: "Paused",
		7: "Trialing",
		8: "Unpaid",
	}
	Subscription_Status_value = map[string]int32{
		"Unknown":           0,
		"Active":            1,
		"Canceled":          2,
		"Incomplete":        3,
		"IncompleteExpired": 4,
		"PastDue":           5,
		"Paused":            6,
		"Trialing":          7,
		"Unpaid":            8,
	}
)

func (x Subscription_Status) Enum() *Subscription_Status {
	p := new(Subscription_Status)
	*p = x
	return p
}

func (x Subscription_Status) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Subscription_Status) Descriptor() protoreflect.EnumDescriptor {
	return file_types_v1_subscription_proto_enumTypes[0].Descriptor()
}

func (Subscription_Status) Type() protoreflect.EnumType {
	return &file_types_v1_subscription_proto_enumTypes[0]
}

func (x Subscription_Status) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Subscription_Status.Descriptor instead.
func (Subscription_Status) EnumDescriptor() ([]byte, []int) {
	return file_types_v1_subscription_proto_rawDescGZIP(), []int{0, 0}
}

type Subscription struct {
	state                protoimpl.MessageState `protogen:"open.v1"`
	CreatedAt            *timestamppb.Timestamp `protobuf:"bytes,100,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	StripeId             string                 `protobuf:"bytes,1,opt,name=stripe_id,json=stripeId,proto3" json:"stripe_id,omitempty"`
	DefaultPaymentMethod *PaymentMethod         `protobuf:"bytes,2,opt,name=default_payment_method,json=defaultPaymentMethod,proto3" json:"default_payment_method,omitempty"`
	Status               Subscription_Status    `protobuf:"varint,3,opt,name=status,proto3,enum=types.v1.Subscription_Status" json:"status,omitempty"`
	CurrentPeriodStartAt *timestamppb.Timestamp `protobuf:"bytes,201,opt,name=current_period_start_at,json=currentPeriodStartAt,proto3" json:"current_period_start_at,omitempty"`
	CurrentPeriodEndAt   *timestamppb.Timestamp `protobuf:"bytes,202,opt,name=current_period_end_at,json=currentPeriodEndAt,proto3" json:"current_period_end_at,omitempty"`
	CancelAt             *timestamppb.Timestamp `protobuf:"bytes,301,opt,name=cancel_at,json=cancelAt,proto3" json:"cancel_at,omitempty"`
	CanceledAt           *timestamppb.Timestamp `protobuf:"bytes,302,opt,name=canceled_at,json=canceledAt,proto3" json:"canceled_at,omitempty"`
	EndedAt              *timestamppb.Timestamp `protobuf:"bytes,401,opt,name=ended_at,json=endedAt,proto3" json:"ended_at,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *Subscription) Reset() {
	*x = Subscription{}
	mi := &file_types_v1_subscription_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Subscription) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Subscription) ProtoMessage() {}

func (x *Subscription) ProtoReflect() protoreflect.Message {
	mi := &file_types_v1_subscription_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Subscription.ProtoReflect.Descriptor instead.
func (*Subscription) Descriptor() ([]byte, []int) {
	return file_types_v1_subscription_proto_rawDescGZIP(), []int{0}
}

func (x *Subscription) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Subscription) GetStripeId() string {
	if x != nil {
		return x.StripeId
	}
	return ""
}

func (x *Subscription) GetDefaultPaymentMethod() *PaymentMethod {
	if x != nil {
		return x.DefaultPaymentMethod
	}
	return nil
}

func (x *Subscription) GetStatus() Subscription_Status {
	if x != nil {
		return x.Status
	}
	return Subscription_Unknown
}

func (x *Subscription) GetCurrentPeriodStartAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CurrentPeriodStartAt
	}
	return nil
}

func (x *Subscription) GetCurrentPeriodEndAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CurrentPeriodEndAt
	}
	return nil
}

func (x *Subscription) GetCancelAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CancelAt
	}
	return nil
}

func (x *Subscription) GetCanceledAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CanceledAt
	}
	return nil
}

func (x *Subscription) GetEndedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.EndedAt
	}
	return nil
}

var File_types_v1_subscription_proto protoreflect.FileDescriptor

var file_types_v1_subscription_proto_rawDesc = string([]byte{
	0x0a, 0x1b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f,
	0x76, 0x31, 0x2f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f,
	0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x05, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x69, 0x70, 0x65, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x69, 0x70, 0x65, 0x49, 0x64,
	0x12, 0x4d, 0x0a, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d,
	0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x79, 0x6d,
	0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75,
	0x6c, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12,
	0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x1d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x52, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61,
	0x74, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x52, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x72,
	0x69, 0x6f, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x74, 0x12, 0x4e, 0x0a, 0x15, 0x63, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x64,
	0x5f, 0x61, 0x74, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50,
	0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6e, 0x64, 0x41, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x63, 0x61,
	0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x61, 0x74, 0x18, 0xad, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x63, 0x61, 0x6e, 0x63,
	0x65, 0x6c, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64,
	0x5f, 0x61, 0x74, 0x18, 0xae, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64,
	0x41, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x91,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x06, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e,
	0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0c,
	0x0a, 0x08, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a,
	0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11,
	0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65,
	0x64, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x73, 0x74, 0x44, 0x75, 0x65, 0x10, 0x05,
	0x12, 0x0a, 0x0a, 0x06, 0x50, 0x61, 0x75, 0x73, 0x65, 0x64, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08,
	0x54, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x6e,
	0x70, 0x61, 0x69, 0x64, 0x10, 0x08, 0x42, 0x91, 0x01, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2d, 0x67, 0x69,
	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x6c, 0x6f,
	0x67, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2f, 0x76, 0x31, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x54, 0x58,
	0x58, 0xaa, 0x02, 0x08, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x08, 0x54,
	0x79, 0x70, 0x65, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x14, 0x54, 0x79, 0x70, 0x65, 0x73, 0x5c,
	0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02,
	0x09, 0x54, 0x79, 0x70, 0x65, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
})

var (
	file_types_v1_subscription_proto_rawDescOnce sync.Once
	file_types_v1_subscription_proto_rawDescData []byte
)

func file_types_v1_subscription_proto_rawDescGZIP() []byte {
	file_types_v1_subscription_proto_rawDescOnce.Do(func() {
		file_types_v1_subscription_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_types_v1_subscription_proto_rawDesc), len(file_types_v1_subscription_proto_rawDesc)))
	})
	return file_types_v1_subscription_proto_rawDescData
}

var file_types_v1_subscription_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_types_v1_subscription_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_types_v1_subscription_proto_goTypes = []any{
	(Subscription_Status)(0),      // 0: types.v1.Subscription.Status
	(*Subscription)(nil),          // 1: types.v1.Subscription
	(*timestamppb.Timestamp)(nil), // 2: google.protobuf.Timestamp
	(*PaymentMethod)(nil),         // 3: types.v1.PaymentMethod
}
var file_types_v1_subscription_proto_depIdxs = []int32{
	2, // 0: types.v1.Subscription.created_at:type_name -> google.protobuf.Timestamp
	3, // 1: types.v1.Subscription.default_payment_method:type_name -> types.v1.PaymentMethod
	0, // 2: types.v1.Subscription.status:type_name -> types.v1.Subscription.Status
	2, // 3: types.v1.Subscription.current_period_start_at:type_name -> google.protobuf.Timestamp
	2, // 4: types.v1.Subscription.current_period_end_at:type_name -> google.protobuf.Timestamp
	2, // 5: types.v1.Subscription.cancel_at:type_name -> google.protobuf.Timestamp
	2, // 6: types.v1.Subscription.canceled_at:type_name -> google.protobuf.Timestamp
	2, // 7: types.v1.Subscription.ended_at:type_name -> google.protobuf.Timestamp
	8, // [8:8] is the sub-list for method output_type
	8, // [8:8] is the sub-list for method input_type
	8, // [8:8] is the sub-list for extension type_name
	8, // [8:8] is the sub-list for extension extendee
	0, // [0:8] is the sub-list for field type_name
}

func init() { file_types_v1_subscription_proto_init() }
func file_types_v1_subscription_proto_init() {
	if File_types_v1_subscription_proto != nil {
		return
	}
	file_types_v1_payment_method_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_types_v1_subscription_proto_rawDesc), len(file_types_v1_subscription_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_types_v1_subscription_proto_goTypes,
		DependencyIndexes: file_types_v1_subscription_proto_depIdxs,
		EnumInfos:         file_types_v1_subscription_proto_enumTypes,
		MessageInfos:      file_types_v1_subscription_proto_msgTypes,
	}.Build()
	File_types_v1_subscription_proto = out.File
	file_types_v1_subscription_proto_goTypes = nil
	file_types_v1_subscription_proto_depIdxs = nil
}
