Co-authored-by: Michael Hoennig <michael@hoennig.de> Reviewed-on: #13 Reviewed-by: Michael Hierweck <michael.hierweck@hostsharing.net>
33 lines
1.4 KiB
SQL
33 lines
1.4 KiB
SQL
--liquibase formatted sql
|
|
|
|
-- ============================================================================
|
|
--changeset hs-office-membership-MAIN-TABLE:1 endDelimiter:--//
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
CREATE TYPE HsOfficeReasonForTermination AS ENUM ('NONE', 'CANCELLATION', 'TRANSFER', 'DEATH', 'LIQUIDATION', 'EXPULSION', 'UNKNOWN');
|
|
|
|
CREATE CAST (character varying as HsOfficeReasonForTermination) WITH INOUT AS IMPLICIT;
|
|
|
|
create table if not exists hs_office_membership
|
|
(
|
|
uuid uuid unique references RbacObject (uuid) initially deferred,
|
|
partnerUuid uuid not null references hs_office_partner(uuid),
|
|
mainDebitorUuid uuid not null references hs_office_debitor(uuid),
|
|
memberNumberSuffix char(2) not null check (
|
|
memberNumberSuffix::text ~ '^[0-9][0-9]$'),
|
|
validity daterange not null,
|
|
reasonForTermination HsOfficeReasonForTermination not null default 'NONE',
|
|
membershipFeeBillable boolean not null default true,
|
|
|
|
UNIQUE(partnerUuid, memberNumberSuffix)
|
|
);
|
|
--//
|
|
|
|
|
|
-- ============================================================================
|
|
--changeset hs-office-membership-MAIN-TABLE-JOURNAL:1 endDelimiter:--//
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
call create_journal('hs_office_membership');
|
|
--//
|